SlideShare a Scribd company logo
Microservices. Intro
Oleksandr Gavrisyuk, Pavlo Serdyuk
The Scale Cube
Marton Abbott & Michael Fisher
X-axis scaling
• Load balancer
• Many copies of same application
• OK with Monolithic approach
• OK together with Y-scaling for Microservices approach
• Disadvantages
• Same DB anyway (CAP theorem)
• Upgrades and releases are complex
• Inefficient with increasing development and application complexity
Z-axis scaling
• Scale by data
• Each server runs an identical app (as in X-scale)
• Each server is responsible for only a subset of the data (for example, region
– Europe, America, etc)
• Disadvantages - Increased application complexity.
• Partitioning scheme
• Search service consists of a number of partitions
• Query aggregator
• Doesn’t solve the problems of increasing development and application complexity.
Y-Axis Scaling
• Split by functionality
• Each service is responsible for one or more closely related functions.
• Different way of decomposition – DDD, verb/noun-based
decomposition
• Disadvantages
• Decomposition complexity
• Interactions complexity
Microservices
• Microservice architectural style is an approach to developing a single application as a suite of small services,
each running in its own process and communicating with lightweight mechanisms, often an HTTP resource
API.
• https://www.martinfowler.com/articles/microservices.html
Architecture sample
Scaling Microservices vs Monolitic
Scaling
• Один функціонал може бути більш запотребований ніж інший.
Мікросервіси оптимально вирішують проблему навантаження за
допомогою різної кількості екземплярів
• В монолітному ми маємо “Купити корову заради склянки молока”
Technology Heterogeneity
• Technology Heterogeneity
Resilience
• Якщо один завалиться, то інші працюватимуть (на відміну від
моноліта)
Фейл
моноліта
Фейл
мікросервісу
Фейли розподілених систем
• Інша проблема – фейл може лишитись непомітним
• Health/monitoring Check
Ease of Deployment
• Доставляти можна частинами
• Але монолітним деплойментом простіше керувати
• При монолітному підході робота зупиняється під час деплойменту
Інші переваги
• Organizational Alignment
• При розподіленій розробці кожна команда може відповідати за свої
сервісі – менші затрати ні інтеграцію
• Кожна команда може мати свої технології
• Composability
• Легше компонувати – можна легше перейти на іший клієнт (десктоп,
мобільний, веб)
• Optimizing for Replaceability
• Мікросервіси менше схильні переростати в Legacy code
Microservices pros and cons
• Independent, easy and frequent
deployment. Customers are
happy
• Scalability
• Independence in case of failure
• Independent and parallel
development
• *High testability
• *Independent technology
stacks
• Increased effort for operations,
deployment and monitoring.
• Increased configuration
management
• More complex development
• Unsafe distributed
communication.
• Transaction
• Performance
Concepts
• Small, and Focused on Doing One Thing Well
• Autonomous
Microservices communication patterns
Microservices communication
Message Bus/Event Bus/Event Stream
Other:
Kafka
MapR
Message bus
• Events are grouped into logical collections of events called Topics
• Topics are partitioned for parallel processing
• Kafka
• Unlike a queue, events are persisted, even after they are delivered they
remain on the partition, available to other consumers.
• Messages are not deleted from Topics when read, and topics can have
multiple different consumers, this allows processing of the same messages by
different consumers for different purposes.
• Older messages are automatically deleted based on the Stream’s time-to-live
setting
Orchestration Versus Choreography
• Orchestration
• Ми керуємо з одного центру (як
диригент), жостка синхронізація
• Choreography
• Кожна частина має більше самостійності
(як танцюристи), синхронізуються між
собою самі в разі потреби
Orchestration Versus Choreography
• Приклад. Додаємо нового користувача
• Створюється новий запис в БД
• Нараховуються бонуси за референство (loyalty )
• Висилаємо лист на електронну пошту
• Висилаємо інформаційний пакет
Pattern: Saga
• Each service has its own database.
• Some business transactions, however, span multiple service
• http://microservices.io/patterns/data/saga.html
• Example: You must ensure that a new order will not exceed the
customer’s credit limit
Choreography-based saga
Example: Orchestration-based saga
1.The Order Service creates an Order in
a pending state and creates a CreateOrderSaga
2.The CreateOrderSaga sends
a ReserveCredit command to the Customer
Service
3.The Customer Service attempts to reserve
credit for that Order and sends back a reply
4.The CreateOrderSaga receives the reply and
sends either
an ApproveOrder or RejectOrder command to
the Order Service
5.The Order Service changes the state of the
order to either approved or cancelled
Pattern: Event sourcing
• The event store also behaves like a message broker
• Event sourcing persists the state of a business entity such an Order or
a Customer as a sequence of state-changing events.
• Whenever the state of a business entity changes, a new event is
appended to the list of events.
• Applications persist events in an event store, which is a database of
events.
• The store has an API for adding and retrieving an entity’s events.
Pattern: Command Query Responsibility
Segregation (CQRS)
Split the application into two parts:
• command-side
• the query-side
[Knowledge Sharing] - Microservices Intro + Communication Patterns
[Knowledge Sharing] - Microservices Intro + Communication Patterns
[Knowledge Sharing] - Microservices Intro + Communication Patterns

More Related Content

Similar to [Knowledge Sharing] - Microservices Intro + Communication Patterns

Anna Podolynna, BAQ "How not to loose a QA focus and organize testing proces...
Anna Podolynna, BAQ  "How not to loose a QA focus and organize testing proces...Anna Podolynna, BAQ  "How not to loose a QA focus and organize testing proces...
Anna Podolynna, BAQ "How not to loose a QA focus and organize testing proces...
Dakiry
 
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy..."Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
Fwdays
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
GlobalLogic Ukraine
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
Pavlo Iuriichuk
 
"Instant loading: Improving your website speed", Yozhef Hisem
"Instant loading: Improving your website speed",  Yozhef Hisem"Instant loading: Improving your website speed",  Yozhef Hisem
"Instant loading: Improving your website speed", Yozhef Hisem
Fwdays
 
Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)
Anatoliy Okhotnikov
 
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxБізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
RostyslavDmytruk
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
Drupaltour
 
Ember.js. Init...
Ember.js. Init...Ember.js. Init...
Ember.js. Init...
Stfalcon Meetups
 
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
QADay
 
Управленческий рай, решение задач бизнеса
Управленческий рай, решение задач бизнесаУправленческий рай, решение задач бизнеса
Управленческий рай, решение задач бизнеса
Dmitriy Kofanov
 
Microsoft Azure для розробників та стартапів
Microsoft Azure для розробників та стартапівMicrosoft Azure для розробників та стартапів
Microsoft Azure для розробників та стартапів
Kyrylo Bezpalyi
 
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
Dakiry
 
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
QADay
 
Real Time Transactions Ukr Final
Real Time Transactions Ukr FinalReal Time Transactions Ukr Final
Real Time Transactions Ukr Final
cynetvvd
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
QADay
 
Хмарні сервіси в обліку
Хмарні сервіси в облікуХмарні сервіси в обліку
Хмарні сервіси в обліку
Hanna Filatova
 
Lec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних системLec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних систем
cit-cit
 
Db design (ukr)
Db design (ukr)Db design (ukr)
Db design (ukr)
Anatoliy Okhotnikov
 

Similar to [Knowledge Sharing] - Microservices Intro + Communication Patterns (20)

Anna Podolynna, BAQ "How not to loose a QA focus and organize testing proces...
Anna Podolynna, BAQ  "How not to loose a QA focus and organize testing proces...Anna Podolynna, BAQ  "How not to loose a QA focus and organize testing proces...
Anna Podolynna, BAQ "How not to loose a QA focus and organize testing proces...
 
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy..."Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
"Next gen cloud-native platforms: showcase from TemaBit, Fozzy Group", Sergiy...
 
cpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basicscpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basics
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
 
"Instant loading: Improving your website speed", Yozhef Hisem
"Instant loading: Improving your website speed",  Yozhef Hisem"Instant loading: Improving your website speed",  Yozhef Hisem
"Instant loading: Improving your website speed", Yozhef Hisem
 
Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)Agile Feedback Loops (ukr)
Agile Feedback Loops (ukr)
 
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptxБізнес_процеси_М7_Інструменти_опису_БП.pptx
Бізнес_процеси_М7_Інструменти_опису_БП.pptx
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
 
Ember.js. Init...
Ember.js. Init...Ember.js. Init...
Ember.js. Init...
 
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
 
Управленческий рай, решение задач бизнеса
Управленческий рай, решение задач бизнесаУправленческий рай, решение задач бизнеса
Управленческий рай, решение задач бизнеса
 
Microsoft Azure для розробників та стартапів
Microsoft Azure для розробників та стартапівMicrosoft Azure для розробників та стартапів
Microsoft Azure для розробників та стартапів
 
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
Євгеній Пасєка, Володимир Ревак “Як протестувати медичний проект і не зашкоди...
 
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
Maryna Minak-Suprunenko "In the rhythm of Agile on the path of ISTQB"
 
Real Time Transactions Ukr Final
Real Time Transactions Ukr FinalReal Time Transactions Ukr Final
Real Time Transactions Ukr Final
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
 
Хмарні сервіси в обліку
Хмарні сервіси в облікуХмарні сервіси в обліку
Хмарні сервіси в обліку
 
Lec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних системLec15 архiтектура та проектування компонентних систем
Lec15 архiтектура та проектування компонентних систем
 
Db design (ukr)
Db design (ukr)Db design (ukr)
Db design (ukr)
 

Recently uploaded

Наказ про зарахування 1 класу 2024 2025.pdf
Наказ про зарахування 1 класу 2024 2025.pdfНаказ про зарахування 1 класу 2024 2025.pdf
Наказ про зарахування 1 класу 2024 2025.pdf
Ostap Vuschna
 
Основи_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdfОснови_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdf
olaola5673
 
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptxzvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
sadochok
 
педрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptxпедрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptx
home
 
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учнюР.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Adriana Himinets
 
Оригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учнюОригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учню
Adriana Himinets
 
Р.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". ПрезентаціяР.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". Презентація
Adriana Himinets
 
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
tetiana1958
 
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdfГлавлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
olaola5673
 
Практика студентів на складі одягу H&M у Польщі
Практика студентів на складі одягу H&M у ПольщіПрактика студентів на складі одягу H&M у Польщі
Практика студентів на складі одягу H&M у Польщі
tetiana1958
 
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Pervushina1983
 
"Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича""Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича"
Чернівецька обласна бібліотека для дітей
 
звіт 2023-2024 32024 32024 32024 32024 3.pptx
звіт 2023-2024 32024 32024 32024 32024 3.pptxзвіт 2023-2024 32024 32024 32024 32024 3.pptx
звіт 2023-2024 32024 32024 32024 32024 3.pptx
home
 
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptxПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
ssuserd1824d
 
Постанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdfПостанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdf
24tvua
 
Управлінські процеси закладу освіти.pptx
Управлінські процеси закладу освіти.pptxУправлінські процеси закладу освіти.pptx
Управлінські процеси закладу освіти.pptx
ssuserce4e97
 
Звіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.pptЗвіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.ppt
ssuserce4e97
 

Recently uploaded (17)

Наказ про зарахування 1 класу 2024 2025.pdf
Наказ про зарахування 1 класу 2024 2025.pdfНаказ про зарахування 1 класу 2024 2025.pdf
Наказ про зарахування 1 класу 2024 2025.pdf
 
Основи_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdfОснови_історичної_просвіти_—_для_перекладу.pdf
Основи_історичної_просвіти_—_для_перекладу.pdf
 
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptxzvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
zvit_kerivnuka_ZDO28_2023-2024_n.rik.pptx
 
педрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptxпедрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptx
 
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учнюР.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
 
Оригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учнюОригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учню
 
Р.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". ПрезентаціяР.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". Презентація
 
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
 
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdfГлавлит_2_0_Книжкова_цензура_в_Росії.pdf
Главлит_2_0_Книжкова_цензура_в_Росії.pdf
 
Практика студентів на складі одягу H&M у Польщі
Практика студентів на складі одягу H&M у ПольщіПрактика студентів на складі одягу H&M у Польщі
Практика студентів на складі одягу H&M у Польщі
 
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
 
"Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича""Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича"
 
звіт 2023-2024 32024 32024 32024 32024 3.pptx
звіт 2023-2024 32024 32024 32024 32024 3.pptxзвіт 2023-2024 32024 32024 32024 32024 3.pptx
звіт 2023-2024 32024 32024 32024 32024 3.pptx
 
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptxПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
ПРЕЗЕНТАЦІЯ ПРО СХОВИЩЕ захисна споруда.pptx
 
Постанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdfПостанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdf
 
Управлінські процеси закладу освіти.pptx
Управлінські процеси закладу освіти.pptxУправлінські процеси закладу освіти.pptx
Управлінські процеси закладу освіти.pptx
 
Звіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.pptЗвіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.ppt
 

[Knowledge Sharing] - Microservices Intro + Communication Patterns

  • 2. The Scale Cube Marton Abbott & Michael Fisher
  • 3. X-axis scaling • Load balancer • Many copies of same application • OK with Monolithic approach • OK together with Y-scaling for Microservices approach • Disadvantages • Same DB anyway (CAP theorem) • Upgrades and releases are complex • Inefficient with increasing development and application complexity
  • 4. Z-axis scaling • Scale by data • Each server runs an identical app (as in X-scale) • Each server is responsible for only a subset of the data (for example, region – Europe, America, etc) • Disadvantages - Increased application complexity. • Partitioning scheme • Search service consists of a number of partitions • Query aggregator • Doesn’t solve the problems of increasing development and application complexity.
  • 5. Y-Axis Scaling • Split by functionality • Each service is responsible for one or more closely related functions. • Different way of decomposition – DDD, verb/noun-based decomposition • Disadvantages • Decomposition complexity • Interactions complexity
  • 6. Microservices • Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. • https://www.martinfowler.com/articles/microservices.html
  • 9. Scaling • Один функціонал може бути більш запотребований ніж інший. Мікросервіси оптимально вирішують проблему навантаження за допомогою різної кількості екземплярів • В монолітному ми маємо “Купити корову заради склянки молока”
  • 11. Resilience • Якщо один завалиться, то інші працюватимуть (на відміну від моноліта) Фейл моноліта Фейл мікросервісу
  • 12. Фейли розподілених систем • Інша проблема – фейл може лишитись непомітним • Health/monitoring Check
  • 13. Ease of Deployment • Доставляти можна частинами • Але монолітним деплойментом простіше керувати • При монолітному підході робота зупиняється під час деплойменту
  • 14. Інші переваги • Organizational Alignment • При розподіленій розробці кожна команда може відповідати за свої сервісі – менші затрати ні інтеграцію • Кожна команда може мати свої технології • Composability • Легше компонувати – можна легше перейти на іший клієнт (десктоп, мобільний, веб) • Optimizing for Replaceability • Мікросервіси менше схильні переростати в Legacy code
  • 15. Microservices pros and cons • Independent, easy and frequent deployment. Customers are happy • Scalability • Independence in case of failure • Independent and parallel development • *High testability • *Independent technology stacks • Increased effort for operations, deployment and monitoring. • Increased configuration management • More complex development • Unsafe distributed communication. • Transaction • Performance
  • 16. Concepts • Small, and Focused on Doing One Thing Well • Autonomous
  • 21. Message bus • Events are grouped into logical collections of events called Topics • Topics are partitioned for parallel processing • Kafka • Unlike a queue, events are persisted, even after they are delivered they remain on the partition, available to other consumers. • Messages are not deleted from Topics when read, and topics can have multiple different consumers, this allows processing of the same messages by different consumers for different purposes. • Older messages are automatically deleted based on the Stream’s time-to-live setting
  • 22. Orchestration Versus Choreography • Orchestration • Ми керуємо з одного центру (як диригент), жостка синхронізація • Choreography • Кожна частина має більше самостійності (як танцюристи), синхронізуються між собою самі в разі потреби
  • 23. Orchestration Versus Choreography • Приклад. Додаємо нового користувача • Створюється новий запис в БД • Нараховуються бонуси за референство (loyalty ) • Висилаємо лист на електронну пошту • Висилаємо інформаційний пакет
  • 24. Pattern: Saga • Each service has its own database. • Some business transactions, however, span multiple service • http://microservices.io/patterns/data/saga.html • Example: You must ensure that a new order will not exceed the customer’s credit limit
  • 26. Example: Orchestration-based saga 1.The Order Service creates an Order in a pending state and creates a CreateOrderSaga 2.The CreateOrderSaga sends a ReserveCredit command to the Customer Service 3.The Customer Service attempts to reserve credit for that Order and sends back a reply 4.The CreateOrderSaga receives the reply and sends either an ApproveOrder or RejectOrder command to the Order Service 5.The Order Service changes the state of the order to either approved or cancelled
  • 27. Pattern: Event sourcing • The event store also behaves like a message broker • Event sourcing persists the state of a business entity such an Order or a Customer as a sequence of state-changing events. • Whenever the state of a business entity changes, a new event is appended to the list of events. • Applications persist events in an event store, which is a database of events. • The store has an API for adding and retrieving an entity’s events.
  • 28.
  • 29. Pattern: Command Query Responsibility Segregation (CQRS) Split the application into two parts: • command-side • the query-side

Editor's Notes

  1. x-axis horizontal duplication z-axis data partitioning (identical copy of code) y-axis functional decomposing of monolithic applications (Each service implements a set of related functionality such as order management, customer management etc.)