Запись

[IBS] Микросервисная архитектура (Дмитрий Овчаренко)

Тема в разделе "Курсы по программированию"

Цена:
48900 руб
Взнос:
665 руб
Организатор:
Евражкa

Список участников складчины:

1. Евражкa
open
2
Записаться
  1. Евражкa Организатор складчин

    [IBS] Микросервисная архитектура (Дмитрий Овчаренко)

    [​IMG]

    Микросервисная архитектура (МСА) сравнительно недавно завоевала славу самого популярного архитектурного подхода. Ее использование обеспечивает множество преимуществ на различных этапах жизненного цикла продукта. В частности, МСА позволяет получить меньшее время реакции на требования бизнеса, что зачастую обеспечивает ее превосходство над прочими архитектурными стилями.

    Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.

    Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.

    Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.

    В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).

    Программа:

    • 1. Архитектурные стили (2 ч.)
      • Понятия монолита, SOA, MSA.
      • Сравнение и обоснование выбора.
    • 2. Паттерны декомпозиции MSA (2 ч.)
      • Оптимальный размер микросервиса;
      • Разбиение на сервисы по бизнес-возможностям;
      • Разбиение на сервисы по проблемным областям;
      • Практики определения предметных областей;
      • Декомпозиция по техническим и организационным аспектам.
    • 3. Организация разработки под MSA (1 ч.)
      • Организация команд под MSA;
      • Организация репозитория кода под MSA.
    • 4. Интеграция микросервисов (3 ч.)
      • Паттерны взаимодействия;
      • Синхронные и асинхронные механизмы взаимодействия;
      • Оркестровка и хореография;
      • Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.);
      • Взаимодействие с внешними системами (API Gateway, BFF);
      • Реактивные системы;
      • Архитектуры управляемые событиями;
      • Разделение команды и запроса.
    • 5. Организация работы с данными в MSA (3 ч.)
      • Паттерны работы с данными;
      • Порождение событий;
      • Справочные данные в MSA;
      • Единый источник истины (Source of Truth) в MSA.
    • 6. Основные шаблоны МСА (9 ч.)
      1. Модифицируемость.
        • Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
      2. Масштабируемость.
        • Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
      3. Производительность.
        • Паттерны производительности в MSA (переборка, изящная деградация и пр.).
      4. Согласованность.
        • Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
      5. Надежность.
        • Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
      6. Безопасность.
        • Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
      7. Тестируемость.
        • Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
        • Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
      8. Удобство обслуживания.
        • Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
    • 7. Развертывание микросервисов (2 ч.)
      • Паттерн «Deployment pipeline»;
      • Паттерны развертывания;
      • Использование технологий Docker и Kubernetes;
      • Использование сетки ISTIO;
      • Бессерверное развертывание;
      • Стратегии развертывания (сине-зеленые, канареечные и т.д.).
    • 8. Стратегии миграции от монолита к MSA (2 ч.)
      • Стратегии перехода с монолита на микросервисы;
      • Удушение монолита (Strangler monolith);
      • Паттерны удушения;
      • Связь микросервиса с монолитом;
      • Миграция базы данных.

    Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...
     
  2. Похожие складчины
    Загрузка...
Наверх