Бизнес-гибкость через микросервисную архитектуру

Бизнес-гибкость через микросервисную архитектуру

AgileDays, 23-24 марта, 2017, Москва
http://msk17.agiledays.ru/members/profile/428/

Видео https://blog.byndyu.ru/2020/01/blog-post_21.html

Тема перехода на микросервисную архитектуру стала одной из самых горячих на конференциях по архитектуре ПО. Заказчики и разработчики захотели раздробить монолитные приложения на множество маленьких сервисов, чтобы увеличить скорость доставки релизов до пользователей, разделить ответственность команд, уменьшить взаимозависимость бизнес-функций приложения и использовать горизонтальное масштабирование вместо вертикального.

Идея микросервисов звучит красиво, пока вы не создадите десятки и сотни микросервисов. Раньше приложение запускалось на одном мощном сервере и работало на одной СУБД, а теперь надо управлять сотней микросервисов, которые связаны между собой паутиной API вызовов и шин сообщений. Разработка, выпуск релизов, тестирование, соблюдение версионности превратяться в кошмар, если не использовать правильные подходы и инструменты.

В докладе покажу инструменты, которые помогают облегчить создание и управление с микросервисной архитектурой.

89a0966b0f29e90ebf602a77e1349a6b?s=128

Alexander Byndyu

March 23, 2017
Tweet

Transcript

  1. Бизнес-гибкость через микросервисную архитектуру Александр Бындю http://byndyu.ru

  2. Александр Бындю Эксперт в Agile и Lean · IT-архитектор 

    Перевожу монолитные системы на микросервисную архитектуру;  Организую работу от сбора требований до запуска IT-продукта;  Консультирую как внешний IT-архитектор. CEO в http://byndyusoft.com Организую http://dotnetconf.ru Преподаю в двух университетах Блог http://blog.byndyu.ru и https://medium.com/@alexander.byndyu
  3. Цели бизнеса Выбор лучшего решения для бизнес-задачи без компромиссов Нам

    нужна CRM Покупаем SAP CRM Но мы хотим SalesForce  Надо брать SAP CRM, потому что SAP у нас уже есть, мы знаем, как с ним работать, интеграция проще, обновление проще и в целом SAP CRM неплохая CRM-ка Бизнес: IT: Бизнес: IT: Нам нужна CRM Какая CRM лучше всего решит ваши задачи? SalesForce! Ок, мы интегрируем SalesForce и текущей инфраструктурой на SAP Бизнес: IT: Бизнес: IT:
  4. Цели бизнеса Поставка бизнес-ценности как можно быстрее Переходим с SAP

    CRM на BPM Online Интеграция нового решения займет полгода Почему так долго?  <Объясняют какая паутина взаимосвязей объединяет SAP CRM c остальными приложениями в компании> Бизнес: IT: Бизнес: IT: Переходим с SAP CRM на BPM Online За неделю переключим точки интеграции Что-то еще требуется для запуска? Еще надо перелить данные и дописать бизнес-функции, но это можно делать параллельно с запуском новой CRM Бизнес: IT: Бизнес: IT:
  5. Цели бизнеса Дешево масштабировать сервисы, причем только определенные и только

    когда это нужно Сервис Тарификации к Черной пятнице должен выдерживать нагрузку в 2 раза больше обычной Надо купить в 4 раза больше железа и это даст ускорение на 30% Почему так дорого и совсем не в 2 раза?  Ускорение в 2 раза будет стоить как вся наша компания (прим. — при текущей архитектуре) Бизнес: IT: Бизнес: IT: Сервис Тарификации к Черной пятнице должен выдерживать нагрузку в 2 раза больше обычной Ок, сейчас нажмем пару кнопок и увеличим кол-во экземпляров сервиса, чтобы масштабировать нагрузку. Докупать что-то нужно? Ресурсы в облаке, но только на время нагрузки Бизнес: IT: Бизнес: IT:
  6. АйТи берёт бизнес в заложники «Монолитное» решение становится вездесущим и

    незаменимым для компании. АйТи начинает диктовать бизнесу свои условия в выборе инструментов, сроков и подходов к решению. АйТи начальник
  7. «Монолиты» берут компанию в заложники UI Business Logic Database Бизнес-функцию

    доработали, но она зависит от других, поэтому ждем «большой заливки»  Можно эту бизнес-функцию заменить другим решением, а остальное не трогать? Нет? Скидки Рассылки
  8. Бизнесу плохо живется с «монолитами». Чувствуется это только в условиях

    высокой конкуренции.
  9. Microservices, Microservices, Microservices!

  10. Microservice = Business capability

  11. Монолитом легко управлять, а как справиться с сотней микросервисов? IT-

    команда
  12. Developing Microservices with Aggregates, Chris Richardson

  13. «Монолит» простит вас за отсутствие автоматизации и управляемости. Сотня микросервисов

    за это жёстко накажет.
  14. API Gateway http://microservices.io/patterns/apigateway.html Единое место вызова API Умеет: • Управление

    трафиком • Авторизация • Мониторинг • Горизонтальное масштабирование • Управления версиями • Кэш запросов • Трансформация ответов 1
  15. Легко заменяем сервисы! Постепенно убираем монолит. Масштабируем нагрузку

  16. Event bus Единое место для публикации событий • Асинхронное взаимодействие

    • Низкая связность сервисов • Горизонтально масштабируется 2
  17. Легко заменяем сервисы! Постепенно убираем монолит. Масштабируем нагрузку

  18. Service Discovery Подскажет, где запущен «живой» экземпляр требуемого сервиса Умеет:

    • Регистрировать сервисы в своей базе • Проверять «жив» ли каждый экземпляр сервиса • Балансирование нагрузки между экземплярами одного сервиса http://microservices.io/patterns/server-side-discovery.html 3
  19. Легко масштабировать: увеличивать и уменьшать кол-во экземпляров микросервиса http://rabbitstack.github.io/cloud/microservices/from-monolithic-to-cloud-native-architectures/

  20. Integration Platform as a Service (iPaaS) Gartner: Why You Need

    Integration as a Platform (iPaaS) Платформа для гибридной интеграции Умеет: • Предоставляет готовые адаптеры ко многим источникам данных • Обновление адаптеров и поддержка разных версий • SLA • Citizen integrators настраивают интеграцию через интерфейс без программирования • Управление интеграцией в одном месте • Визуализация потоков данных 4
  21. К 2017 году в крупных организациях не менее 65% новых

    интеграционных проектов будут разрабатываться без участия ИТ-отделов. К 2018 году в большинстве организаций по меньшей мере 50% новых интеграционных проектов будут осуществляться гражданами-интеграторами. CIO Call to Action: Shake Up Your Integration Strategy to Enable Digital Transformation, Gartner Экономия на программировании интеграции и поддержке инфраструктуры Citizen Integrator Теперь я тут главная ;)
  22. Pervasive Integration 22 Единый интерфейс для запроса данных из любого

    источника Умеет: • Готовы адаптеры ко многим источникам данных • Обновление адаптеров и поддержка разных версий • SLA 5
  23. 23 Специалист по BI может подключать и отключать любые источники

    данных в компании Продукт DataVirtuality
  24. Containers, Orchestration, IaC 6 Изолированная среда для разворачивания микросервиса Умеет:

    • 100% автоматизация • Инфраструктура, описанная кодом: сравнение, расшаривание, повторяемость при развертывании • Создание нужного окружения за несколько минут • Управление сотнями контейнеров на множестве серверов • Поддержка в Azure и AWS • Serverless
  25. Полностью автоматизированные релизы и масштабирование http://www.schibsted.pl/blog/how-we-used-docker-to-deploy-schibsted-pl

  26. Задачи архитектора: 1. Добиться низкой связанности микросервисов 2. Правильно распределить

    ответственность между микросервисами 3. Добиться полной автоматизации API Gateway Event bus Service Discovery iPaaS Containers, Orchestration Ваш новый очень умный IT-архитектор
  27. Да, но это сложно архитектурно, организационно и проблемы при поиске

    разработчиков Microservices — это круто! IT- команда
  28. Потратим • Вложение денег в переход IT-инфраструктура, создание новых сервисов,

    рефакторинг стартых сервисов • Переобучение сотрудников • Изменение орг. структуры • Дорогие специалисты с новыми знаниями • Риск ошибиться в выборе микросервисов Заработаем • Достижение бизнес-целей: • Гибкость в выборе решений • Ускорение поставок новых функций • Гибкое масштабирование сервисов • Меньше людей, которые делают ручную работу • Меньше железа, которое не приносит деньги $$$?
  29. Выбор лучшего решения для бизнес-задачи без компромиссов Microservices, Microservices, Microservices!

    Поставка бизнес- ценности как можно быстрее Дешево масштабировать сервисы
  30. API Gateway: Решения Cloud • Azure API Management • Amazon

    API Gateway On-premise • MuleSoft API Gateway Вручную: 1. Настроить DNS внутри компании 2. Настроить безопасность 3. Настроить инфраструктуру и позаботиться об отказоустойчивости 4. Настроить мониторинг 5. Настроить логирование
  31. Event bus: Решения Вручную: • Таблица в БД с сообщениями

    • Читать логи транзакций БД Cloud • Azure Service Bus • Amazon Simple Queue Service On-premise • RabbitMQ • Kafka
  32. Service Discovery: Решения Вручную: • Service Discovery for Amazon ECS

    Using DNS • Service Discovery: An Amazon ECS Reference Architecture Cloud • Azure Service Communication • AWS Application Discovery Service On-premise • Consul • ZooKeeper
  33. iPaaS: Решения Gartner’s report Magic Quadrant for Enterprise Integration Platform

    as a Service, Worldwide
  34. Pervasive Integration: Решения 34 Готовые решения Gartner: Cool Vendors in

    Pervasive Integration, 2016. Вручную: 1. Собирайте данные со всех источников 2. Настройте DWH
  35. Containers: Решения Вручную: • API контейнера +ручная автоматизация Cloud •

    Amazon AWS ECS • Azure Container Service (ACS) On premise • Docker • Kubernetes Orchestration • Docker Engine API • Kubernetes • Azure Service Fabric
  36. Подробнее в моих статьях 1. Useful Tools for Managing Complexity

    of Microservice Architecture 2. Clouds, iPaaS, Citizen Integrator and Why India’s Outsourcing Is Losing Money 3. Стратегия крупного ретейлера по изменению IT- архитектуры и процессов
  37. База знаний о микросервисах 1. Microservices Resource Guide Martin Fowler

    2. Microservice architecture patterns and best practices Chris Richardson
  38. Спасибо! Буду рад ответить на ваши вопросы http://byndyu.ru ceo@byndyusoft.com