SlideShare uma empresa Scribd logo
1 de 31
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

Mais conteúdo relacionado

Mais procurados

Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Edureka!
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - ObservabilityAraf Karsh Hamid
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesChris Richardson
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native ApplicationVMUG IT
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingAraf Karsh Hamid
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 

Mais procurados (20)

Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native Application
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
02 api gateway
02 api gateway02 api gateway
02 api gateway
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 

Semelhante a Microservices

Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and dockerAlex Ivy
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerWeb à Québec
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoangHieu Hoang
 
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...Luis Beltran
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices Weaveworks
 
Container on azure
Container on azureContainer on azure
Container on azureVishwas N
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkMassimo Bonanni
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesAtlassian
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixIBM
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?John Rofrano
 
microservice architecture and docker
microservice architecture and dockermicroservice architecture and docker
microservice architecture and dockeriitsasi
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with DockerLaura Frank Tacho
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Lucas Jellema
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with DockerMariaDB plc
 

Semelhante a Microservices (20)

Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Docker - HieuHoang
Docker - HieuHoangDocker - HieuHoang
Docker - HieuHoang
 
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
Bringing AI to the edge on-premises Azure Cognitive Services using Docker con...
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
 
Container on azure
Container on azureContainer on azure
Container on azure
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Newt global meetup microservices
Newt global meetup microservicesNewt global meetup microservices
Newt global meetup microservices
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
 
microservice architecture and docker
microservice architecture and dockermicroservice architecture and docker
microservice architecture and docker
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
Docker12 factor
Docker12 factorDocker12 factor
Docker12 factor
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 

Último

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 

Último (20)

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 

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