SlideShare a Scribd company logo
Microservices
Patterns & Practices
By : Meysam Javadi
SANAY
Objectives
• Introduction and Definitions
• Monolithic vs. Microservices
• Advantages
• Decomposition
• Data Management
• Communication
• Deployment
• Docker
Intro.
• “micro web services" was first used by Dr. Peter Rogers during a conference
on cloud computing in 2005
• Microservices used in different software architects events in 2011
• Adrian Cockcroft from Netflix called “fine grained SOA”
• Amazon, Netflix and Uber
Definition 1
• 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.These services are built around business capabilities and independently deployable by
fully automated deployment machinery.There is a bare minimum of centralized
management of these services, which may be written in different programming languages
and use different data storage technologies.
Definition 2
• The microservice architecture is an architectural style that structures an application
as a set of services
• Each microservice is:
• • highly maintainable and testable
• • loosely coupled
• • independently deployable
• • organized around business capabilities
• • owned by a small team
Chris Richardson
Monolithic vs Microservices
Monolithic architecture: -ilities decline over
time
• Size/Complexity
• Maintainability
• Testability
• Deploy ability
• Modularity
• Evolvability
Risk of
Disruption
Time
Advantages of Microservices
• Shrinking Big problems and Small teams
• Continuous Integration/Continuous delivery & Fast iteration
• Improved maintainability
• Better testability
• Fault & Performance isolation
• Technology independent
• Scalability
Decomposition
How to decompose an application into services?
• Business capability
• Stable architecture since the business
capabilities are relatively stable
• Development teams are cross-functional,
autonomous, and organized around
delivering business value rather than
technical features
• Services are cohesive and loosely coupled
Decomposition 2.
• Domain-Driven Design (DDD) subdomains
• How to identify the subdomains? Identifying
subdomains and hence services requires an
understanding of the business. Like business
capabilities, subdomains are identified by analyzing
the business and its organizational structure and
identifying the different areas of expertise.
Subdomains are best identified using an iterative
process. Good starting points for identifying
subdomains are:
• organization structure - different groups within an
organization might correspond to subdomains
• high-level domain model - subdomains often have a
key domain object
Decomposition 3.
• Service per team
• Enables each team to be autonomous
and work with minimal coordination with
other teams
• Enables the teams to be loosely coupled
• Achieves team autonomy and loose
coupling with the minimum number of
services
• Improves code quality due to long term
code ownership
Data management 1
Database per service
• Private-tables-per-service
• Schema-per-service
• Database-server-per-service
Data management 2
Shared Database
• One BIG Database!
• Problems?
Communication
• Point to Point
• Request/Response
• One direction Request
• Async Request/Response
• One to Many
• Pub/Sub
• Publish/ async Responses
Index Page
API Gateway
Variation: Backends for frontends
Deployment Requirements
• Services are written using a variety of languages, frameworks, and framework
versions
• Each service consists of multiple service instances for throughput and availability
• Building and deploying a service must be fast
• Service must be deployed and scaled independently
• Service instances need to be isolated
• Resources consumed by a service must be constrained
• Deployment must be cost-effective
Introduction to Docker
What Is Docker?
• Lightweight, Simplify building, shipping,
running apps
• Runs natively on Linux orWindows Server
• Standardized packaging for software and
dependencies
• Isolate apps from each other
• Share the same OS kernel
• Runs onWindows or Mac Development
machines
• Relies on "images" and "containers"
Some Docker vocabulary
Docker Image
The basis of a Docker container. Represents a full application
Docker Container
The standard unit in which the application service resides and executes
Docker Engine
Creates, ships and runs Docker containers deployable on a physical or
virtual, host locally, in a datacenter or cloud service provider
Registry Service (Docker Hub(Public) or Docker Trusted
Registry(Private))
Cloud or server based storage and distribution service for your images
The Role of Images and Containers
Docker Image
Example: Ubuntu with Node.js and
Application Code
Docker Container
Created by using an image. Runs
your application.
Docker Components
Docker Containers vs. Virtual Machines
A p p 1 A p p 2
Bins/Libs Bins/Libs
Guest O S Guest O S
Hypervisor
Host Operating System
A p p 1
Bins/Libs
A p p 2
Bins/Libs
Docker Engine
Host Operating System
Virtual Machines Docker Containers
Basic Docker Commands
$ docker image pull node:latest
$ docker image ls
$ docker container run –d –p 5000:5000 –-name node node:latest
$ docker container ps
$ docker container stop node(or <container id>)
$ docker container rm node (or <container id>)
$ docker image rmi (or <image id>)
$ docker build –t node:2.0 .
$ docker image push node:2.0
$ docker --help
Developers IT Operations
BUILD
Development Environments
SHIP
Create & Store Images
RUN
Deploy, Manage, Scale
Deployment Patterns
• Multiple service instances per host
• Service instance per host
• Service instance perVM
• Service instance per Container
• Serverless deployment
• Service deployment platform
Deployment Patterns
Multiple service instances per host
• Benefits
• Efficient resource utilization
• Fast deployment
• Drawbacks
• Poor/Terrible isolation
• Difficult to limit resource utilization
• Risk of dependency version conflicts
• Poor encapsulation of implementation technology
Deployment Patterns
Service perVM host
• Benefits
• Great isolation
• Great manageability
• VM encapsulates implementation technology
• Drawbacks
• Less efficient resource utilization
• Slow deployment
Deployment Patterns
Service per Container host
• Benefits
• Great isolation
• Great manageability
• Container encapsulates
• implementation technology
• Efficient resource utilization
• Fast deployment
• Drawbacks
• Immature infrastructure for deploying containers
A big problem
Microservices

More Related Content

PPTX
PDF
Adobe Experience Manager Core Components
PDF
Api Gateway
PPTX
Api gateway in microservices
PDF
What are Microservices | Microservices Architecture Training | Microservices ...
PPTX
Introduction to Microservices
PPTX
Monoliths and Microservices
PPTX
RESTful API - Best Practices
Adobe Experience Manager Core Components
Api Gateway
Api gateway in microservices
What are Microservices | Microservices Architecture Training | Microservices ...
Introduction to Microservices
Monoliths and Microservices
RESTful API - Best Practices

What's hot (20)

PDF
NestJS
PDF
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
PPTX
Springboot Microservices
PDF
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
PPTX
REST API Design & Development
PPTX
Microservices
PDF
Angular material
PPTX
4. 대용량 아키텍쳐 설계 패턴
PDF
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PPSX
Microservices, Containers, Kubernetes, Kafka, Kanban
PDF
What is REST API? REST API Concepts and Examples | Edureka
PPTX
What is an API?
PPTX
Architecture for the API-enterprise
PPTX
Dynatrace
PPTX
An Introduction To REST API
PDF
Microservices with Spring Boot Tutorial | Edureka
PDF
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
PPTX
Secure your app with keycloak
PDF
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
PDF
React Interview Questions and Answers | React Tutorial | React Redux Online T...
NestJS
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
Springboot Microservices
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
REST API Design & Development
Microservices
Angular material
4. 대용량 아키텍쳐 설계 패턴
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
Microservices, Containers, Kubernetes, Kafka, Kanban
What is REST API? REST API Concepts and Examples | Edureka
What is an API?
Architecture for the API-enterprise
Dynatrace
An Introduction To REST API
Microservices with Spring Boot Tutorial | Edureka
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
Secure your app with keycloak
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
React Interview Questions and Answers | React Tutorial | React Redux Online T...
Ad

Similar to Microservices (20)

PPTX
Microservices and docker
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PDF
Rami Sayar - Node microservices with Docker
PDF
Containers, microservices and serverless for realists
PDF
Reference architectures shows a microservices deployed to Kubernetes
PPTX
Docker - HieuHoang
PDF
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
PPTX
Microservices and Best Practices
PPTX
Container on azure
PPTX
The Microservices world in. NET Core and. NET framework
PDF
Getting Started with Docker - Nick Stinemates
PPTX
Docker & aPaaS: Enterprise Innovation and Trends for 2015
PDF
Docker, Cloud Foundry, Bosh & Bluemix
 
PDF
Newt global meetup microservices
PDF
Monolithic to Microservices Architecture
PDF
Microservices: How loose is loosely coupled?
PPTX
microservice architecture and docker
PDF
Rails Applications with Docker
PPTX
Business and IT agility through DevOps and microservice architecture powered ...
PPTX
Docker12 factor
Microservices and docker
ma-formation-en-Docker-jlklk,nknkjn.pptx
Rami Sayar - Node microservices with Docker
Containers, microservices and serverless for realists
Reference architectures shows a microservices deployed to Kubernetes
Docker - HieuHoang
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
Microservices and Best Practices
Container on azure
The Microservices world in. NET Core and. NET framework
Getting Started with Docker - Nick Stinemates
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker, Cloud Foundry, Bosh & Bluemix
 
Newt global meetup microservices
Monolithic to Microservices Architecture
Microservices: How loose is loosely coupled?
microservice architecture and docker
Rails Applications with Docker
Business and IT agility through DevOps and microservice architecture powered ...
Docker12 factor
Ad

Recently uploaded (20)

PPT
JAVA ppt tutorial basics to learn java programming
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Transform Your Business with a Software ERP System
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Complete React Javascript Course Syllabus.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administration Chapter 2
PDF
AI in Product Development-omnex systems
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administraation Chapter 3
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
JAVA ppt tutorial basics to learn java programming
How to Choose the Right IT Partner for Your Business in Malaysia
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Transform Your Business with a Software ERP System
ManageIQ - Sprint 268 Review - Slide Deck
Complete React Javascript Course Syllabus.pdf
Operating system designcfffgfgggggggvggggggggg
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
ISO 45001 Occupational Health and Safety Management System
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administration Chapter 2
AI in Product Development-omnex systems
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Online Work Permit System for Fast Permit Processing
Design an Analysis of Algorithms II-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administraation Chapter 3
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf

Microservices

  • 2. Objectives • Introduction and Definitions • Monolithic vs. Microservices • Advantages • Decomposition • Data Management • Communication • Deployment • Docker
  • 3. Intro. • “micro web services" was first used by Dr. Peter Rogers during a conference on cloud computing in 2005 • Microservices used in different software architects events in 2011 • Adrian Cockcroft from Netflix called “fine grained SOA” • Amazon, Netflix and Uber
  • 4. Definition 1 • 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.These services are built around business capabilities and independently deployable by fully automated deployment machinery.There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
  • 5. Definition 2 • The microservice architecture is an architectural style that structures an application as a set of services • Each microservice is: • • highly maintainable and testable • • loosely coupled • • independently deployable • • organized around business capabilities • • owned by a small team Chris Richardson
  • 7. Monolithic architecture: -ilities decline over time • Size/Complexity • Maintainability • Testability • Deploy ability • Modularity • Evolvability Risk of Disruption Time
  • 8. Advantages of Microservices • Shrinking Big problems and Small teams • Continuous Integration/Continuous delivery & Fast iteration • Improved maintainability • Better testability • Fault & Performance isolation • Technology independent • Scalability
  • 9. Decomposition How to decompose an application into services? • Business capability • Stable architecture since the business capabilities are relatively stable • Development teams are cross-functional, autonomous, and organized around delivering business value rather than technical features • Services are cohesive and loosely coupled
  • 10. Decomposition 2. • Domain-Driven Design (DDD) subdomains • How to identify the subdomains? Identifying subdomains and hence services requires an understanding of the business. Like business capabilities, subdomains are identified by analyzing the business and its organizational structure and identifying the different areas of expertise. Subdomains are best identified using an iterative process. Good starting points for identifying subdomains are: • organization structure - different groups within an organization might correspond to subdomains • high-level domain model - subdomains often have a key domain object
  • 11. Decomposition 3. • Service per team • Enables each team to be autonomous and work with minimal coordination with other teams • Enables the teams to be loosely coupled • Achieves team autonomy and loose coupling with the minimum number of services • Improves code quality due to long term code ownership
  • 12. Data management 1 Database per service • Private-tables-per-service • Schema-per-service • Database-server-per-service
  • 13. Data management 2 Shared Database • One BIG Database! • Problems?
  • 14. Communication • Point to Point • Request/Response • One direction Request • Async Request/Response • One to Many • Pub/Sub • Publish/ async Responses
  • 17. Deployment Requirements • Services are written using a variety of languages, frameworks, and framework versions • Each service consists of multiple service instances for throughput and availability • Building and deploying a service must be fast • Service must be deployed and scaled independently • Service instances need to be isolated • Resources consumed by a service must be constrained • Deployment must be cost-effective
  • 19. What Is Docker? • Lightweight, Simplify building, shipping, running apps • Runs natively on Linux orWindows Server • Standardized packaging for software and dependencies • Isolate apps from each other • Share the same OS kernel • Runs onWindows or Mac Development machines • Relies on "images" and "containers"
  • 20. Some Docker vocabulary Docker Image The basis of a Docker container. Represents a full application Docker Container The standard unit in which the application service resides and executes Docker Engine Creates, ships and runs Docker containers deployable on a physical or virtual, host locally, in a datacenter or cloud service provider Registry Service (Docker Hub(Public) or Docker Trusted Registry(Private)) Cloud or server based storage and distribution service for your images
  • 21. The Role of Images and Containers Docker Image Example: Ubuntu with Node.js and Application Code Docker Container Created by using an image. Runs your application.
  • 23. Docker Containers vs. Virtual Machines A p p 1 A p p 2 Bins/Libs Bins/Libs Guest O S Guest O S Hypervisor Host Operating System A p p 1 Bins/Libs A p p 2 Bins/Libs Docker Engine Host Operating System Virtual Machines Docker Containers
  • 24. Basic Docker Commands $ docker image pull node:latest $ docker image ls $ docker container run –d –p 5000:5000 –-name node node:latest $ docker container ps $ docker container stop node(or <container id>) $ docker container rm node (or <container id>) $ docker image rmi (or <image id>) $ docker build –t node:2.0 . $ docker image push node:2.0 $ docker --help
  • 25. Developers IT Operations BUILD Development Environments SHIP Create & Store Images RUN Deploy, Manage, Scale
  • 26. Deployment Patterns • Multiple service instances per host • Service instance per host • Service instance perVM • Service instance per Container • Serverless deployment • Service deployment platform
  • 27. Deployment Patterns Multiple service instances per host • Benefits • Efficient resource utilization • Fast deployment • Drawbacks • Poor/Terrible isolation • Difficult to limit resource utilization • Risk of dependency version conflicts • Poor encapsulation of implementation technology
  • 28. Deployment Patterns Service perVM host • Benefits • Great isolation • Great manageability • VM encapsulates implementation technology • Drawbacks • Less efficient resource utilization • Slow deployment
  • 29. Deployment Patterns Service per Container host • Benefits • Great isolation • Great manageability • Container encapsulates • implementation technology • Efficient resource utilization • Fast deployment • Drawbacks • Immature infrastructure for deploying containers