TGViewer
dev notes dev notes @junsenior · 1.39K subscribers
Post #195 1.22K
Начал читать "Микросервисы" Ричардсона, а поэтому начинаю вести краткие конспекты.

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

1 тип: Шаблоны для разбиения приложения на микросервисы
* Разбиение по бизнес-возможностям
* Разбиение по проблемным областям

2 тип: Шаблоны взаимодействия
* Транзакционный обмен сообщениями
* Стиль взаимодействия
* Надежность
* Обнаружение
* Внешний API

3 тип: Шаблоны согласованности данных для реализации управления транзакциями
Для обеспечения слабой связанности каждый сервис должен иметь собственную базу данных. Такой подход чреват проблемами, для решения которых следует использовать шаблон "Повествование".

4 тип: Шаблоны запрашивания данных в микросервисной архитектуре
Использование отдельной базы для каждого сервиса имеет ещё один недостаток: некоторые запросы должны объединять информацию с нескольких сервисов, а значит, мы хотим иметь возможность использовать транзакционный подход к этим запросам. Тут помогут такие шаблоны запросов, как:
* Объединение API (обращение к API одного или нескольких сервисов и агрегирование результатов)
* CQRS (командные запросы с разделением ответственности, которые хранят одну или несколько копий данных и позволяют легко к ним обращаться).

5 тип: Шаблоны развертывания сервисов
* Традиционно - развертывание сервисов в формате упаковки определённого языка (нельзя масштабировать для поддержки микросервисной архитектуры)
* Аналог - развертывание в виде виртуальных машин или контейнеров
* Бессерверные технологии

6 тип: Шаблоны наблюдаемости, позволяющие понять, как ведёт себя приложение
* API проверки работоспособности - роут, возвращающий набор метрик, показывающих, как работает приложение
* Аггрегация журналов - логи, желательно с поддержкой поиска
* Распределённая трассировка - назначение уникальных идентификаторов для каждого запроса для отслеживания его перемещений между сервисами
* Отслеживание исключений - автоматическая реакций на ошибки, часто это отдельный сервис, умеющий определять по логу какую команду оповещать
* Показатели приложения
* Введения журнала аудита - журнал действий пользователя

7 тип: Шаблоны автоматического тестирования сервисов
* Тестирование с растчетом на потребителя - проверка того, что сервис отвечает ожиданиям клиентов
* Тестирование на стороне потребителя - проверка того, что клиент может взаимодействовать с сервисом
* Тестирование компонентов сервиса в изоляции

8 тип: Шаблоны для решения сквозных проблем
* Шаблон шасси микросервисов - построение архитектуры с выбором ниболее подходящего инструмента под конкретную задачу

9 тип: Шаблоны безопасности:
Шаблоны безопасности выбираются в зависимости от метода коммуникации сервисов и клиентов. Например для API наиболее часто применяется такой шаблон как JWT-токен.

Мне показался крайне интересным закон Конвея, который приводит Ричардсон:
Организация, проектирующая системы, обречена воспроизводить архитектуру, имитирующую структуру собственных коммуникаций.

Это говорит о том, что множество небольших продуктовых команд гораздо более эффективны, чем одна большая команда на несколько десятков человек.
More from @junsenior
  1. Sep 28, 2026Сошлись две вещи. Первая - мой проект safemap.ai, про который я уже писал выше - интеракти…
  2. Sep 17, 2026Post #356
  3. Sep 15, 2026Увидел тут в x.com статистику вакансий по PHP и статистику вакансий по hh.ru в целом. Я на…
  4. Sep 12, 2026Вдохновившись проектом, где делали интерактивную карту с тем, как работает Postgres (писал…
  5. Sep 8, 2026OpenAI выложили блогпост https://openai.com/index/navier-stokes-solution/ Мы публикуем реш…
  6. Sep 8, 2026Если кто не знал, вокруг этого сейчас разгорается очень большой скандал с OpenAI. Кратко,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →