SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Микросервисные
архитектуры
и немного жизненного опыта
Елена Румянцева
апрель 2015
О чем доклад?
Что такое микросервисы и зачем они
нужны
SOA и MSOA: сходства и различия
Предусловия для перехода на (M)SOA
Как выделить микросервисы из монолита?
Бонус: что читать для погружения в тему
2
Что такое
микросервисы?
Микросервисы
«Маленькие»
Автономные
Работают вместе
4
Принцип единственной обязанности
How small is small?
Переписать за две недели
Организация кода и опыт
5
Размер
Отдельные «приложения» на разных
машинах?
«-»: Накладные расходы
«+»: Проще строить распределенные
системы
6
Автономные
Сервис должен уметь разворачиваться
самостоятельно вне зависимости от
наличия или отсутствия по соседству
других сервисов и без изменений в других
сервисах.
7
«Золотое правило»
Максимальная толерантность к
изменениям соседних сервисов
Слабая связанность
Коммуникация по сети
Использование разных технологий и
языков программирования
8
Взаимодействие
SOA и MSOA
10
SOA MSOA
ESB
Простые очереди и
запросы
Бизнес-логика в ESB
Бизнес-логика на стороне
потребителей данных
Сложные стандарты Простые интерфейсы
Зачем нужны
микросервисы?
Чтобы быстро!
Зачем нужны микросервисы?
Быстро реализовать новую фичу
Быстро интегрировать ее в
существующую систему
Быстро протестировать
Быстро порелизить
13
Профит от сервиса как
отдельностоящего приложения
Не надо копаться в чужих задачах из
очереди на релиз
Меньше вероятности зааффектить
другие сервисы из-за глупых ошибок
Проще выделить зоны
ответственности конкретных людей за
конкретный код
14
Некоторые свойства
микросервисов
Асинхронность и событийность
Не более одного синхронного действия за
один вызов
Реакция на события, генерируемые
другими микросервисами
16
Доступ к данным
Сервис не меняет данные другого
сервиса напрямую
Использование API для изменения
данных в соседнем сервисе
Использование очередей
17
Request - Response (пример)
18
E
Requestor
Q
Replier
EQ
Проектирование на отказ 

(Design for failure)
Вся система в целом должна работать
так, как будто в любой момент любой из
микросервисов может оказаться не
доступен.
19
«Интерфейсы» vs «Кишки»
«Интерфейсы» важны
«Кишки» не важны
20
Как выделить
микросервисы 

на практике
Понимание предметной области
Построение микросервисов вокруг
бизнес-услуг
DDD в помощь
22
«Эволюционная архитектура»
Выделяем сервисы так, чтобы их можно
было безболезненно переписать с нуля
23
Взаимопонимание
Владельцы сервисов и ответственные
лица
Коллеги из DEVOPS
Клиентские приложения
24
Microservice way
Соответствует ли то, что я собираюсь
делать, идеи микросервисов?
25
Несколько примеров
про использование
микросервисов
«Оркестровка» и «хореография»
27
«Оркестровка»
28
«Хореография»
29
Пример про импорт данных
Основную информацию импортируем
синхронно из основного сервиса
Фотки загружает и импортирует
другой сервис
Анализом данных занимается третий
сервис
30
Клиентские приложения и сервисы
31
Монолитный API-шлюз
32
Специальные бэкэнды для фронтендов
33
Начинать с монолита — проще!
Откалываем по кусочкам
Начинаем там, где от микросервисов
будет больше пользы
Уменьшаем количество коммуникаций
между модулями
34
Разбиваем монолит
Закон Конвея
«Организации, занимающиеся
проектированием систем, неизбежно
производят системы, повторяющие
структуру их коммуникаций»
36
Вывод
Чтобы успешно проектировать
микросервисы, команда сама должна
взаимодействовать как совокупность
микросервисов
«Фичатим»
37
Когда есть смысл переходить
на (микро-) сервисы
Команда разработчиков уже большая
или планируется ее расширение
Нужно реализовать много новых
крупных фич, в т.ч. новых сущностей
38
Необходимые инструменты

для перехода на микросервисы
«DEVOPS — наше всё»
Необходимые инструменты

для перехода на микросервисы
или несколько слов на «авто-»
Автокопирование базовых файлов из шаблона
Авторазвервертвание (и автосвертывание)
микросервисов на боевых и любых окружениях
Автодокументация фронтендов
Автомониторинг фронтендов
Автоокументирование и автомониторинг
взаимодействия микросервисов между собой
41
Немного жизненного опыта
Не ждите чуда, чудите сами

релизьте без тестирования
Релизьте сырое!
Релизьте с багами!
Релизьте то, что еще никто не
собирается использовать!
43
Другие важные темы
Как всё это тестировать?
Как разворачивать микросервисы на любом окружении?
Как масштабировать?
Как мониторить?
SLA и метрики на сервисы
Аутентификация и авторизация
44
Что читать?
James Lewis

Martin Fowler
Microservices
http://martinfowler.com/
articles/microservices.html
46
Sam Newman
Building
Microservices
http://info.thoughtworks.com/
building-microservices-book.html
47
SoundCloud
Dealing with the Monolith
https://developers.soundcloud.com/blog/building-
products-at-soundcloud-part-1-dealing-with-the-monolith
48
Микросервисы — 

не бесплатный обед
http://highscalability.com/blog/2014/4/8/microservices-
not-a-free-lunch.html
49
Вопросы?
Елена Румянцева

twitter.com/webdeva



vk.com/devngs

Weitere ähnliche Inhalte

Was ist angesagt?

Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"
Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Ontico
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Ontico
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
Ontico
 

Was ist angesagt? (20)

Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
 
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
 
vi stories: миграция на .NET Core
vi stories: миграция на .NET Corevi stories: миграция на .NET Core
vi stories: миграция на .NET Core
 
Microsoft Exchange: почта и управление рабочим временем в облаке
Microsoft Exchange: почта и управление рабочим временем в облакеMicrosoft Exchange: почта и управление рабочим временем в облаке
Microsoft Exchange: почта и управление рабочим временем в облаке
 
De Novo RDaaS
De Novo RDaaS De Novo RDaaS
De Novo RDaaS
 
Быстрее, доступнее, безопаснее: новые облачные решения De Novo и свежие кейсы
Быстрее, доступнее, безопаснее: новые облачные решения De Novo и свежие кейсыБыстрее, доступнее, безопаснее: новые облачные решения De Novo и свежие кейсы
Быстрее, доступнее, безопаснее: новые облачные решения De Novo и свежие кейсы
 
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
 
Частное облако для CIO и CxO
Частное облако для CIO и CxOЧастное облако для CIO и CxO
Частное облако для CIO и CxO
 
Денис Емельяненко, De Novo: "Managed Services: новые возможности для IT"
Денис Емельяненко, De Novo: "Managed Services: новые возможности для IT"Денис Емельяненко, De Novo: "Managed Services: новые возможности для IT"
Денис Емельяненко, De Novo: "Managed Services: новые возможности для IT"
 
Review of all-flash array market and benefits
Review of all-flash array market and benefitsReview of all-flash array market and benefits
Review of all-flash array market and benefits
 
Геннадий Карпов, De Novo: "Облако De Novo 2015-2016: история прошедшего года ...
Геннадий Карпов, De Novo: "Облако De Novo 2015-2016: история прошедшего года ...Геннадий Карпов, De Novo: "Облако De Novo 2015-2016: история прошедшего года ...
Геннадий Карпов, De Novo: "Облако De Novo 2015-2016: история прошедшего года ...
 
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
 
Геннадий Карпов, Кирилл Сушан, De Novo: "SuperNovo - самое доступное Облако д...
Геннадий Карпов, Кирилл Сушан, De Novo: "SuperNovo - самое доступное Облако д...Геннадий Карпов, Кирилл Сушан, De Novo: "SuperNovo - самое доступное Облако д...
Геннадий Карпов, Кирилл Сушан, De Novo: "SuperNovo - самое доступное Облако д...
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
Геннадий Карпов, De Novo: "Cloud Disaster Recovery для пользователей Veeam Ba...
Геннадий Карпов, De Novo: "Cloud Disaster Recovery для пользователей Veeam Ba...Геннадий Карпов, De Novo: "Cloud Disaster Recovery для пользователей Veeam Ba...
Геннадий Карпов, De Novo: "Cloud Disaster Recovery для пользователей Veeam Ba...
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Пример КП на 100 пользователей
Пример КП на 100 пользователейПример КП на 100 пользователей
Пример КП на 100 пользователей
 

Andere mochten auch

Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Ontico
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили
Edward Galiaskarov
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
Aleksandr Tarasov
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agile
Nikita Filippov
 

Andere mochten auch (20)

Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
 
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
 
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Введение в язык программирования Go
Введение в язык программирования GoВведение в язык программирования Go
Введение в язык программирования Go
 
Women Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митапWomen Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митап
 
Про Git
Про GitПро Git
Про Git
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
 
Пословицы дядюшки Пайка
Пословицы дядюшки ПайкаПословицы дядюшки Пайка
Пословицы дядюшки Пайка
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили04 Архитектура информационных систем. Архитектурные модели и стили
04 Архитектура информационных систем. Архитектурные модели и стили
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 
Пользовательские истории
Пользовательские историиПользовательские истории
Пользовательские истории
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
Потоковая обработка больших данных
Потоковая обработка больших данныхПотоковая обработка больших данных
Потоковая обработка больших данных
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agile
 
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
 

Ähnlich wie Микросервисные архитектуры и немного жизненного опыта

Grishanova mega labs
Grishanova mega labsGrishanova mega labs
Grishanova mega labs
southmos
 
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабсИдеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
Michael Oreshin
 
МК - Облачные решения в HR-технологиях-2013
МК - Облачные решения в HR-технологиях-2013МК - Облачные решения в HR-технологиях-2013
МК - Облачные решения в HR-технологиях-2013
Oleg Afanasyev
 
варианты использования соа
варианты использования соаварианты использования соа
варианты использования соа
Максим Смирнов
 

Ähnlich wie Микросервисные архитектуры и немного жизненного опыта (20)

Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуру
 
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOps
 
Node .js microservices
Node .js microservices Node .js microservices
Node .js microservices
 
Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?Микросервисы: откуда столько шума?
Микросервисы: откуда столько шума?
 
Андрей Матвеев "Основные принципы микросервисов и их реализации"
Андрей Матвеев "Основные принципы микросервисов и их реализации"Андрей Матвеев "Основные принципы микросервисов и их реализации"
Андрей Матвеев "Основные принципы микросервисов и их реализации"
 
Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...
Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...
Результаты опроса "Практика и планы по использованию Облачных вычислений (Обл...
 
Grishanova mega labs
Grishanova mega labsGrishanova mega labs
Grishanova mega labs
 
«Microservices. Как правильно делать и когда применять?»
«Microservices. Как правильно делать и когда применять?»«Microservices. Как правильно делать и когда применять?»
«Microservices. Как правильно делать и когда применять?»
 
Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для Enterprise
 
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабсИдеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
Идеальный сервис для идеального пользователя. Михаил Ляпин. МегаЛабс
 
Intrus 2007 - SaaS
Intrus 2007 - SaaSIntrus 2007 - SaaS
Intrus 2007 - SaaS
 
Облачный рынок в России в и в мире. Взгляд Parallels.
Облачный рынок в России в и в мире. Взгляд Parallels.Облачный рынок в России в и в мире. Взгляд Parallels.
Облачный рынок в России в и в мире. Взгляд Parallels.
 
МК - Облачные решения в HR-технологиях-2013
МК - Облачные решения в HR-технологиях-2013МК - Облачные решения в HR-технологиях-2013
МК - Облачные решения в HR-технологиях-2013
 
Цифрова трансформація для бізнесу, влади та суспільства – як потрібно змінюва...
Цифрова трансформація для бізнесу, влади та суспільства – як потрібно змінюва...Цифрова трансформація для бізнесу, влади та суспільства – як потрібно змінюва...
Цифрова трансформація для бізнесу, влади та суспільства – як потрібно змінюва...
 
Три истории микросервисов / Игорь Беспальчук (CUSTIS)
Три истории микросервисов / Игорь Беспальчук (CUSTIS)Три истории микросервисов / Игорь Беспальчук (CUSTIS)
Три истории микросервисов / Игорь Беспальчук (CUSTIS)
 
ITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLAITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLA
 
а.прозоров объективные ограничения клиент-сервер
а.прозоров   объективные ограничения клиент-сервера.прозоров   объективные ограничения клиент-сервер
а.прозоров объективные ограничения клиент-сервер
 
MBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringMBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok Egineering
 
варианты использования соа
варианты использования соаварианты использования соа
варианты использования соа
 
CloudsNN 2013 Анисимов Константин. Облачный рынок в цифрах и фактах.
CloudsNN 2013 Анисимов Константин. Облачный рынок в цифрах и фактах.CloudsNN 2013 Анисимов Константин. Облачный рынок в цифрах и фактах.
CloudsNN 2013 Анисимов Константин. Облачный рынок в цифрах и фактах.
 

Микросервисные архитектуры и немного жизненного опыта