Микросервисы в бизнес-приложениях: Теория и практика
TRANSCRIPT
Микросервисы в бизнес-приложениях
Олег Кутырин, 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: [email protected]
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
А когда оно имеет смысл?
De
vO
ps
Об
ла
чно
е
ра
зве
рты
вани
е
Ло
кал
ьна
я
отв
етс
тве
нно
сть
Микросервисы
© 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 recordSystem 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
Ландшафт приложения
Configura
tion S
erv
ice
Serv
ice D
iscovery
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
Вопросы
?