Book

Создание событийно-управляемых микросервисов - Глава 16 - Развертывание событийно-управляемых микросервисов

Создание событийно-управляемых микросервисов - Глава 16 - Развертывание событийно-управляемых микросервисов

Переводы: EN

Принципы развертывания микросервисов Различия между непрерывной интеграцией (CI), непрерывной доставкой и непрерывным развертыванием. Шаблоны развертывания:

  • Базовый шаблон полного развертывания
  • Шаблон непрерывного обновления
  • Паттерн изменения схемы прерывания: здесь два варианта - окончательная миграция и синхронизированная миграция.
  • Сине-зеленый шаблон развертывания

Все это раскрыто в главе 16 книги:

“Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Делюсь своей ментальной картой со всеми подробностями, как обычно:

Создание событийно-управляемых микросервисов - Глава 15 - Тестирование событийно-управляемых микросервисов

Создание событийно-управляемых микросервисов - Глава 15 - Тестирование событийно-управляемых микросервисов

Переводы: EN

Тестирование событийно-ориентированных решений — сложная задача. Это включает в себя:

  • Общие принципы
  • Модульное тестирование: без сохранения состояния и с сохранением состояния
  • Тестирование топологии (держу пари, вы этого не делали! ;)
  • Тестирование эволюции схемы и совместимости
  • Интеграционное тестирование: локальное, удаленное и гибридное - набор соображений здравого смысла, о которых нельзя забывать.
  • Выбор стратегии тестирования

Все это раскрыто в главе 15 книги:

“Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Создание событийно-управляемых микросервисов - Глава 14 - Вспомогательные инструменты

Создание событийно-управляемых микросервисов - Глава 14 - Вспомогательные инструменты

Переводы: EN

Довольно часто инструменты забывают в начале разработки. В этой главе не рассматриваются инструменты, помогающие создавать и поддерживать управляемые событиями микросервисы. Полезный чек-лист! Эта тема включает в себя:

  • Правила организации
  • Документация, маркировка
  • Квоты
  • Схема реестра
  • Управление смещением
  • список контроля доступа
  • Управление состоянием и сброс приложения
  • Мониторинг задержки смещения потребителя
  • Элементы управления контейнером
  • Создание кластера и управление им
  • Отслеживание зависимостей

Все это раскрыто в главе 14 книги:

“Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Создание событийно-управляемых микросервисов - Глава 13 - Интегрирование событийно-управляемых микросервисов с микросервисами типа «запрос-ответ»

Создание событийно-управляемых микросервисов - Глава 13 - Интегрирование событийно-управляемых микросервисов с микросервисами типа «запрос-ответ»

Переводы: EN

Как интегрировать микросервисы, управляемые событиями, с API-интерфейсами типа «запрос-ответ»?

Существует два типа внешних событий:

  • Автономно генерируемые события (аналитические события)
  • Реактивно генерируемые события (события от запроса-ответа)

Существует два подхода к обработке и обслуживанию запросов с использованием сервисов с отслеживанием состояния:

  • использование внутренних хранилищ состояний (с глупой или умной маршрутизацией)
  • использование внешних хранилищ состояний (с обычным или с составным микросервисом)

Способы обработки запросов в рамках управляемого событиями рабочего процесса:

  • Работа с запросами напрямую
  • Превращение запросов в события (большая задержка)
  • Обработка событий для пользовательских интерфейсов (смесь двух способов)

Подходы для приложений запрос-ответ, их плюсы и минусы:

Создание событийно-управляемых микросервисов - Глава 12 - Легковесные фреймворки потоковой обработки

Создание событийно-управляемых микросервисов - Глава 12 - Легковесные фреймворки потоковой обработки

Переводы: EN

Четвертый шаблон для создания микросервисов — использование легковесных фреймворков.

Легковесные фреймворки предоставляют функциональность, аналогичную тяжеловесным фреймворкам, но они в значительной степени зависят от:

  • брокера событий
  • системы управления контейнерами (CMS)

Во многих случаях они превосходят тяжеловесные фреймворки.

Различные приложения могут использовать любые/разные ресурсы из кластера, которые лучше соответствуют их потребностям. При этом по-прежнему обеспечивают масштабирование и восстановление после сбоев (опять же, сильно полагаясь на брокера событий и CMS).

К сожалению, на данный момент есть только два полнофункциональных варианта:

Создание событийно-управляемых микросервисов - Глава 11 - Тяжеловесные фреймворки потоковой обработки

Создание событийно-управляемых микросервисов - Глава 11 - Тяжеловесные фреймворки потоковой обработки

Переводы: EN

Тяжеловесные фреймворки потоковой обработки — это еще одна основа/шаблон для создания микросервисов.

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

Тяжеловесные фреймворки работают с использованием централизованных кластеров ресурсов, что может потребовать дополнительных операционных издержек, мониторинга и координации для успешной интеграции в среду микросервисов. Однако недавние инновации двигают эти фреймворки в сторону решений для управления контейнерами (CMS), таких как Kubernetes, которые должны сократить ваши усилия.

Создание событийно-управляемых микросервисов - Глава 10 - Базовой шаблон производителя и потребителя

Создание событийно-управляемых микросервисов - Глава 10 - Базовой шаблон производителя и потребителя

Переводы: EN

Базовой шаблон производителя и потребителя (BPC) — это простой шаблон для создания микросервисов. Он формирует основу сервисов без сохранения состояния и с сохранением состояния.

Вы можете использовать его для:

  • реализации интерфейса взаимодействия между потоками событий и устаревшими системами
  • использования внешних систем обработки потоков для расширения возможностей

Но это требует ваших дополнительных усилий для реализации:

  • простой материализации состояния
  • скедулинга событий
  • принятия решений на основе временных меток

Все это раскрыто в главе 10 книги, которую мы сейчас изучаем:

Создание событийно-управляемых микросервисов - Глава 9 - Микросервисы с использованием технологии «Функция как сервис»

Создание событийно-управляемых микросервисов - Глава 9 - Микросервисы с использованием технологии «Функция как сервис»

Переводы: EN

Функция как сервис (FaaS) — это область облачных вычислений, которая быстро развивается.

Здесь необходимо рассмотреть следующие вопросы:

  • Принципы FaaS
  • Открытый исходный код и сторонние поставщики FaaS
  • 4 компонента, которые следует учитывать при построении микросервисов как функций
  • Холодный пуск против теплого пуска
  • Различные триггеры, которые могут запускать FaaS: запуск на основе новых событий, запуск на основе задержки группы потребителей, запуск по расписанию, запуск с использованием веб-перехватчиков, запуск по событиям ресурсов.
  • Поддержание состояния
  • Два шаблона функций, вызывающих другие функции: управляемый событиями и прямой вызов.
  • Прекращение и завершение работы
  • Настройка и масштабирование

Все это раскрыто в главе 9 книги, которую мы сейчас изучаем:

Создание событийно-управляемых микросервисов - Глава 8 - Построение рабочих процессов с помощью микросервисов

Создание событийно-управляемых микросервисов - Глава 8 - Построение рабочих процессов с помощью микросервисов

Переводы: EN

Существует два шаблона построения микросервисов, управляемых событиями:

  • Хореография (без централизованной координации)
  • Оркестровка (с централизованной координацией)

У обоих есть плюсы и минусы (однако мне кажется, что оркестровка все-таки более удобный шаблон)

Как реализовать распределенные транзакции с хореографией и оркестровкой.

Как ИЗБЕЖАТЬ реализации распределенных транзакций — подход с компенсационным рабочим процессом.

Все это раскрыто в главе 8 книги, которую мы сейчас изучаем:

“Создание событийно-управляемых микросервисов” Адама Беллемара. Оригинал: “Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Создание событийно-управляемых микросервисов - Глава 7 - Потоковая передача с поддержкой состояния

Создание событийно-управляемых микросервисов - Глава 7 - Потоковая передача с поддержкой состояния

Переводы: EN

Микросервисы, управляемые событиями, должны материализовать состояния. И это связано с важными вещами для размышлений. Два подхода на выбор:

  • Внутреннее хранилище состояний
  • или внешнее хранилище состояний

У обоих есть плюсы и минусы. Оба имеют важные соображения о масштабируемости и восстановлении.

Два подхода к изменению структур данных:

  • Перестраивать
  • и Миграции

Транзакции и как их эмулировать для реализации обработки Ровно Один Раз.

Все это раскрыто в главе 7 книги, которую мы сейчас изучаем: