Микросервисная архитектура
Барьеры микросервисной
архитектуры
Максим Смирнов
http://mxsmirnov.com
mxsmirnov@gmail.com
Микросервисная архитектура
За границами нашего обсуждения
2Максим Смирнов март 2017
Микросервисная архитектура
Зачем говорить о барьерах?
3Максим Смирнов март 2017
Инноваторы
Энтузиасты
Прагматики
(ранее большинство)
Консерваторы
(позднее большинство)
Скептики
Микросервисная архитектура
Кто такой Максим Смирнов
4Максим Смирнов март 2017
2015-2016: Главный архитектор информационных
систем Центрального Банка Российской Федерации
(Банк России)
2005-2014: Руководитель
Департамента ИТ архитектуры ОАО “ВымпелКом”
(торговая марка “Билайн”)
2000-2005: Менеджер по развитию дополнительных
услуг связи: платежей, программы лояльности и др.
1995-2000: Эксперт по системам обмена
сообщениями, приложениям “Банк-Клиент” и
“Банк-Банк” ОАО АБ “Инкомбанк”
до 1995: разработчик криптографических
приложений (шифрование, цифровая подпись)
Микросервисная архитектура5Максим Смирнов март 2017
SOA – диагноз, а не лекарство
Микросервисная архитектура6Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Баланс
Сеть 2G
звонок, СМС
S S
Микросервисная архитектура7Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
S S
R
Микросервисная архитектура8Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Сервисная
шина
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
1 снизить
скорость
S S
R
Микросервисная архитектура9Максим Смирнов март 2017
Пример: услуга “Продли скорость”
Абонент
Автоматизированная
система расчетов
Оператор связи Абонент
Интернет
Сервисная
шина
Баланс Пакет услуг
Сети передачи
данных
Сеть 2G
звонок, СМС
данные
1
2
снизить
скорость
отправить
СМСS S
R
Микросервисная архитектура10Максим Смирнов март 2017
Архитектура интеграционных решений
Вызовы:
Устаревание программных средств
Масштабирование команды
Непрерывная проверка гипотез
Возможности: использование
шаблона command-query
responsibility
segregation(CQRS)
и event sourcing
Микросервисная архитектура11Максим Смирнов
Барьеры микросервисной архитектуры
март 2017
Барьер 1: непонимание
Микросервисная архитектура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Максим Смирнов март 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Максим Смирнов март 2017
Сервисы и микросервисы
Что такое microservices с точки зрения I&O:
1.Это процесс[ы], предоставляющий в сеть
программные интерфейсы (API)
2.Независимо развертываются и исполняются в
собственном программном контексте
3.Масштабируются посредством запуска
дополнительных экземпляров (stateless)
4.Реализуют отдельные операции для
информационных запросов и для команд (CQRS)
5.Предназначены для изоляции отказов и
автоматического восстановления
Микросервисная архитектура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
Микросервисная архитектура16Максим Смирнов март 2017
Барьер 2: Мало у кого случился DevOps
Барьеры микросервисной архитектуры
Микросервисная архитектура17Максим Смирнов март 2017
Жизненный цикл с точки зрения ИТ
Барьер 3: наличие потребности
Микросервисная архитектура18Максим Смирнов март 2017
Жизненный цикл с точки зрения NPD
Микросервисная архитектура
Барьеры микросервисной
архитектуры
Максим Смирнов
http://mxsmirnov.com
mxsmirnov@gmail.com
Ваши вопросы и комментарии

Барьеры микросервисной архитектуры

  • 1.
  • 2.
    Микросервисная архитектура За границаминашего обсуждения 2Максим Смирнов март 2017
  • 3.
    Микросервисная архитектура Зачем говоритьо барьерах? 3Максим Смирнов март 2017 Инноваторы Энтузиасты Прагматики (ранее большинство) Консерваторы (позднее большинство) Скептики
  • 4.
    Микросервисная архитектура Кто такойМаксим Смирнов 4Максим Смирнов март 2017 2015-2016: Главный архитектор информационных систем Центрального Банка Российской Федерации (Банк России) 2005-2014: Руководитель Департамента ИТ архитектуры ОАО “ВымпелКом” (торговая марка “Билайн”) 2000-2005: Менеджер по развитию дополнительных услуг связи: платежей, программы лояльности и др. 1995-2000: Эксперт по системам обмена сообщениями, приложениям “Банк-Клиент” и “Банк-Банк” ОАО АБ “Инкомбанк” до 1995: разработчик криптографических приложений (шифрование, цифровая подпись)
  • 5.
    Микросервисная архитектура5Максим Смирновмарт 2017 SOA – диагноз, а не лекарство
  • 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
  • 11.
    Микросервисная архитектура11Максим Смирнов Барьерымикросервисной архитектуры март 2017 Барьер 1: непонимание
  • 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
  • 16.
    Микросервисная архитектура16Максим Смирновмарт 2017 Барьер 2: Мало у кого случился DevOps Барьеры микросервисной архитектуры
  • 17.
    Микросервисная архитектура17Максим Смирновмарт 2017 Жизненный цикл с точки зрения ИТ Барьер 3: наличие потребности
  • 18.
    Микросервисная архитектура18Максим Смирновмарт 2017 Жизненный цикл с точки зрения NPD
  • 19.
    Микросервисная архитектура Барьеры микросервисной архитектуры МаксимСмирнов http://mxsmirnov.com mxsmirnov@gmail.com Ваши вопросы и комментарии