Микросервисы:
откуда столько шума?
Иван Евтухович, Экспресс 42
Избавляем бизнес от ИТ-зависимости
Избавляем бизнес от ИТ-зависимости
План
• Цифровизация и новые вызовы
• Что такое DevOps/NoOps?
• Закон Конвея
• Микросервисная архитектура
• Контейнеры (Docker)
3
Избавляем бизнес от ИТ-зависимости
Технологические
компании
• Uber
• Airbnb
• Etsy
• Yandex
• Тинькофф
• и т.д.
4
Избавляем бизнес от ИТ-зависимости
Схема корпорации*
5
* Генри Минцберг
Структура Автоматизация ИТ-архитектура
Рынок
Компания
Бизнес-процессы
Application
Middleware
Database
Избавляем бизнес от ИТ-зависимости
Схема технологической
компании
6
РынокКомпания
Программное
обеспечение
Избавляем бизнес от ИТ-зависимости
Пример
7
Избавляем бизнес от ИТ-зависимости
Time-to-market
8
Рынок
Программное
обеспечение
Инженеры
Стратегический апекс
Избавляем бизнес от ИТ-зависимости
DevOps
• Конфликт Dev и Ops
• Совместная работа над созданием ценности
• Соответствующие практики и инструменты
• CAMS
9
Избавляем бизнес от ИТ-зависимости
NoOps
• Невозможно “нарезать” Ops на несколько
команд
• Есть специализация у Ops, есть чистые Ops
задачи
• Общаться с Ops все равно долго
• Давайте их, вообще, уберем ;-)
• Будем использовать API и SLA
10
Избавляем бизнес от ИТ-зависимости
Недостатки систем
управления конфигурацией
• Configuration Drift
• Гетерогенная инфраструктура
• Тяжело поддерживать на больших проектах
• Сложны для изучения
11
Избавляем бизнес от ИТ-зависимости
Закон Конвея
• Мелвин Конвей, 1968
• http://evtuhovich.ru/blog/2016/10/05/conways-law/
• http://www.melconway.com/Home/
Committees_Paper.html
12
Формулировка
Организация, которая
создает систему,
ограничена дизайном,
который копирует
структуру коммуникации
в этой организации
Избавляем бизнес от ИТ-зависимости
Проблемы больших
приложений
• Сложно поддерживать
• Сильная связанность
• Очень дорого обновлять на новые версии языков/
фреймворков/библиотек
• Монолитность
• Долгий старт
• Разрабатывает большая команда
14
Избавляем бизнес от ИТ-зависимости
Сложность
15
Избавляем бизнес от ИТ-зависимости
Архитектура
three-tier microservices
16
Избавляем бизнес от ИТ-зависимости
Микросервисы
• Один сервис — одна команда (2 пиццы)
• Продуктовое мышление
• Умные эндпоинты и глупый транспорт
• Децентрализованное управление
17
Избавляем бизнес от ИТ-зависимости
Микросервисы
• Децентрализованное управление данными
• Cервис самодостаточен и изолирован
• Публичное API
• сервис умеет сам себя обслуживать на основе
других сервисов
18
Избавляем бизнес от ИТ-зависимости
Микросервисы
• Автоматизация инфраструктуры
• Спроектированы для отказа
• Асинхронны
• DDD
• Постоянно развиваются
19
Избавляем бизнес от ИТ-зависимости
Достоинства
• Любые языки/фреймворки
• Небольшие компоненты
• Слабая связность
• Легкость обновления
20
Избавляем бизнес от ИТ-зависимости
Недостатки
микросервисов
• Сложно выкатывать
• Сложно тестировать
• Распределенная система
• Сложно эксплуатировать
• Несогласованная БД
21
Избавляем бизнес от ИТ-зависимости
Про БД
22
Избавляем бизнес от ИТ-зависимости23
Docker и контейнеризация
Application
Libraries
Frameworks
Services
OS Env
Избавляем бизнес от ИТ-зависимости
Не только Docker
• rkt https://github.com/coreos/rkt
• Windows Containers
• OpenVZ
• LXD от Ubuntu
• Clear Containers
24
Избавляем бизнес от ИТ-зависимости
Достоинства
• Неизменяемые
• Стандартная поставка
• Долго хранятся
• Хороший выбор абстракции
25
Избавляем бизнес от ИТ-зависимости
Недостатки
• Еще один уровень абстракции
• Переделка приложений
• Активное использование Service Discovery
• Плохо подходят для stateful сервисов
26
Избавляем бизнес от ИТ-зависимости
Наш опыт
27
Datacenter Operating System
DCOS
Избавляем бизнес от ИТ-зависимости
Это не мистика
• Mesos/Marathon https://mesosphere.github.io/
marathon/
• DC/OS https://dcos.io/
• http://kubernetes.io/
• Amazon ECS
• Rancher
28
Избавляем бизнес от ИТ-зависимости29
Continuous Delivery
Избавляем бизнес от ИТ-зависимости
sloppy.io
30
NO DEVOPS GUY, NO CRY.
Избавляем бизнес от ИТ-зависимости
Платформа!!!!
• Git ➜ CI ➜ Registry ➜ Platform
• Service Discovery
• Сквозное логирование
• Непрерывный мониторинг
31
Избавляем бизнес от ИТ-зависимости
Выводы
• Научитесь доставлять изменения за минуты даже
в гигантских проектах
• Научитесь пользоваться контейнерами и
платформами
• Определитесь с вашей ролью в процессе
поставки ПО
• Рожайте детей, с ними прикольно
32
Избавляем бизнес от ИТ-зависимости
DevOps сообщество
• devopsru.com
• http://www.meetup.com/DevOps-Moscow-in-Russian
• https://groups.google.com/forum/#!forum/devopsru
• http://hangops.ru
• http://devopsdeflope.ru
• http://rootconf.ru/
33
Избавляем бизнес от ИТ-зависимости
Дефлопе!
34
Избавляем бизнес от ИТ-зависимости35
Избавляем бизнес от ИТ-зависимости
Книги
• Проект “Феникс”. Роман о том, как DevOps
меняет бизнес к лучшему. Джин Ким и др.
36
Избавляем бизнес от ИТ-зависимости
Контакты
37
http://express42.com
+7 499 918 67 34
@evtuhovich
evtuhovich@gmail.com

Микросервисы: откуда столько шума?

  • 1.
  • 2.
    Избавляем бизнес отИТ-зависимости
  • 3.
    Избавляем бизнес отИТ-зависимости План • Цифровизация и новые вызовы • Что такое DevOps/NoOps? • Закон Конвея • Микросервисная архитектура • Контейнеры (Docker) 3
  • 4.
    Избавляем бизнес отИТ-зависимости Технологические компании • Uber • Airbnb • Etsy • Yandex • Тинькофф • и т.д. 4
  • 5.
    Избавляем бизнес отИТ-зависимости Схема корпорации* 5 * Генри Минцберг Структура Автоматизация ИТ-архитектура Рынок Компания Бизнес-процессы Application Middleware Database
  • 6.
    Избавляем бизнес отИТ-зависимости Схема технологической компании 6 РынокКомпания Программное обеспечение
  • 7.
    Избавляем бизнес отИТ-зависимости Пример 7
  • 8.
    Избавляем бизнес отИТ-зависимости Time-to-market 8 Рынок Программное обеспечение Инженеры Стратегический апекс
  • 9.
    Избавляем бизнес отИТ-зависимости DevOps • Конфликт Dev и Ops • Совместная работа над созданием ценности • Соответствующие практики и инструменты • CAMS 9
  • 10.
    Избавляем бизнес отИТ-зависимости NoOps • Невозможно “нарезать” Ops на несколько команд • Есть специализация у Ops, есть чистые Ops задачи • Общаться с Ops все равно долго • Давайте их, вообще, уберем ;-) • Будем использовать API и SLA 10
  • 11.
    Избавляем бизнес отИТ-зависимости Недостатки систем управления конфигурацией • Configuration Drift • Гетерогенная инфраструктура • Тяжело поддерживать на больших проектах • Сложны для изучения 11
  • 12.
    Избавляем бизнес отИТ-зависимости Закон Конвея • Мелвин Конвей, 1968 • http://evtuhovich.ru/blog/2016/10/05/conways-law/ • http://www.melconway.com/Home/ Committees_Paper.html 12
  • 13.
    Формулировка Организация, которая создает систему, ограниченадизайном, который копирует структуру коммуникации в этой организации
  • 14.
    Избавляем бизнес отИТ-зависимости Проблемы больших приложений • Сложно поддерживать • Сильная связанность • Очень дорого обновлять на новые версии языков/ фреймворков/библиотек • Монолитность • Долгий старт • Разрабатывает большая команда 14
  • 15.
    Избавляем бизнес отИТ-зависимости Сложность 15
  • 16.
    Избавляем бизнес отИТ-зависимости Архитектура three-tier microservices 16
  • 17.
    Избавляем бизнес отИТ-зависимости Микросервисы • Один сервис — одна команда (2 пиццы) • Продуктовое мышление • Умные эндпоинты и глупый транспорт • Децентрализованное управление 17
  • 18.
    Избавляем бизнес отИТ-зависимости Микросервисы • Децентрализованное управление данными • Cервис самодостаточен и изолирован • Публичное API • сервис умеет сам себя обслуживать на основе других сервисов 18
  • 19.
    Избавляем бизнес отИТ-зависимости Микросервисы • Автоматизация инфраструктуры • Спроектированы для отказа • Асинхронны • DDD • Постоянно развиваются 19
  • 20.
    Избавляем бизнес отИТ-зависимости Достоинства • Любые языки/фреймворки • Небольшие компоненты • Слабая связность • Легкость обновления 20
  • 21.
    Избавляем бизнес отИТ-зависимости Недостатки микросервисов • Сложно выкатывать • Сложно тестировать • Распределенная система • Сложно эксплуатировать • Несогласованная БД 21
  • 22.
    Избавляем бизнес отИТ-зависимости Про БД 22
  • 23.
    Избавляем бизнес отИТ-зависимости23 Docker и контейнеризация Application Libraries Frameworks Services OS Env
  • 24.
    Избавляем бизнес отИТ-зависимости Не только Docker • rkt https://github.com/coreos/rkt • Windows Containers • OpenVZ • LXD от Ubuntu • Clear Containers 24
  • 25.
    Избавляем бизнес отИТ-зависимости Достоинства • Неизменяемые • Стандартная поставка • Долго хранятся • Хороший выбор абстракции 25
  • 26.
    Избавляем бизнес отИТ-зависимости Недостатки • Еще один уровень абстракции • Переделка приложений • Активное использование Service Discovery • Плохо подходят для stateful сервисов 26
  • 27.
    Избавляем бизнес отИТ-зависимости Наш опыт 27 Datacenter Operating System DCOS
  • 28.
    Избавляем бизнес отИТ-зависимости Это не мистика • Mesos/Marathon https://mesosphere.github.io/ marathon/ • DC/OS https://dcos.io/ • http://kubernetes.io/ • Amazon ECS • Rancher 28
  • 29.
    Избавляем бизнес отИТ-зависимости29 Continuous Delivery
  • 30.
    Избавляем бизнес отИТ-зависимости sloppy.io 30 NO DEVOPS GUY, NO CRY.
  • 31.
    Избавляем бизнес отИТ-зависимости Платформа!!!! • Git ➜ CI ➜ Registry ➜ Platform • Service Discovery • Сквозное логирование • Непрерывный мониторинг 31
  • 32.
    Избавляем бизнес отИТ-зависимости Выводы • Научитесь доставлять изменения за минуты даже в гигантских проектах • Научитесь пользоваться контейнерами и платформами • Определитесь с вашей ролью в процессе поставки ПО • Рожайте детей, с ними прикольно 32
  • 33.
    Избавляем бизнес отИТ-зависимости DevOps сообщество • devopsru.com • http://www.meetup.com/DevOps-Moscow-in-Russian • https://groups.google.com/forum/#!forum/devopsru • http://hangops.ru • http://devopsdeflope.ru • http://rootconf.ru/ 33
  • 34.
    Избавляем бизнес отИТ-зависимости Дефлопе! 34
  • 35.
    Избавляем бизнес отИТ-зависимости35
  • 36.
    Избавляем бизнес отИТ-зависимости Книги • Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему. Джин Ким и др. 36
  • 37.
    Избавляем бизнес отИТ-зависимости Контакты 37 http://express42.com +7 499 918 67 34 @evtuhovich evtuhovich@gmail.com