От микросервисов к микроагентам

Содержание

Слайд 2

Развитие микросервисных архитектур

2011 — 2012 появление понятия микросервисной архитектуры (МСА)
2012 — 2014

Развитие микросервисных архитектур 2011 — 2012 появление понятия микросервисной архитектуры (МСА) 2012
широкое распространение МСА среди технологических лидеров
2013 — 2014 публикация «Реактивного манифеста» (v.1 и v.2)
2015 — выход книги С.Ньюмена «Создание микросервисов»

Слайд 3

Клиент-серверная архитектура SOA 1.0

Клиент-серверная архитектура SOA 1.0

Слайд 4

Клиент-серверная архитектура

Система построенная на запрос-ответах по сути своей синхронна
Обращение из точки в

Клиент-серверная архитектура Система построенная на запрос-ответах по сути своей синхронна Обращение из
точку, без посредников
Гарантирована доставка или явная ошибка

Слайд 5

Событийно-ориентированная архитектура / SOA 2.0

Событийно-ориентированная архитектура / SOA 2.0

Слайд 6

Событийно-ориентированная архитектура

Система построенная на обмене событиями асинхронна по сути
Отправители и получатели не

Событийно-ориентированная архитектура Система построенная на обмене событиями асинхронна по сути Отправители и
знают друг о друге, отправитель просто посылает сигнал в общую шину
Один сигнал может получить множество получателей, получатели могут подключаться и отключаться независимо,
Гарантия доставки зависит от реализации посредника - хранит ли он данные

Слайд 7

Реактивная архитектура

Реактивная архитектура

Слайд 8

Реактивная архитектура

Система асинхронна, отправитель и получатель не связаны непосредственно
Доставка сообщений гарантирована, как

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

Слайд 9

Периодические задачи

Позволяют группировать данные в пакеты для более эффективной обработки
Позволяют обновлять и

Периодические задачи Позволяют группировать данные в пакеты для более эффективной обработки Позволяют
инвалидировать кеши
Запускать проверки и обслуживание БД, рассылать отчеты по ним
Инициировать запросы к другим сервисам

Слайд 10

Смешанная архитектура

Смешанная архитектура

Слайд 11

Сервисы связывают данные, а не используемые технологии

Сервисы связывают данные, а не используемые технологии

Слайд 12

Хранилище может быть сервисом, очередь тоже хранилище

Хранилище может быть сервисом, очередь тоже хранилище

Слайд 13

Независимый сервис сам извлекает информацию

Независимый сервис сам извлекает информацию

Слайд 14

Агентно-ориентированное программирование

Агенты – небольшие, автономные, совместно работающие программы
Поведение агента определяется целью а

Агентно-ориентированное программирование Агенты – небольшие, автономные, совместно работающие программы Поведение агента определяется
не конкретным функционалом
Агент может модифицировать свое поведение в зависимости от окружения
Агентно-ориентированное программирование развитие ООП

Слайд 15

Микроагент

Может подключаться к событийной шине, отправлять и получать события
Может быть узлом обработки

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

https://pypi.org/project/microagent/

Слайд 16

Сигнал / Signal

Моментальное уведомление через шину событий
Основан на Publish / Subscribe паттерне
Лаконичен,

Сигнал / Signal Моментальное уведомление через шину событий Основан на Publish /
параметры строго определены
Не гарантирует доставку и порядок
Обеспечивает максимальную скорость, в ущерб надежности

Слайд 17

Сигнал / Signal

Сигнал / Signal

Слайд 18

Сообщение / Message

Пакет данных из очереди, который требуется обработать
Основан на Producer /

Сообщение / Message Пакет данных из очереди, который требуется обработать Основан на
Consumer паттерне
Содержит произвольный набор данных
Сообщение храниться в очереди, доставка и порядок гарантированы

Слайд 19

Сообщение / Message

Сообщение / Message

Слайд 20

Вызов / Call

Удаленный вызов процедур на базе сигналов (запрос-ответ) с timeout-ом
Служит для

Вызов / Call Удаленный вызов процедур на базе сигналов (запрос-ответ) с timeout-ом
синхронизации распределенных вычислений
Может вернуть простой тип (int, str) в ответ
Может получить несколько ответов из разных источников

Слайд 21

Вызов / Call

Вызов / Call

Слайд 22

Периодические задачи Periodical, cron

Периодически вызываемые функции с timeout-ом и устойчивые к ошибкам
Расписание может

Периодические задачи Periodical, cron Периодически вызываемые функции с timeout-ом и устойчивые к
задаваться через интервал, и по расписанию в формате cron
Основан на отложеных вызовах asyncio

Слайд 23

Периодические задачи Periodic & cron

Периодические задачи Periodic & cron

Слайд 24

Зависимые функции / Hook

Пред-, пост- обработчики, обработчики ошибок
Запускаются на запуск / остановку

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

Слайд 25

Зависимые функции / Hook

Зависимые функции / Hook

Слайд 26

Шина сигналов / SignalBus

Шина сигналов / SignalBus

Слайд 27

Брокер очередей / QueueBroker

Брокер очередей / QueueBroker

Слайд 28

Экосистема микроагентов

Микроагент упрощает интеграцию предоставляя готовый набор интерфейсов
Обмен данными создает зависимости, но

Экосистема микроагентов Микроагент упрощает интеграцию предоставляя готовый набор интерфейсов Обмен данными создает
должен быть одностороннем, лучше асинхронным и через посредника
Общие хранилища — часть экосистемы, они не являются антипаттерном, но требуют аккуратного обращения
Периодические функции позволяют передавать инициативу (поток) управления микроагентам

Слайд 30

Источники

Бёрнс Б. Распределенные системы. Паттерны проектирования. — СПб.: Питер, 2019. — 224

Источники Бёрнс Б. Распределенные системы. Паттерны проектирования. — СПб.: Питер, 2019. —
с.: ил. — (Серия «Бестселлеры O’Reilly»).
Ньюмен С. Создание микросервисов. — СПб.: Питер, 2016. — 304 с.: ил. — (Серия «Бестселлеры O’Reilly»).
Манифест Реактивных Систем — 16 сентября 2014 —https://www.reactivemanifesto.org/ru
Noonan A., Goodbye Microservices: From 100s of problem children to 1 superstar, 10 июля 2018 — https://segment.com/blog/goodbye-microservices/
Иванов Д., Реактивные микросервисы с Apache Kafka, HighLoad++ 2017 — https://www.youtube.com/watch?v=rCOKmZ8VqCU
Иванов Д., Строим распредёленное реактивное приложение и решаем задачи согласованности — 8 февраля 2018 — https://habr.com/ru/company/2gis/blog/348510/
Столяров Д., Микросервисы: размер имеет значение, даже если у вас Kubernetes — 12 октября 2018 — https://habr.com/ru/company/flant/blog/424531/
Волошин М. Микросервисы на практике — 31 августа 2015 — https://www.youtube.com/watch?v=QmGe8Zpm6uk
Орлов С. Микросервисная Архитектура: проблемы и решения — 5 июня 2017 — https://www.youtube.com/watch?v=GIslwdE2DWY
Имя файла: От-микросервисов-к-микроагентам.pptx
Количество просмотров: 35
Количество скачиваний: 0