Главная

Создание событийно-управляемых микросервисов - Глава 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 книги, которую мы сейчас изучаем:

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

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

Переводы: EN

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

Существуют определенные советы и приемы реализации детерминизма. Ключевые слова здесь:

  • Временные метки
  • Планирование событий
  • Водяные знаки
  • Время потока

Вы должны понимать природу неупорядоченых и запоздалых событий. И стратегии их обработки.

Также необходимо поддерживать повторную обработку.

И нужно учитывать периодические сбои.

Школа стартапов - Как разговаривать с пользователями

Школа стартапов - Как разговаривать с пользователями

Как разговаривать с пользователями при создании стартапа? Какую книгу лучше всего прочитать на эту тему? Три распространенные ошибки, которые совершают все. Пять отличных вопросов, которые вы можете задать в каждом интервью с пользователем. Как разговаривать с пользователями на трех стадиях: стадии идеи, стадии прототипа и стадии запуска.

Обо всем этом рассказывается в Школе стартапов Y Combinator — Урок «Как разговаривать с пользователями».

Как обычно, вот моя сводная ментальная карта:

Скачать полную ментальную карту (PDF)

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

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

Переводы: EN

Основы событийно-управляемой обработки в архитектурах, управляемых событиями:

  • Типовая структура микросервиса
  • Типовые типы трансформации событий, 2 сценария ветвления, слияние потоков
  • Перепартиционирование событий и когда это может быть полезно
  • Сопартиционирование событий и когда это необходимо
  • Назначение партиций конкретному микросервису занимающемуся обработкой данных. Три стратегии для этого.
  • Восстановление после сбоев микросервисов обработки данных без поддержки состояния.

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

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

Создание событийно-управляемых микросервисов - Глава 4 - Интеграция событийно-управляемых архитектур с существующими системами

Создание событийно-управляемых микросервисов - Глава 4 - Интеграция событийно-управляемых архитектур с существующими системами

Переводы: EN

Освобождение данных — это процесс перехода от монолита к микросервисам путем разделения систем с точки зрения зависимостей данных.

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

  1. На основе запросов
  2. На основе журнала
  3. На основе таблиц

У каждого паттерна есть свои плюсы и минусы, а также другие важные соображения.

Изменения определения данных (миграция структуры данных) также должны поддерживаться выбранным подходом к освобождению данных.

Существуют различные фреймворки/инструменты, которые упрощают процесс освобождения данных. Обратите внимание, что инструменты CDC не являются конечным пунктом вашей архитектуры, а всего лишь начальным шагом ваших измерений.