SlideShare a Scribd company logo
Introduction to
Microservices Architecture
Yury KIsliak
ykisliak@eisgroup.com
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Vocabulary
Software architecture
Vocabulary
Software architecture
● Components, modules and how they
interact with each other.
Vocabulary
● Layers
● Components
● Modules
Vocabulary
● Layers
● Components
● Modules
Vocabulary
● Layers
● Components
● Modules
Vocabulary
● Layers
● Components
● Modules
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Kinds of architecture
● Big ball of mud (BBoM)
Kinds of architecture
● Service-oriented
architecture (SOA)
Kinds of architecture
● Service-oriented
architecture (SOA)
Kinds of architecture
● Service-oriented
architecture (SOA)
Kinds of architecture
● Service-oriented
architecture (SOA)
○ Monolithic
Kinds of architecture
● Service-oriented
architecture (SOA)
○ Monolithic
○ Microservices
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Microservices characteristics
● Small
● Independent
● Is built to solve a particular problem domain problem (Bounded Context)
● Interacts with other microservices via network
● Designed for failure
● Development and maintenance require automation
Microservices characteristics
● Small
○ Context (not only business, but development as well) can fit in one person's brain
● Independent
○ Contains within it all necessary means to solve a problem (highly cohesive within,
loosely coupled to other microservices)
Microservices characteristics
● Is built to solve a particular problem domain problem (Bounded Context)
Microservices characteristics
● Interacts with other microservices via network
○ Synchronously or asynchronously
○ Via direct calls or using message-based communications
Microservices characteristics
● Designed for failure
○ Other services failure or unavailability is considered as a basic scenario during design
and development and testing (see Chaos monkey)
Microservices characteristics
● Development and maintenance require automation
○ Continuous integration and delivery
○ Often requires a dedicated person or a team (DevOps)
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Comparison: advantages
Monolith Microservices
Easy to:
- Deploy
- Develop (until certain point)
- Understand and debug (provided
good architecture)
- Do cross module refactoring
Modularity
- Easy and fast changes within
microservice
- Can be developed, tested , released
and delivered independently
- Scalability
Date consistency
- ACID transaction
Availability
- Partial failures tolerance
Development speed (until certain point) Technology Choice
Comparison: disadvantages
* Shopify powers 600K merchants and serves 80K requests per second at peak using monolithic architecture
Link.
Monolith Microservices
Scalability is problematic *
Complicated infrastructure components for
- CI
- Monitoring
Degrade with time:
- Huge code base slows down
development (hard to comprehend,
long to compile and run)
- Technical debt can grow
uncontrollably
Need to care a lot about data consistency:
- Message buses
- Complicated patterns lie
Saga, CQRS and Event Sourcing
What should you use?
World leading companies use microservices or actively migrating to microservices.
What should you use?
Some Melanesian tribes do manufacture airplanes.
https://en.wikipedia.org/wiki/Cargo_cult
What should you use?
Monolith Microservices
New unknown domain You have a lot of experience and a couple
of messed up projects behind
Prototypes, PoC Ready to invest in infrastructure and
automation
Create and forget Linear scalability is a must
What should you use?
It does not usually necessary to start a project from scratch using microservices.
Microservices is a good way for evolution of applications, which reached limitations of monolithic
architecture. In that case a monolith could be teared apart into microservices gradually: piece by
piece, modules by modules... Or entirely rewritten, if you are bold enough.
When you make a decision to use microservices, you should understand which problems it will
solve and introduce for you. Don’t hope that if you will start doing microservices, then you will
have some benefits just because microservices are cool.
https://www.google.by/search?q=microservices+hell
До микросервисов нужно дорасти, а не начинать с них. (https://habr.com/post/427215/ )
Смерть микросервисного безумия в 2018 году (https://habr.com/company/flant/blog/347518/ )
Микросервисы: пожалуйста, не нужно (https://habr.com/post/311208/ )
Прощайте, микросервисы: от ста проблемных детей до одной суперзвезды (https://habr.com/post/416819/ )
What should you use?
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Problem: Clients need to call
multiple services to do the to the task.
Pattern: API gateway
Problem: Clients need to call
multiple services to do the to the task.
Pattern: API gateway
Problem: Clients need to know
where required services is located.
Pattern: Service Discovery
Service Discovery: client-sede
Service Discovery: server-side
Service Discovery: self-registration
Service Discovery: registrar
Agenda
● Vocabulary
● Kinds of architecture
● Microservices architecture
● Microservices vs monolith
● Design patterns for microservices architecture
● Further reading
Further reading
Articles:
Microservices (Martin Fowler)
link
Books:
Building Microservices (Sam Newman, 2016)
link
Domain-Driven Design: Tackling Complexity in the Heart of Software (J. Evans, 2003)
link
Enterprise Integration Patterns (Gregor Hohpe, 2003)
link
Microservices Patterns (Chris Richardson, 2018) + blog microservices.io
link
Thank you!
Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be
called an engineering discipline
- Bill Clinton

More Related Content

What's hot

Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
Kasun Indrasiri
 
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Somasundram Balakrushnan
 
building microservices
building microservicesbuilding microservices
building microservices
Cisco DevNet
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
Lalit Kale
 
Introduction to Microservices
Introduction  to MicroservicesIntroduction  to Microservices
Introduction to Microservices
Duduman Bogdan Vlad
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverless
Lalit Kale
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
tyrantbrian
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Slim Ouertani
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practices
Chris Haddad
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
From SOA to MSA
From SOA to MSAFrom SOA to MSA
From SOA to MSA
William Yang
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
Christian Posta
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
Jenis Dharmadurai
 
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Somasundram Balakrushnan
 
Building Microservices: Designing Fine-Grained System by Sam Newman
Building Microservices: Designing Fine-Grained System by Sam NewmanBuilding Microservices: Designing Fine-Grained System by Sam Newman
Building Microservices: Designing Fine-Grained System by Sam Newman
Ismail Habib Muhammad
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
Sanjoy Kumar Roy
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Mohammad Dameer
 
Introduction to microservices Jornada Microservices
Introduction to microservices Jornada MicroservicesIntroduction to microservices Jornada Microservices
Introduction to microservices Jornada Microservices
Roan Brasil Monteiro
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 

What's hot (20)

Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
 
building microservices
building microservicesbuilding microservices
building microservices
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Introduction to Microservices
Introduction  to MicroservicesIntroduction  to Microservices
Introduction to Microservices
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverless
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Merging microservices architecture with SOA practices
Merging microservices architecture with SOA practicesMerging microservices architecture with SOA practices
Merging microservices architecture with SOA practices
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
From SOA to MSA
From SOA to MSAFrom SOA to MSA
From SOA to MSA
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
 
Building Microservices: Designing Fine-Grained System by Sam Newman
Building Microservices: Designing Fine-Grained System by Sam NewmanBuilding Microservices: Designing Fine-Grained System by Sam Newman
Building Microservices: Designing Fine-Grained System by Sam Newman
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Introduction to microservices Jornada Microservices
Introduction to microservices Jornada MicroservicesIntroduction to microservices Jornada Microservices
Introduction to microservices Jornada Microservices
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 

Similar to Introduction to Microservices

Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
Microservices
MicroservicesMicroservices
Microservices
Anderson Carvalho
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
Mukesh Singh
 
Microservices
MicroservicesMicroservices
Microservices
NewsCred Dhaka
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
Lior Bar-On
 
Building microservices web application using scala & akka
Building microservices web application using scala & akkaBuilding microservices web application using scala & akka
Building microservices web application using scala & akka
Binh Nguyen
 
Monolith to microservices?
Monolith to microservices?Monolith to microservices?
Monolith to microservices?
Tomáš Jurásek
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?
Tech Triveni
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
Rodrigo Antonialli
 
Microserces Architecture
Microserces ArchitectureMicroserces Architecture
Microserces Architecture
Hadi Rasouli
 
Microservices: Detailed Guide
Microservices: Detailed GuideMicroservices: Detailed Guide
Microservices: Detailed Guide
Biztech Consulting & Solutions
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
Francesco Degrassi
 
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Alberto Salazar
 
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Alberto Salazar
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.it
Giuseppe Lavagetto
 
Microservices - Please, don't
Microservices - Please, don'tMicroservices - Please, don't
Microservices - Please, don't
Sean Kelly
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to React
Tomasz Bak
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2
 
The Modern Web with Microfrontends
The Modern Web with MicrofrontendsThe Modern Web with Microfrontends
The Modern Web with Microfrontends
Nikki Dingding
 

Similar to Introduction to Microservices (20)

Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Microservices
MicroservicesMicroservices
Microservices
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
 
Building microservices web application using scala & akka
Building microservices web application using scala & akkaBuilding microservices web application using scala & akka
Building microservices web application using scala & akka
 
Monolith to microservices?
Monolith to microservices?Monolith to microservices?
Monolith to microservices?
 
Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?Reactive - Is it really a Magic Pill?
Reactive - Is it really a Magic Pill?
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Microserces Architecture
Microserces ArchitectureMicroserces Architecture
Microserces Architecture
 
Microservices: Detailed Guide
Microservices: Detailed GuideMicroservices: Detailed Guide
Microservices: Detailed Guide
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
 
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
 
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.it
 
Microservices - Please, don't
Microservices - Please, don'tMicroservices - Please, don't
Microservices - Please, don't
 
How to migrate large project from Angular to React
How to migrate large project from Angular to ReactHow to migrate large project from Angular to React
How to migrate large project from Angular to React
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
The Modern Web with Microfrontends
The Modern Web with MicrofrontendsThe Modern Web with Microfrontends
The Modern Web with Microfrontends
 

Recently uploaded

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 

Recently uploaded (20)

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 

Introduction to Microservices

  • 1. Introduction to Microservices Architecture Yury KIsliak ykisliak@eisgroup.com
  • 2. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 3. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 5. Vocabulary Software architecture ● Components, modules and how they interact with each other.
  • 10. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 11. Kinds of architecture ● Big ball of mud (BBoM)
  • 12. Kinds of architecture ● Service-oriented architecture (SOA)
  • 13. Kinds of architecture ● Service-oriented architecture (SOA)
  • 14. Kinds of architecture ● Service-oriented architecture (SOA)
  • 15. Kinds of architecture ● Service-oriented architecture (SOA) ○ Monolithic
  • 16. Kinds of architecture ● Service-oriented architecture (SOA) ○ Monolithic ○ Microservices
  • 17. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 18. Microservices characteristics ● Small ● Independent ● Is built to solve a particular problem domain problem (Bounded Context) ● Interacts with other microservices via network ● Designed for failure ● Development and maintenance require automation
  • 19. Microservices characteristics ● Small ○ Context (not only business, but development as well) can fit in one person's brain ● Independent ○ Contains within it all necessary means to solve a problem (highly cohesive within, loosely coupled to other microservices)
  • 20. Microservices characteristics ● Is built to solve a particular problem domain problem (Bounded Context)
  • 21. Microservices characteristics ● Interacts with other microservices via network ○ Synchronously or asynchronously ○ Via direct calls or using message-based communications
  • 22. Microservices characteristics ● Designed for failure ○ Other services failure or unavailability is considered as a basic scenario during design and development and testing (see Chaos monkey)
  • 23. Microservices characteristics ● Development and maintenance require automation ○ Continuous integration and delivery ○ Often requires a dedicated person or a team (DevOps)
  • 24. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 25. Comparison: advantages Monolith Microservices Easy to: - Deploy - Develop (until certain point) - Understand and debug (provided good architecture) - Do cross module refactoring Modularity - Easy and fast changes within microservice - Can be developed, tested , released and delivered independently - Scalability Date consistency - ACID transaction Availability - Partial failures tolerance Development speed (until certain point) Technology Choice
  • 26. Comparison: disadvantages * Shopify powers 600K merchants and serves 80K requests per second at peak using monolithic architecture Link. Monolith Microservices Scalability is problematic * Complicated infrastructure components for - CI - Monitoring Degrade with time: - Huge code base slows down development (hard to comprehend, long to compile and run) - Technical debt can grow uncontrollably Need to care a lot about data consistency: - Message buses - Complicated patterns lie Saga, CQRS and Event Sourcing
  • 27. What should you use? World leading companies use microservices or actively migrating to microservices.
  • 28. What should you use? Some Melanesian tribes do manufacture airplanes. https://en.wikipedia.org/wiki/Cargo_cult
  • 29. What should you use? Monolith Microservices New unknown domain You have a lot of experience and a couple of messed up projects behind Prototypes, PoC Ready to invest in infrastructure and automation Create and forget Linear scalability is a must
  • 30. What should you use? It does not usually necessary to start a project from scratch using microservices. Microservices is a good way for evolution of applications, which reached limitations of monolithic architecture. In that case a monolith could be teared apart into microservices gradually: piece by piece, modules by modules... Or entirely rewritten, if you are bold enough. When you make a decision to use microservices, you should understand which problems it will solve and introduce for you. Don’t hope that if you will start doing microservices, then you will have some benefits just because microservices are cool. https://www.google.by/search?q=microservices+hell До микросервисов нужно дорасти, а не начинать с них. (https://habr.com/post/427215/ ) Смерть микросервисного безумия в 2018 году (https://habr.com/company/flant/blog/347518/ ) Микросервисы: пожалуйста, не нужно (https://habr.com/post/311208/ ) Прощайте, микросервисы: от ста проблемных детей до одной суперзвезды (https://habr.com/post/416819/ )
  • 32. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 33. Problem: Clients need to call multiple services to do the to the task. Pattern: API gateway
  • 34. Problem: Clients need to call multiple services to do the to the task. Pattern: API gateway
  • 35. Problem: Clients need to know where required services is located. Pattern: Service Discovery
  • 40. Agenda ● Vocabulary ● Kinds of architecture ● Microservices architecture ● Microservices vs monolith ● Design patterns for microservices architecture ● Further reading
  • 41. Further reading Articles: Microservices (Martin Fowler) link Books: Building Microservices (Sam Newman, 2016) link Domain-Driven Design: Tackling Complexity in the Heart of Software (J. Evans, 2003) link Enterprise Integration Patterns (Gregor Hohpe, 2003) link Microservices Patterns (Chris Richardson, 2018) + blog microservices.io link
  • 42. Thank you! Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be called an engineering discipline - Bill Clinton