• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 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 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Чистая архитектура : искусство разработки программного обеспечения, Мартин, Р., 2019

Рекомендуемая дополнительная литература

  • Архитектура корпоративных программных приложений, Д. Райс, М. Фоммел, Э. Хайет, Р. Ми, Р. Стаффорд, 544 с., Фаулер, М., 2004

Авторы

  • Рословцева Кристина Олеговна
  • Оруджева Альбина Александровна