3. Микросервисная архитектура
Зачем говорить о барьерах?
3Максим Смирнов март 2017
Инноваторы
Энтузиасты
Прагматики
(ранее большинство)
Консерваторы
(позднее большинство)
Скептики
4. Микросервисная архитектура
Кто такой Максим Смирнов
4Максим Смирнов март 2017
2015-2016: Главный архитектор информационных
систем Центрального Банка Российской Федерации
(Банк России)
2005-2014: Руководитель
Департамента ИТ архитектуры ОАО “ВымпелКом”
(торговая марка “Билайн”)
2000-2005: Менеджер по развитию дополнительных
услуг связи: платежей, программы лояльности и др.
1995-2000: Эксперт по системам обмена
сообщениями, приложениям “Банк-Клиент” и
“Банк-Банк” ОАО АБ “Инкомбанк”
до 1995: разработчик криптографических приложений
(шифрование, цифровая подпись)
6. Микросервисная архитектура6Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Баланс
Сеть 2G
звонок, СМС
S S
7. Микросервисная архитектура7Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
S S
R
8. Микросервисная архитектура8Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Сервисная
шина
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
1 снизить
скорость
S S
R
9. Микросервисная архитектура9Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Сервисная
шина
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
1
2
снизить
скорость
отправить
СМСS S
R
10. Микросервисная архитектура10Максим Смирнов март 2017
Архитектура интеграционных решений
Вызовы:
Устаревание программных средств
Масштабирование команды
Непрерывная проверка гипотез
Возможности: использование
шаблона command-query
responsibility segregation(CQRS)
и event sourcing
12. Микросервисная архитектура12Максим Смирнов март 2017
Барьер 1: непонимание
Characteristics of a Microservice Architecture:
1. Componentization via Services
2. Organized around Business Capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design
13. Микросервисная архитектура13Максим Смирнов март 2017
The Twelve-Factor App http://12factor.net/
Codebase
Одна кодовая база, в системе
контроля версий – множество
развертываний
Dependencies
Явно объявляйте и
изолируйте зависимости
Config
Сохраняйте конфигурацию
в среде выполнения
Backing services
Считайте сторонние службы
подключаемыми ресурсами
Build, release, run
Разделяйте стадии сборки и
выполнения
Processes
Запускайте приложение как
процессs не сохраняющие
внутреннее состояние (stateless)
Port binding
Экспортируйте сервисы
через привязку портов
Concurrency
Масштабируйте приложение
с помощью процессов
Disposability
Максимизируйте надежность с
помощью быстрого запуска и
корректного завершения работы
Dev/prod parity
Держите окружения разработки,
и развёртывания максимально
похожими
Logs
Рассматривайте журнал как
поток событий
Admin processes
Выполняйте задачи
администрирования/управления
с помощью разовых процессов
14. Микросервисная архитектура14Максим Смирнов март 2017
Сервисы и микросервисы
Что такое microservices с точки зрения I&O:
1. Это процесс[ы], предоставляющий в сеть
программные интерфейсы (API)
2. Независимо развертываются и исполняются в
собственном программном контексте
3. Масштабируются посредством запуска
дополнительных экземпляров (stateless)
4. Реализуют отдельные операции для
информационных запросов и для команд (CQRS)
5. Предназначены для изоляции отказов и
автоматического восстановления
15. Микросервисная архитектура15Максим Смирнов март 2017
Сценарии развертывания микросервисов
Некоторые DevOps паттерны:
1. Human by Exception
2. Preapproved change
3. ChatOps
4. Canary rollouts
5. Failing forward
…
Балансировщик
нагрузки
Релиз 1
Blue environment Green environment
Балансировщик
нагрузки
Релиз 1 Релиз 2
Blue environment Green environment
Балансировщик
нагрузки
Релиз 1 Релиз 2
Blue environment Green environment
Балансировщик
нагрузки
Релиз 1
Blue environment Green environment
Балансировщик
нагрузки
Релиз 1 Релиз 3
Blue environment Green environment
Балансировщик
нагрузки
Релиз 1 Релиз 3
Blue environment Green environment