Микросервисы в бизнес-приложениях
Олег Кутырин, SAP
28 октября, 2016
Public
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 2Public
Об авторе
Родился и вырос в Москве
Закончил МАИ
С 2000 г. в SAP
Области интересов:
 Построение компиляторов
 Cloud
 Ruby on Rails
 Микросервисы
 Domain-Driven Design
 Бильярд (пул, 8)
https://www.linkedin.com/in/oleg-kutyrin
email: oleg.koutyrine@sap.com
NO TWITTER
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 3Public
Disclaimer
Никакого маркетинга, никакой рекламы 
Исключительно технология и методология
Микросервисы
Основные концепции
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 5Public
Что такое микросервис? (Абстрактно)
Определение М.Фаулера
“applications as suites of services”
“services are independently deployable and scalable”
”provides a firm module boundary”
”allowing for different services to be written in different programming languages”
”managed by different teams”
http://martinfowler.com/articles/microservices.html
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 6Public
Что такое микросервис? (Чуть более конкретно)
 Один модуль развертывания
 Компактная архитектура
 Локальные коммуникации
 Множество модулей развертывания
 Распределенная архитектура
 Удаленные коммуникации
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 7Public
А зачем это все?
Каждый микросервис – это независимый модуль с независимым жизненным циклом
Независимая эволюция
Независимый цикл разработки
Независимое развертывание
Независимое масштабирование
Независимые технологические решения
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 8Public
А что в этом хорошего?
Скорость Доставки
Гибкое
Масштабирование
Подходящая Технология
Простота
Поддержки
Обозримость
Функционала
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 9Public
И все это бесплатно?
Общая Сложность
Требования к
Инфраструктуре
Целостность Данных Надежность
коммуникации
Производительность
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 10Public
А когда оно имеет смысл?
DevOps
Облачное
развертывание
Локальная
ответственность
Микросервисы
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 11Public
А в общем и целом…
Микросервисы == Скорость инноваций
Микросервисы
Отношение к бизнесу
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 13Public
Многоуровневые приложения (Gartner 2012)
System of Record
System of record
System of Differentiation
System of Innovation
http://www.gartner.com/newsroom/id/1923014
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 14Public
Что может, например, означать…
S4HANA, ERP on-prem, …
System of record
Облачное приложение на
микросервисах
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 15Public
SAP Hybris Service Engagement Center
SAP Business Suite on-prem (SD)
Order Management, Customers
System of record
SaaS Application for Omni-
Channel Customer Support
Call Center, Social Networks…
Микросервисы
Архитектура и методология
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 17Public
А как с этим работать?
Функциональные
требования
Техническая
реализация
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 18Public
Принципы компонентизации
• Функциональная нарезка
• Domain-Driven Design
• Нефункциональная нарезка
• Особенности команд разработчиков
• Разделение жизненных циклов
• Повторное использование
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 19Public
Domain-Driven Design как подход к функциональной нарезке
• Предложен Эриком Эвансом в
2003 г.
• Получил вторую жизнь с
развитием микросервисов
• Анализ требований на основе
семантики терминологии
• Домен является центральным
концептом
• Граничный контекст – инструмент
для выделения семантически
целостных компонент
https://en.wikipedia.org/wiki/Domain-driven_design
Функциональные
требования
Граничные
контексты
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 20Public
Особенности команд разработчиков
Team 1
Team 2
Team 1
Team 2
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 21Public
Разделение жизненных циклов
Следует
другому циклу
Proxy/Façade
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 22Public
Повторное использование
Повторно
используемый
функционал
Повторно
используемый
сервис
Микросервисы
Время выполнения
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 24Public
Ландшафт приложения
ConfigurationService
ServiceDiscovery
Edge Service
µS µS
 Authentication/Authorization
 Canary Deployment
 …
 Service Registry
 Instance Registry
 Central Configuration
 Dynamic Configuration
© 2016 SAP SE or an SAP affiliate company. All rights reserved. 25Public
Вопросы
?
Спасибо за внимание! Контакт:
Oleg Koutyrine
Architect
SAP SE
HANA Cloud Platform
oleg.koutyrine@sap.com

Микросервисы в бизнес-приложениях: Теория и практика

  • 1.
    Микросервисы в бизнес-приложениях ОлегКутырин, SAP 28 октября, 2016 Public
  • 2.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 2Public Об авторе Родился и вырос в Москве Закончил МАИ С 2000 г. в SAP Области интересов:  Построение компиляторов  Cloud  Ruby on Rails  Микросервисы  Domain-Driven Design  Бильярд (пул, 8) https://www.linkedin.com/in/oleg-kutyrin email: oleg.koutyrine@sap.com NO TWITTER
  • 3.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 3Public Disclaimer Никакого маркетинга, никакой рекламы  Исключительно технология и методология
  • 4.
  • 5.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 5Public Что такое микросервис? (Абстрактно) Определение М.Фаулера “applications as suites of services” “services are independently deployable and scalable” ”provides a firm module boundary” ”allowing for different services to be written in different programming languages” ”managed by different teams” http://martinfowler.com/articles/microservices.html
  • 6.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 6Public Что такое микросервис? (Чуть более конкретно)  Один модуль развертывания  Компактная архитектура  Локальные коммуникации  Множество модулей развертывания  Распределенная архитектура  Удаленные коммуникации
  • 7.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 7Public А зачем это все? Каждый микросервис – это независимый модуль с независимым жизненным циклом Независимая эволюция Независимый цикл разработки Независимое развертывание Независимое масштабирование Независимые технологические решения
  • 8.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 8Public А что в этом хорошего? Скорость Доставки Гибкое Масштабирование Подходящая Технология Простота Поддержки Обозримость Функционала
  • 9.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 9Public И все это бесплатно? Общая Сложность Требования к Инфраструктуре Целостность Данных Надежность коммуникации Производительность
  • 10.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 10Public А когда оно имеет смысл? DevOps Облачное развертывание Локальная ответственность Микросервисы
  • 11.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 11Public А в общем и целом… Микросервисы == Скорость инноваций
  • 12.
  • 13.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 13Public Многоуровневые приложения (Gartner 2012) System of Record System of record System of Differentiation System of Innovation http://www.gartner.com/newsroom/id/1923014
  • 14.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 14Public Что может, например, означать… S4HANA, ERP on-prem, … System of record Облачное приложение на микросервисах
  • 15.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 15Public SAP Hybris Service Engagement Center SAP Business Suite on-prem (SD) Order Management, Customers System of record SaaS Application for Omni- Channel Customer Support Call Center, Social Networks…
  • 16.
  • 17.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 17Public А как с этим работать? Функциональные требования Техническая реализация
  • 18.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 18Public Принципы компонентизации • Функциональная нарезка • Domain-Driven Design • Нефункциональная нарезка • Особенности команд разработчиков • Разделение жизненных циклов • Повторное использование
  • 19.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 19Public Domain-Driven Design как подход к функциональной нарезке • Предложен Эриком Эвансом в 2003 г. • Получил вторую жизнь с развитием микросервисов • Анализ требований на основе семантики терминологии • Домен является центральным концептом • Граничный контекст – инструмент для выделения семантически целостных компонент https://en.wikipedia.org/wiki/Domain-driven_design Функциональные требования Граничные контексты
  • 20.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 20Public Особенности команд разработчиков Team 1 Team 2 Team 1 Team 2
  • 21.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 21Public Разделение жизненных циклов Следует другому циклу Proxy/Façade
  • 22.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 22Public Повторное использование Повторно используемый функционал Повторно используемый сервис
  • 23.
  • 24.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 24Public Ландшафт приложения ConfigurationService ServiceDiscovery Edge Service µS µS  Authentication/Authorization  Canary Deployment  …  Service Registry  Instance Registry  Central Configuration  Dynamic Configuration
  • 25.
    © 2016 SAPSE or an SAP affiliate company. All rights reserved. 25Public Вопросы ?
  • 26.
    Спасибо за внимание!Контакт: Oleg Koutyrine Architect SAP SE HANA Cloud Platform oleg.koutyrine@sap.com