Бакалавриат
2022/2023




Разработка микросервисов на Go
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
5
Контактные часы:
60
Программа дисциплины
Аннотация
Курс научит Вас разрабатывать микросервисные приложения на языке Go.Познакомит со стандартной библиотекой и инструментами, применяемыми при разработке микросервисных приложений.Научит взаимодействовать с популярными базами данных: PostgreSQL и MongoDB - из языка Go, а также организовывать асинхронное взаимодействие между микросервисами с помощью Apache Kafka, отправлять структурированные логи в ElasticSearch, отслеживать запросы в Jaeger и отправлять метрики в Prometheus. Мы изучим всё необходимое, чтобы написать production ready микросервисное приложение на языке Go.
Цель освоения дисциплины
- Разрабатывать автоматизированные тесты
- Работать с PostgreSQL, MongoDB, Apache Kafka из языка Go
- Понимать устройство runtime’a языка Go
Планируемые результаты обучения
- Разрабатывать backend на языке Go
- Обеспечивать наблюдаемость микросервисного приложения
Содержание учебной дисциплины
- Основы Go
- Стандартные библиотеки и практики Go
- Основы DevOps
- Основы мониторинга и сбора метрик
- Архитектура и шаблоны проектирования
- Устройство runtime’a. Работа с памятью
- Документация и тестирование
- Работа с БД, MongoDB
- PostgreSQL
- gRPC
- Очереди данных (Кafka и RabbitMQ)
- Concurrency
- Разбор типичных ошибок сквозного проекта
Элементы контроля
- Домашнее задание 1Выдается после лекции 2. Содержит задание посвященное http-сервисам.
- Домашнее задание 2Выдается после лекции 3. Содержит задание, посвященное graceful shutdown и чтению настроек сервиса
- Домашнее задание 3Выдается после лекции 4. Содержит задание, посвященное настройке CI/CD и деплою в Kubernetes
- Домашнее задание 4Выдается после лекции 5. Содержит задание, посвященное обеспечению наблюдаемости приложения
- Домашнее задание 5Выдается после лекции 6. Содержит задание, посвященное разработке шаблона сервиса по принципам гексагональной архитектуры
- Домашнее задание 6Выдается лекции 7. Содержит задание, посвященное организации бизнес-логики приложения по принципам гексагональной архитектуры
- Домашнее задание 7Выдается после лекции 8. Содержит задание, посвященное организации взаимодействия бизнес-логики и http-адаптера
- Домашнее задание 8Выдается после лекции 9. Содержит задание, посвященное тестированию приложения
- Домашнее задание 9Выдается после лекции 10. Содержит задание, посвященное работе с mongoDB
- Домашние задание 10Выдается после лекции 11. Содержит задание, посвященное работе с gRPC
- Домашнее задание 11Выдается после лекции 12. Содержит задание, посвященное работе с postgreSQL
- Домашнее задание 12Выдается после лекции 13. Содержит задание, посвященное работе с Apache Kafka
- Домашнее задание 13Выдается после лекции 14. Содержит задание, посвященное работе с многопоточностью
- ЭкзаменУстный экзамен по рассмотренным в курсе темам в формате, приближенном к реальному собеседованию в МТС Диджитал.
Промежуточная аттестация
- 2022/2023 учебный год 2 модуль0.062 * Домашнее задание 1 + 0.062 * Домашнее задание 11 + 0.061 * Домашнее задание 12 + 0.062 * Домашнее задание 13 + 0.062 * Домашнее задание 2 + 0.061 * Домашнее задание 3 + 0.061 * Домашнее задание 4 + 0.061 * Домашнее задание 5 + 0.062 * Домашнее задание 6 + 0.061 * Домашнее задание 7 + 0.062 * Домашнее задание 8 + 0.061 * Домашнее задание 9 + 0.062 * Домашние задание 10 + 0.2 * Экзамен