Book

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

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

Переводы: EN

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

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

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

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

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

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

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

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

Переводы: EN

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

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

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

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

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

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

Переводы: EN

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

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

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

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

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

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

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

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

Переводы: EN

Управляемая событиями модель, сильно зависит от КАЧЕСТВА событий.

События хорошего качества:

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

События хорошего качества реализуются с помощью правильных инструментов:

  • используйте форматы Avro/Thrift/Protobuf и никогда не используйте JSON!
  • используйте правильный брокер событий (например, Pulsar)

События хорошего качества проектируются так, чтобы:

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

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

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

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

Переводы: EN

Введение в архитектуру микросервисов, управляемых событиями (EDM), состоит из следующих тем:

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

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

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

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

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

Переводы: EN

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

Глава 1 содержит вводную информацию:

Типы архитектур и различия между ними:

  1. Традиционные монолитные архитектуры
  2. Сервисно-ориентированные архитектуры (SOA)
  3. Архитектуры управляемых событиями микросервисов (EDM)

Уровни коммуникативных структур и связанный с ними закон Конвея:

  • бизнес
  • реализация
  • данные

Проблемы с традиционными архитектурами (монолит и SOA), когда вам нужно:

  • добавить новое бизнес-требование
  • вырастить команду и разделить ее на две команды

И как избежать этих проблем при использовании архитектуры EDM

Принцип ставок - Глава 6 - Ментальное путешествие во времени

Принцип ставок - Глава 6 - Ментальное путешествие во времени

Знаете ли вы, что проиграть 1000 долларов, а затем выиграть 900 долларов (т.е. получить результат -100 долларов в сумме) приятнее, чем выиграть 1000 долларов, а затем проиграть 900 долларов (т.е. получить результат +100 долларов)!??

То, что произошло в НЕДАВНЕМ ПРОШЛОМ, влияет на нашу эмоциональную реакцию гораздо больше, чем на нам общий результат! Это проблема, если вы делаете важный прогноз.

Есть способы решить эту проблему:

Принцип ставок - Глава 5 - Несогласие ради победы

Принцип ставок - Глава 5 - Несогласие ради победы

Я уже рассказывал о группе поиска правды (Система напарников) как об отличном способе улучшить процесс принятия решений.

Как делиться информацией внутри такой группы и как эффективно не соглашаться (чтобы находить хорошее решение)? И как общаться вне такой эффективной группы?

Для этого можно использовать правила “CUDOS”…

Принцип ставок - Глава 4 - Система напарников

Принцип ставок - Глава 4 - Система напарников

Люди не готовы считать себя источником проблемы, с которой они столкнулись (свои навыки), они винят в этом других людей/обстоятельства (везение). Как побороть эту проблему?

Одним из решений является создание «группы правды» с вашими коллегами/друзьями/партнерами/«напарниками». И такая группа должна следовать определенным правилам, повышающим рациональность…

Принцип ставок - Глава 3 - Ставки для обучения

Принцип ставок - Глава 3 - Ставки для обучения

Люди должны учиться, наблюдая за результатами, но почему они не учатся?

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

Также нас искажают наши предвзятости:

  • корыстное предубеждение по отношению к себе
  • и инвертированное корыстное предубеждение по отношению к другим

Как преодолеть наши предвзятости и учиться лучше?