Четыре стандартных этапа собеседования по проектированию ИТ-систем. Однако я бы думал о них шире: как о четырех начальных шагах проектирования любого ПО.
Шаг 1. Понимание проблемы и определение скоупа проектирования Шаг 2. Предложите дизайн высокого уровня и получите одобрение Шаг 3. Спроектируйте глубокое погружение Шаг 4. Завершение Глава 3 книги раскрывает подробности о каждом шаге, хорошие вопросы, которые нужно задать (над которыми следует подумать), а также то, что НУЖНО и НЕЛЬЗЯ делать.
Четвертый шаблон для создания микросервисов — использование легковесных фреймворков.
Легковесные фреймворки предоставляют функциональность, аналогичную тяжеловесным фреймворкам, но они в значительной степени зависят от:
брокера событий системы управления контейнерами (CMS) Во многих случаях они превосходят тяжеловесные фреймворки.
Различные приложения могут использовать любые/разные ресурсы из кластера, которые лучше соответствуют их потребностям. При этом по-прежнему обеспечивают масштабирование и восстановление после сбоев (опять же, сильно полагаясь на брокера событий и CMS).
К сожалению, на данный момент есть только два полнофункциональных варианта:
Тяжеловесные фреймворки потоковой обработки — это еще одна основа/шаблон для создания микросервисов.
Эти фреймворки обладают высокой масштабируемостью и позволяют эффективно решать множество аналитических задач. Но они не всегда хороши для шаблонов приложений микрослужб с отслеживанием состояния, управляемых событиями.
Тяжеловесные фреймворки работают с использованием централизованных кластеров ресурсов, что может потребовать дополнительных операционных издержек, мониторинга и координации для успешной интеграции в среду микросервисов. Однако недавние инновации двигают эти фреймворки в сторону решений для управления контейнерами (CMS), таких как Kubernetes, которые должны сократить ваши усилия.
Функция как сервис (FaaS) — это область облачных вычислений, которая быстро развивается.
Здесь необходимо рассмотреть следующие вопросы:
Принципы FaaS Открытый исходный код и сторонние поставщики FaaS 4 компонента, которые следует учитывать при построении микросервисов как функций Холодный пуск против теплого пуска Различные триггеры, которые могут запускать FaaS: запуск на основе новых событий, запуск на основе задержки группы потребителей, запуск по расписанию, запуск с использованием веб-перехватчиков, запуск по событиям ресурсов. Поддержание состояния Два шаблона функций, вызывающих другие функции: управляемый событиями и прямой вызов.
Микросервисы, управляемые событиями, должны материализовать состояния. И это связано с важными вещами для размышлений. Два подхода на выбор:
Внутреннее хранилище состояний или внешнее хранилище состояний У обоих есть плюсы и минусы. Оба имеют важные соображения о масштабируемости и восстановлении.
Два подхода к изменению структур данных:
Перестраивать и Миграции Транзакции и как их эмулировать для реализации обработки Ровно Один Раз.
Все это раскрыто в главе 7 книги, которую мы сейчас изучаем: