О курсе

Курс «Микросервисная архитектура» от Яндекс.Практикума рассчитан на систематизацию и углубление знаний по проектированию и реализации масштабируемых и отказоустойчивых микросервисных систем. По описанию программы, обучение занимает три месяца и включает полный цикл: декомпозицию, построение бизнес-процессов, интеграции, мониторинг, тестирование и масштабирование. Заявлен фокус на инженерное мышление и разбор технологий и подходов.

Программа состоит из шести разделов. В первом разделе рассматривается разработка микросервисных приложений для сложных бизнес-процессов: проектирование с нуля, техники декомпозиции (DDD, Business Capabilities, Event-Driven, Data-Driven), проверка корректности разбиения, оркестрация и хореография, реализация SAGA на базе BPMN-движка, кеширование и репликация. Второй раздел посвящён event-driven-архитектуре: Event Storming, взаимодействие в условиях хореографии, потоковая обработка данных с Kafka Streams и Flink, Transactional Outbox, CDC, Event Sourcing и CQRS.

Третий раздел описывает декомпозицию монолитной системы на микросервисы: миграцию функциональности с использованием Strangler Fig, Feature Toggle, Parallel Run и Big Bang Rewrite, разделение модели данных, борьбу со сложностью, переиспользование функциональности, организацию кода и формирование команд. Четвёртый раздел посвящён разработке под высокую нагрузку: пакетной обработке, архитектурным шаблонам ETL-конвейер и MapReduce, распределению зон ответственности, инструментам Spring Batch, Apache Airflow, Apache Spark, запуску по расписанию, облачной инфраструктуре с Terraform, сбору телеметрии с ELK и OpenTelemetry.

Пятый раздел охватывает проектирование приложения для совместной работы пользователей: клиент-серверные интеграции, аутентификацию и авторизацию (OAuth 2.0, JWT, OpenID Connect), балансировку нагрузки, API-First, API Gateway, композицию API на основе Apollo Federation, паттерны отказоустойчивости, CI/CD, управление ресурсами в Kubernetes, масштабирование HPA и VPA, Service Mesh. Шестой раздел посвящён realtime-приложениям: WebSockets, асинхронные интеграции, синхронизация через Redis Pub/Sub, тестирование микросервисов с Testcontainers, Fitness Functions на базе ArchUnit, анализ телеметрии с Prometheus и Grafana.

В описании указано, что за курс предусмотрено проектирование шести сложных архитектур, а материалы и практика основаны на реальных потребностях бизнеса. Среди осваиваемых инструментов перечислены SAGA, WebSockets, Change Data Capture, Event Sourcing, CQRS, Transactional Outbox, API Gateway, Kubernetes, Domain-Driven Design, пакетная обработка, оркестрация, хореография, Distributed Scheduling, композиция API, Apache Kafka, декомпозиция монолита и Event-Driven Architecture.

Что рассматривается в программе

  • Рассматривается проектирование микросервисов с нуля и техники декомпозиции (DDD, Business Capabilities, Event-Driven, Data-Driven)
  • Разбирается реализация SAGA с оркестрацией на базе BPMN-движка и хореография
  • Изучается event-driven-архитектура: Event Storming, Kafka Streams, Flink, Transactional Outbox, CDC, Event Sourcing и CQRS
  • Рассматривается декомпозиция монолита: Strangler Fig, Feature Toggle, Parallel Run, разделение модели данных
  • Разбирается пакетная обработка, ETL-конвейер, MapReduce, Spring Batch, Apache Airflow, Apache Spark
  • Изучается сбор телеметрии: ELK, OpenTelemetry, Prometheus, Grafana, корреляция логов через Trace ID
  • Рассматривается API Gateway, композиция API на основе Apollo Federation, паттерны отказоустойчивости
  • Разбираются WebSockets, Redis Pub/Sub, тестирование с Testcontainers и Fitness Functions на базе ArchUnit

Кому может быть полезен курс

  • Разработчикам и архитекторам, интересующимся проектированием микросервисных систем
  • Специалистам, которым нужно ознакомиться с декомпозицией монолита и event-driven-подходами
  • Инженерам, работающим с высоконагруженными и распределёнными приложениями
  • Тем, кто хочет изучить инструменты вроде Kubernetes, Kafka, SAGA и API Gateway в контексте микросервисов

Вопросы о программе

Какие темы охватывает программа курса?

Программа включает шесть разделов: разработка микросервисных приложений для сложных бизнес-процессов, event-driven-архитектура, декомпозиция монолитной системы, разработка под высокую нагрузку, проектирование приложения для совместной работы пользователей и проектирование realtime-приложений.

Какие инструменты и технологии рассматриваются в курсе?

Среди заявленных инструментов: SAGA, WebSockets, Change Data Capture, Event Sourcing, CQRS, Transactional Outbox, API Gateway, Kubernetes, Domain-Driven Design, Apache Kafka, Kafka Streams, Flink, Spring Batch, Apache Airflow, Apache Spark, Terraform, ELK, OpenTelemetry, Prometheus, Grafana, Redis Pub/Sub, Testcontainers, ArchUnit.

Сколько проектов предусмотрено в рамках курса?

В описании указано, что за курс предусмотрено шесть проектов, соответствующих шести сложным архитектурам: поддержка сложных бизнес-процессов, хореография и потоковая обработка данных, микросервисы вместо монолита, приложение для обработки больших объёмов данных, высоконагруженное приложение и realtime-приложение для взаимодействия пользователей.

На что направлен курс по описанию программы?

По описанию, курс направлен на систематизацию и углубление знаний по проектированию и реализации масштабируемых и отказоустойчивых микросервисных систем, с фокусом на инженерное мышление и разбор технологий и подходов.