какие бывают типы микросервисных архитектур (распределенный монолит, слои микросервисов, feature-based микросервисы) и как именно микросервисы взаимодействуют друг с другом в рамках того или иного типа.
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
Мы возобновляем после перерыва митапы Software Craftsmanship, и наш пятнадцатый митап будет посвящен надежности и устойчивости систем. Мы разберем stability, reliability, fault-tolerance, availability, resilience, узнаем как они связаны друг с другом и как можно их измерять, а также как разрабатывать устойчивые и надежные программы.
Также мы сформулируем принципы создания надежных систем, паттерны и антипаттерны надежности и устойчивости, отдельное внимание уделим устойчивости микросервисов в облаке.
План митапа:
Stability, reliability, fault-tolerance, availability, resilience, их связь и отличия
Архитектура и шаблоны availability
Шаблоны resilience
Техники fault tolerance
Устойчивости и надежность в облаке
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
Каждый развивающий бизнес на определенном этапе своего жизненного цикла сталкивается с задачей масштабирования. Для монолитного приложения эта задача может оказаться сложнее, чем написать с нуля масштабируемую систему - потому что нужно учитывать миграцию данных и пользователей, а также недостаточные ресурсы.
Мы попытаемся понять, в каких случаях монолит распиливать стоит, а когда можно применить более простые подходы. Рассмотрим преимущества и недостатки монолитной архитектуры и микросервисной. Разберем несколько стратегий распиливания монолита, а также аспекты, которые необходимо учесть во время этого процесса.
На десятом митапе Software Craftsmanship мы рассмотрим такую сложную тему, как распределенные транзакции. Мы увидим, почему возникает необходимость в распределенных транзакциях и какие бывают протоколы для реализации распределенных транзакций.
Микросервисная архитектура часто влечет за собой распределенные транзакции, и поэтому мы поговорим о том, как можно делать отдельные микросервисы максимально независимыми между собой.
Распределенные транзакции сложны эксплуатации, поэтому мы рассмотрим также и подходы, которые позволяют минимизировать или обойти необходимость в них, в то же время сохраняя необходимые бизнесу свойства приложения.
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
Сегодня много дискуссий о том, что лучше - MySQL или PostgreSQL? Однако перед тем, как выбирать именно реляционную базу данных для своего проекта, стоит понять, является ли реляционная база данных наилучшим решением для него.
В рамках этого доклада мы сравним наиболее популярную реляционную базу данных с открытым кодом с наиболее популярным хранилищем документов с открытым кодом. Мы определим, в каких случаях эффективнее всего работает MySQL, а в каких - MongoDB. Мы также рассмотрим ситуации, в которых ни одна из этих баз данных не будет лучшим решением и в которых целесообразно остановить свой выбор на других технологиях.
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
Мы возобновляем после перерыва митапы Software Craftsmanship, и наш пятнадцатый митап будет посвящен надежности и устойчивости систем. Мы разберем stability, reliability, fault-tolerance, availability, resilience, узнаем как они связаны друг с другом и как можно их измерять, а также как разрабатывать устойчивые и надежные программы.
Также мы сформулируем принципы создания надежных систем, паттерны и антипаттерны надежности и устойчивости, отдельное внимание уделим устойчивости микросервисов в облаке.
План митапа:
Stability, reliability, fault-tolerance, availability, resilience, их связь и отличия
Архитектура и шаблоны availability
Шаблоны resilience
Техники fault tolerance
Устойчивости и надежность в облаке
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
Каждый развивающий бизнес на определенном этапе своего жизненного цикла сталкивается с задачей масштабирования. Для монолитного приложения эта задача может оказаться сложнее, чем написать с нуля масштабируемую систему - потому что нужно учитывать миграцию данных и пользователей, а также недостаточные ресурсы.
Мы попытаемся понять, в каких случаях монолит распиливать стоит, а когда можно применить более простые подходы. Рассмотрим преимущества и недостатки монолитной архитектуры и микросервисной. Разберем несколько стратегий распиливания монолита, а также аспекты, которые необходимо учесть во время этого процесса.
На десятом митапе Software Craftsmanship мы рассмотрим такую сложную тему, как распределенные транзакции. Мы увидим, почему возникает необходимость в распределенных транзакциях и какие бывают протоколы для реализации распределенных транзакций.
Микросервисная архитектура часто влечет за собой распределенные транзакции, и поэтому мы поговорим о том, как можно делать отдельные микросервисы максимально независимыми между собой.
Распределенные транзакции сложны эксплуатации, поэтому мы рассмотрим также и подходы, которые позволяют минимизировать или обойти необходимость в них, в то же время сохраняя необходимые бизнесу свойства приложения.
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
Сегодня много дискуссий о том, что лучше - MySQL или PostgreSQL? Однако перед тем, как выбирать именно реляционную базу данных для своего проекта, стоит понять, является ли реляционная база данных наилучшим решением для него.
В рамках этого доклада мы сравним наиболее популярную реляционную базу данных с открытым кодом с наиболее популярным хранилищем документов с открытым кодом. Мы определим, в каких случаях эффективнее всего работает MySQL, а в каких - MongoDB. Мы также рассмотрим ситуации, в которых ни одна из этих баз данных не будет лучшим решением и в которых целесообразно остановить свой выбор на других технологиях.
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
Мы рассмотрим важные особенности построения архитектуры распреденных кластеров NoSQL с использованием ресурсов Amazon Web Services, мы затронем такие аспекты как: архитектура гео распределенных кластеров, оптимизация производительности, выбор основных опций для деплоймента и ряд других аспектов. В докладе мы сконцентрируемся на таких популярных базах данных, как Cassandra, MongoDB и некоторых других.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
28.03.15. Одесса. Impact Hub Odessa. Конференция JSLab.
Тимур Шемсединов. "Архитектура программных систем на Node.js"
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование приватных кластеров на Node.js за пределы нескольких физических машин, концепция прикладной виртуальной машины, примеры ее реализации и внедрения, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
Подробнее:
http://geekslab.co/
https://www.facebook.com/GeeksLab.co
https://www.youtube.com/user/GeeksLabVideo
Software craftsmanship 16: online building ml pipelinePavel Veinik
16й митап Software Craftsmanship пройдет онлайн и будет посвящен построению ML pipeline с точки зрения инженера-разработчика.
В последние год-два все чаще появляются вакансии, в которых инженеру необходимо выстроить ML pipeline. Такие вакансии получают название ML Ops.
В ML pipeline входят такие вещи, как построение моделей, хранение, сравнение качества моделей, поддержание версионность моделей, работа с feature storage, и само собой разумеется, применение модели в prod.
Модель обычно оформляется как микросервис, который можно просто разворачивать, масштабировать и поддерживать.
При этом, как правило, другими членами команды оказываются data scientists или ML engineers, которые сильны в своих областях, но не могут сделать простой масштабируемый REST API для своей модели. В рамках совместной работы с ними и приходится реализовывать ML pipeline.
На митапе мы коснемся того, для чего необходим ML pipeline, из каких шагов он состоит, и каким образом организована работа инженера в ML команде.
The presentation deals with the practical examples of the optimization levels in the context of the C++ language features and dwell upon the data-oriented design evaluation methods.
The presentation materials were co-authored with Oleksandr Markov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) and was delivered by Oleksandr Antsyferov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) at GlobalLogic Kharkiv C++ TechTalk #1 on May 16, 2018.
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
Про качество и красоту кода говорят и пишут очень многие, хотя при этом довольно часто забывают, для чего существует это качество и эта красота.
Двадцать второй онлайн митап Software Craftsmanship будет посвящен Engineering Excellence. мы рассмотрим что такое Engineering Excellence, кому и для чего оно нужно на проекте, из каких частей состоит и как определить что нужно конкретному проекту.
На митапе мы рассмотрим взаимосвязь разработчиков, тестировщиков, девопсов, разберем метрики, практики и процессы необходимы для постоянного улучшения проекта.
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
Мы рассмотрим что такое CQRS, какие проблемы он может решить и какие проблемы создать, а также сопутствующие подходы и приемы, такие как event sourcing, предагрегация данных для чтения, использование in memory баз данных. Также разберем ситуации, в которых выгодно использовать CQRS, и назовем несколько систем, в которых он используется.
Также разберем вопросы data consistency в CQRS-архитектурах, и другие возникающие проблемы.
More Related Content
Similar to Software craftsmanship 17: Microservices interaction
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"IT Event
Мы рассмотрим важные особенности построения архитектуры распреденных кластеров NoSQL с использованием ресурсов Amazon Web Services, мы затронем такие аспекты как: архитектура гео распределенных кластеров, оптимизация производительности, выбор основных опций для деплоймента и ряд других аспектов. В докладе мы сконцентрируемся на таких популярных базах данных, как Cassandra, MongoDB и некоторых других.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
28.03.15. Одесса. Impact Hub Odessa. Конференция JSLab.
Тимур Шемсединов. "Архитектура программных систем на Node.js"
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование приватных кластеров на Node.js за пределы нескольких физических машин, концепция прикладной виртуальной машины, примеры ее реализации и внедрения, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
Подробнее:
http://geekslab.co/
https://www.facebook.com/GeeksLab.co
https://www.youtube.com/user/GeeksLabVideo
Software craftsmanship 16: online building ml pipelinePavel Veinik
16й митап Software Craftsmanship пройдет онлайн и будет посвящен построению ML pipeline с точки зрения инженера-разработчика.
В последние год-два все чаще появляются вакансии, в которых инженеру необходимо выстроить ML pipeline. Такие вакансии получают название ML Ops.
В ML pipeline входят такие вещи, как построение моделей, хранение, сравнение качества моделей, поддержание версионность моделей, работа с feature storage, и само собой разумеется, применение модели в prod.
Модель обычно оформляется как микросервис, который можно просто разворачивать, масштабировать и поддерживать.
При этом, как правило, другими членами команды оказываются data scientists или ML engineers, которые сильны в своих областях, но не могут сделать простой масштабируемый REST API для своей модели. В рамках совместной работы с ними и приходится реализовывать ML pipeline.
На митапе мы коснемся того, для чего необходим ML pipeline, из каких шагов он состоит, и каким образом организована работа инженера в ML команде.
The presentation deals with the practical examples of the optimization levels in the context of the C++ language features and dwell upon the data-oriented design evaluation methods.
The presentation materials were co-authored with Oleksandr Markov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) and was delivered by Oleksandr Antsyferov (Senior Software Engineer, Consultant, GlobalLogic, Kharkiv) at GlobalLogic Kharkiv C++ TechTalk #1 on May 16, 2018.
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
Similar to Software craftsmanship 17: Microservices interaction (20)
Про качество и красоту кода говорят и пишут очень многие, хотя при этом довольно часто забывают, для чего существует это качество и эта красота.
Двадцать второй онлайн митап Software Craftsmanship будет посвящен Engineering Excellence. мы рассмотрим что такое Engineering Excellence, кому и для чего оно нужно на проекте, из каких частей состоит и как определить что нужно конкретному проекту.
На митапе мы рассмотрим взаимосвязь разработчиков, тестировщиков, девопсов, разберем метрики, практики и процессы необходимы для постоянного улучшения проекта.
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
Мы рассмотрим что такое CQRS, какие проблемы он может решить и какие проблемы создать, а также сопутствующие подходы и приемы, такие как event sourcing, предагрегация данных для чтения, использование in memory баз данных. Также разберем ситуации, в которых выгодно использовать CQRS, и назовем несколько систем, в которых он используется.
Также разберем вопросы data consistency в CQRS-архитектурах, и другие возникающие проблемы.
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Pavel Veinik
Рассмотрим обеспечение транзакционности в микросервисах, от “транзакционной” отправки сообщений до “транзакционного” обновления данных в нескольких микросервисах. Рассмотрим и соответствующие типовые решения - шаблон Transactional outbox, двухфазные транзакции, а также шаблон Saga вместе с компенсирующими транзакциями.
СИ — это способ построить успешную систему и объединить всех людей на проекте в одно целое для продуктивного решения задачи любой сложности. Это неотъемлемая часть грамотного руководства проектом, именно поэтому по статистике зарплаты системных инженеров самые высокие в любой отрасли и IT не является исключением.
Двенадцатый митап Software Craftsmanship пройдет онлайн и будет посвящен высоконагруженным системам. Мы систематизирует инструменты, применяемые для разработки архитектуры высоконагруженных приложений, опишем базовый алгоритм из 6 шагов проектирования нагруженной системы.
Также мы рассмотрим 3 примера нагруженных приложений - клиент для участия в Real Time Bidding аукционах, поисковик вместе с краулером для него, чат.
Мы коснемся опасностей, которые подстерегают новичков и опытных архитекторов.
Кроме того, рассмотрим подходы к построению высоконагруженных систем в стартапе и в сервисной компании.
Software craftsmanship 11 online: мотивация и эффектисность разработчикаPavel Veinik
Мы рассмотрим вопросы продуктивности, как командная работа и менеджеры влияют на продуктивность, как связаны оценки и эффективность решений разработчика, почему работа программиста является творческой, и как грамотно использовать инструменты тайм-менеджмента.
Software craftsmanship фиксит проблемы AgilePavel Veinik
На 6м митапе мы подойдем к проблеме говна со стороны команды и процессов, а не со стороны технологий и архитектуры, и рассмотрим поближе, чем и как нам могут помочь принципы Software Craftsmanship. Мы увидим, что суть всех процессов - это коммуникации, а суть коммуникации - это настроенные каналы передачи информации. Мы рассмотрим, как настраивать эти каналы передачи информации, и увидим, что процессы - это отношения между людьми, прописанные на бумаге.
Программирование и лингвистика: как понять язык и извлечь знания из текстовPavel Veinik
Knowledge extraction с помощью open source java технологий - что это такое, как, и для чего? На примере реального проекта докладчик расскажет о том, как создать систему извлечения знаний и как с ее помощью получать полный и минимальный обзор событий в интересующих областях.
Человеческий фактор в разработке, или ORM на noSql через JPA.Pavel Veinik
Зачем переводить работающий проект с RDBMS на noSql? Как это сделать, и как это нельзя делать? Что важнее для успеха пректа - технологическое преимущество или доверительные отношения в команде? Какова роль процесса в успехе проекта и что бывает, когда каждый член команды действует в соответствии со своими локальными интересами.
4. Мы снова online
●Зарегистрировались 207
человека
●Наш 17-й митап online
●При поддержке Sam Solutions
●Информационные партнеры
dev.by, tproger.ru
4
5. О митапах
● Часть проекта Hard & Soft Skills
● Поделиться и пообщаться
● Подобрать материал для курсов:
○ Технический лидер
○ От middle developer к senior
engineer, SDET, teamlead...
5
6. План митапов
16. ML Operations for engineers
17. Взаимодействие
микросервисов
17. Kafka как идеально
горизонтально масштабируемая
система
18. hardsoftskills.by/next_meetups
6
7. Сегодня не будет
Рассказа что такое
микросервисы и для чего
Критики микросервисной
архитектуры и подходов
CI/CD для микросервисов,
разбиения на сервисы
7
8. Цель этого митапа
Рассмотреть подходы к
построению взаимодействия
между микросервисами.
Шаблоны, транзакции,
целостность данных...
8
9. План этого митапа
1.Типы мс архитектур
2.Взаимодействие между мс
3.Сага и другие шаблоны
4.Event sourcing, CQRS
5.Команда и мс
6.Вопросы при регистрации
9
11. Распределенный монолит
● возникает как только вы
начинаете пилить ваш
существующий монолит
● сильная зависимость между
разными сервисами
11
12. Распределенный монолит
Все проблемы монолита:
● изменения расползаются по
сервисам
● сложно масштабировать
● во всех мс много общего кода
и понятий
12
17. Feature-based ms
Каждой фиче по микросервису.
Еще более независимые
сервисы чем при слоях.
Без централизованной
архитектуры скатывается в
монолит.
17
20. Domain-based ms
Требуют формальной и более
продуманной работы при
разделении.
Все равно требуют общего кода
и общих данных, но в меньшей
степени чем распр. монолит
20
21. Stateless vs stateful ms
База нужна каждому
приложению, но state нужен не
каждому мс:
● persistent storage
● сессия
● кэши
21
29. Sync vs async
Оркестрация и хореография
могут быть синхронными и
асинхронными
● через HTTP, gRPC…
● через очередь сообщений
29
30. Оркестрация и wf engines
Слой domain API
CRUD + search + triggers
Слой business API
бизнес-процессы
вызовы domain API
30
31. Оркестрация и wf engines
● Сложная последовательность
вызовов domain API
● Может прерваться ошибкой или
неверным состоянием
● Нужно сохранять состояние
самой последовательности
● Много таких
последовательностей
31
32. Оркестрация и wf engines
Могут помочь wf движки:
● Декларативное описание
процесса (BPMN)
● Хранят состояние процесса
● Предоставляют мониторинг и
другие инструменты
● Подходят если много процессов
32
36. Message bus
● Зависимость только по формату
сообщений
● Удобно когда много сервисов
могут реагировать на триггер
● Требует общей
модели/формата данных
36
43. CQS vs CQRS
● Command-Query Separation
○ get-set
● Command-Query Responsibility
Segregation
○ архитектурный подход в
распределенных системах
○ иногда с event sourcing
43
46. Service per Team
● закон Конвея
○ архитектура повторяет
оргструктуру
● поэтому строить оргструктуру
так, чтобы она индуцировала
хорошую архитектуру
46
47. Контракты
● req-res: Владеет контрактом
запроса тот, кто предоставляет
“сервер”
○ параметры, заголовки, тело
○ валидации
○ формат ответа, HTTP коды
47
48. Контракты
● command (prod-cons, queue):
Владеет контрактом команды тот,
кто предоставляет сервис,
который ее выполняет
○ очередь команд (кому)
○ формат команды
48
49. Контракты
● event (pub-sub): Владеет
контрактом команды тот, кто
генерирует событие
○ тема (подписка) (кому)
○ формат события
49
55. Курс microservices foundations
● Основы
● Шаблоны и подходы
● Взаимодействие
● Мониторинг и ops
● 3 месяца по 2р в неделю
hardsoftskills.by/microservices
55