Найти в Дзене

Ответы на вопросы бизнеса про микросервисную архитектуру

Оглавление

Всем привет, меня зовут Руслан — я технический директор и ИТ-архитектор в Byndyusoft

Мне задали 4 вопроса о видении микросервисов в Byndyusoft, подходах и методиках, которые мы используем для реализации проектов на микросервисной архитектуре. Грамотно заданный вопрос — это очень ценно, приведу в данной статье и вопросы и мои ответы.

Какие 3 ключевых бизнес-преимущества дают бизнесу webscale бизнес-приложения, построенные в микросервисной архитектуре/парадигме?

  1. Возможность оперативного реагирования на изменения в бизнесе за счет гибкости. Грамотно спроектированная архитектура микросервисов позволяет работать со сложностью — абстрагировать частности и детали от общей верхнеуровневой связанности всей системы в целом. Такой подход и придаёт системе гибкость — и разработчикам, и отделу эксплуатации (админам и devops'ам) не требуется работать сразу со всей сложностью системы. Гибкость обеспечивает с одной стороны — высокую скорость поставки изменений/новшеств конечному пользователю; с другой — независимость от конкретного "железа" и возможность в режиме реального времени управлять выделенными мощностями серверов (т.е. бюджетом на сервера).
  2. Стабильность и безопасность критически важных контуров. Микросервисная архитектура позволяет разделить систему на несколько периметров и контуров, рисками которых можно управлять независимо друг от друга различными стратегиями соответствующими уровню критичности очерченного контекста сервисов.
  3. Микросервисная архитектура является обязательным условием для платформизации ИТ-составляющей бизнеса. Платформа — следующий уровень развития ИТ-инфраструктур, предоставляющая данные и бизнес-логику "как сервис", причем одно из основных преимуществ в связности данных разных подразделений и продуктов бизнеса, ранее работающих практически изолировано. Поверх платформы уже строятся продукты, получающие с самого старта и готовую логику, и большие данные для анализа и построения гипотез.

Моё интервью для VK-Cloud на тему (9 минут)
Статья Александра Бындю на тему:
От микросервисного монолита к оркестратору

Каковы 4 необходимые и достаточные характеристики микросервиса (в определении), которые позволяют назвать его настоящим микросервисом, без всяких натяжек?

  1. У микросервиса сформулирована одна и только одна ответственность, у API микросервиса сформулированы намерения (intention). Микросервис отнесён к соответствующему ограниченному контексту на архитектуре/парадигме.
  2. Микросервис удовлетворяет принципам проектирования компонентов (глава Principles for Package and Component Design в книге).
  3. Микросервис контейнизирован и наблюдаем, т.е. закрыты все инфраструктурные потребности микросервиса и архитектуры.
  4. Работа с данными микросервиса соответствует выбранной стратегии деления на мастер-системы (Управление мастер-данными в микросервисной архитектуре).

Какое максимальное кол-во уникальных микросервисов в production было на проектах, в которых вы принимали деятельное участие в значимой роли?

Максимальное количество микросервисов, разработанных командой Byndyusoft в рамках одного проекта — 70 (с учетом инфраструктурных точек деплоя и библиотек — 150 git-репозиториев). Каждый из 70 микросервисов в зависимости от уровней стабильности и нагруженности своего контекста был запущен в нескольких экзеплярах (от 3 до 12), общее количество контейнеров, работающих в продакшн окружении одного проекта — около 600.

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

  1. Перенос уровня принятия решений из программного кода на уровень архитектуры и взаимодействия между сервисами. Здесь происходит резкий рост требований к компетенциям в архитектурных дисциплинах — system-, solution-, enterprise- architecture.
  2. Резкий рост требований со стороны команды разработки и самой системе к инфраструктуре и автоматизации процессов поставки, тестирования, мониторинга и поддержки.

Материалы

Более развёрнуто темы, затрагиваемые вопросами я расскрываю в своих докладах:

  • Как рефакторить архитектуру микросервисов при живом продакшне?
  • Гранулярность микросервисов. Как мелко нарезать?

Статья на хабре

  • Как снизить накладные расходы на добавление +1 микросервиса