SlideShare a Scribd company logo
© 2016 Mesosphere, Inc. All Rights Reserved. 1
v0.1
MICROSERVICES
© 2016 Mesosphere, Inc. All Rights Reserved. 2
1. Overview
2. Design Principles
3. Deployment
4. 12 Factor App
5. Modular Containers
AGENDA
© 2016 Mesosphere, Inc. All Rights Reserved. 3
Microservices
OVERVIEW
© 2016 Mesosphere, Inc. All Rights Reserved.
noun | ˈmīkrō/ /ˈsərvəs/ :
an approach to application development in which a
large application is built as a suite of modular services.
Each module supports a specific business goal and
uses a simple, well-defined interface to communicate
with other modules.*
Microservices are designed to be flexible, resilient,
efficient, robust, and scalable.
*From whatis.com
OVERVIEW
© 2016 Mesosphere, Inc. All Rights Reserved.
OVERVIEW
Micro sized services
○ Efficiently scalable applications
○ Flexible applications
○ High performance
Application(s) powered by small services with
a single focus
Lightweight communication mechanism
Technology agnostic API
Independently changeable and deployable
Client
Service
Service
Service
UI
Service
© 2016 Mesosphere, Inc. All Rights Reserved.
MONOLITHIC
Challenges
○ No size restriction
○ Large codebase
○ Long development times
○ Inaccessible features
○ Highly coupled
○ Difficult to understand
Failure affects whole system
Changes may cause complete rebuild
Scaling requires duplication of entire system
Internal
Front
end
Accounts
Promotions
Orders
Payments
History
Data
Access
Databas
e
Service
Client
Account Orders
History
Codes
© 2016 Mesosphere, Inc. All Rights Reserved.
MICROSERVICES
Benefits
○ Shorter development times
○ Decoupled
○ Increased uptime
○ High scalable
○ Tested individually
○ Simpler to understand
Enables distributed teams
Right technology
Automated test tools
Promotions
Service
Orders
Service
Payments
Service
History
Service
API
Gateway
Client
Account Orders
History
Codes
Internal
Front
end
Accounts
Service
© 2016 Mesosphere, Inc. All Rights Reserved.
Functions & Logic
Microservices
(in containers)
Big Data + Analytics Engines
Streaming
Batch
Machine Learning
Analytics
Search
Time Series
SQL / NoSQL
Databases
THE MODERN ENTERPRISE APPLICATION
● Microservices
● Containers
● Stateful Big Data
● Open source
© 2016 Mesosphere, Inc. All Rights Reserved. 9
Microservices
DESIGN
PRINCIPLES
© 2016 Mesosphere, Inc. All Rights Reserved.
● High Cohesion: Single focus done well
● Autonomous: Independently changeable and deployable
● Business Domain Centric: Represents business function or domain
● Resilience: Embrace failure
● Observable: Centralized logging and monitoring
● Automation: Tools for testing and deployment
DESIGN PRINCIPLES
© 2016 Mesosphere, Inc. All Rights Reserved.
● High Cohesion
● Split service until it has a singular focus, only one reason to change
● Autonomous
● Loosely coupled, versioning strategy, ownership by team
● Business Domain Centric
● Identify business domains and subdivide into functions
● Resilience
● Design for failures, fail fast and recover fast
● Observable
● Tools for centralized monitoring and logging
● Automation
● Continuous Integration and continuous development tools
DESIGN PRINCIPLES
© 2016 Mesosphere, Inc. All Rights Reserved.
● Communication
● Synchronous or Asynchronous
● Hosting platform
● Cloud, on-prem, virtual machines, containers
● Service Discovery
● Monitoring and Logging Tools
● Performance
● Auto scaling, caching, load balancing
● Tools for centralized monitoring and logging
● Automation
● Continuous Integration and continuous development tools
DESIGN CONSIDERATIONS
© 2016 Mesosphere, Inc. All Rights Reserved. 13
Microservices
DEPLOYMENTS
© 2016 Mesosphere, Inc. All Rights Reserved.
● Brownfield
● Existing monolithic system
● Lacks microservices design principles
● Greenfield
● New project
● Evolving requirements
● First microservice
DEPLOYMENT TYPES
© 2016 Mesosphere, Inc. All Rights Reserved.
● Identify seams
● Separation that reflects domains
● Identify bounded contexts
● Seams are future microservice boundaries
● Modularize bounded contexts
● Move code incrementally
● Keep existing functionality intact
● Continuous unit testing and integration tests to validate
BROWNFIELD APPROACH
© 2016 Mesosphere, Inc. All Rights Reserved.
● Code organized into business domain or function
● Convert bounded contexts into microservices
● Start with the easiest one
● Maintain both versions for easy rollback
● Prioritize what to split by risk, technology, dependences
● Iterate incrementally
● Validate integration with monolithic
● Avoid shared databases, split using seams
● Consolidate reporting across microservices
BROWNFIELD MIGRATION
© 2016 Mesosphere, Inc. All Rights Reserved.
● Start with monolithic design
● High level picture
● Evolving seams
● Develop areas into modules
● Boundaries start to develop
● Refine and refactor design
● Eventually turn modules and shareable code libraries into services
● Review principles at each stage
● Map out target state and prioritize activities accordingly
GREENFIELD APPROACH
© 2016 Mesosphere, Inc. All Rights Reserved.
● Initially there will be:
● Longer development times
● Cost and training for tools and skills
● Addition testing
● Cost of improving infrastructure
● Cloud technologies
● Culture change
GREENFIELD CONSIDERATIONS
© 2016 Mesosphere, Inc. All Rights Reserved. 19
Microservices
12 FACTOR APP
© 2016 Mesosphere, Inc. All Rights Reserved.
Methodology for building software-as-a-service apps that:
● Use declarative formats for setup automation, to minimize time and cost
for new developers joining the project
● Have a clean contract with the underlying operating system, offering
maximum portability between execution environments
● Are suitable for deployment on modern cloud platforms, obviating the
need for servers and systems administration
● Minimize divergence between development and production, enabling
continuous deployment for maximum agility
● And can scale up without significant changes to tooling, architecture, or
development practices
From http://12factor.net/
12 FACTOR APP
© 2016 Mesosphere, Inc. All Rights Reserved.
I. Codebase
● One codebase tracked in revision control, many deploys
II. Dependencies
● Explicitly declare and isolate dependencies
III. Config
● Store config in the environment
IV. Backing Services
● Treat backing services as attached resources
From http://12factor.net/
12 FACTOR APP
© 2016 Mesosphere, Inc. All Rights Reserved.
V. Build, release, run
● Strictly separate build and run stages
VI. Processes
● Execute the app as one or more stateless processes
VII. Port binding
● Export services via port binding
VIII. Concurrency
● Scale out via the process model
From http://12factor.net/
12 FACTOR APP
© 2016 Mesosphere, Inc. All Rights Reserved.
IX. Disposability
● Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
● Keep development, staging, and production as similar as possible
XI. Logs
● Treat logs as event streams (log to stdout & stderr)
XII. Admin processes
● Run admin/management tasks as one-off processes
From http://12factor.net/
12 FACTOR APP
© 2016 Mesosphere, Inc. All Rights Reserved. 24
Microservices
MODULAR
CONTAINERS
© 2016 Mesosphere, Inc. All Rights Reserved.
● Proper Linux process
● React to signals, return proper exit codes, use standard streams
● Explicit interfaces
● Make dependencies explicit (CLI args, env vars, labels)
● Disposable
● Keep ephemeral state, robust against failure, minimal setup
● Immutable
● Changes to container should be made by rebuilding
● Self-contained
● Zero-config deploy, add dependencies at build time, dynamic configs
MODULAR CONTAINER
© 2016 Mesosphere, Inc. All Rights Reserved.
SUMMARY
In this module we looked at microservices
- Monolithic applications to microservices
- Design principles
- Deployment considerations
- 12 factor app methodology
- Building modular containers
A09 - Microservices.pptx

More Related Content

Similar to A09 - Microservices.pptx

Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
Siva Rama Krishna Chunduru
 
XFORMATION Open Platform in Enterprise wide SOA Adoption
XFORMATION Open Platform in Enterprise wide SOA Adoption XFORMATION Open Platform in Enterprise wide SOA Adoption
XFORMATION Open Platform in Enterprise wide SOA Adoption
Papu Bhattacharya
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Development
WSO2
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
Ieva Navickaite
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
Dr. Wilfred Lin (Ph.D.)
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
Nicholas Bowman
 
Deploying and Managing Anypoint Runtime Fabric on OpenShift
Deploying and Managing Anypoint Runtime Fabric on OpenShiftDeploying and Managing Anypoint Runtime Fabric on OpenShift
Deploying and Managing Anypoint Runtime Fabric on OpenShift
Harshana Martin
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Lightbend
 
Microservices architecture ext
Microservices architecture extMicroservices architecture ext
Microservices architecture ext
Vikash Kodati
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
Brad Williams
 
IBM Lightning Talk
IBM Lightning TalkIBM Lightning Talk
IBM Lightning Talk
MongoDB
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Development
kshanth2101
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere
Markus Eisele
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
Livares Technologies Pvt Ltd
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application Architecture
David Currie
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB
 
Elastic data services on Apache Mesos via Mesosphere’s DCOS
Elastic data services on Apache Mesos via Mesosphere’s DCOSElastic data services on Apache Mesos via Mesosphere’s DCOS
Elastic data services on Apache Mesos via Mesosphere’s DCOS
harrythewiz
 
A use case with cloud foundry deployment
A use case with cloud foundry deploymentA use case with cloud foundry deployment
A use case with cloud foundry deployment
Krishna-Kumar
 
Introducing WSO2 App Factory 2.0
Introducing WSO2 App Factory 2.0 Introducing WSO2 App Factory 2.0
Introducing WSO2 App Factory 2.0
WSO2
 

Similar to A09 - Microservices.pptx (20)

Cloud Native In-Depth
Cloud Native In-DepthCloud Native In-Depth
Cloud Native In-Depth
 
XFORMATION Open Platform in Enterprise wide SOA Adoption
XFORMATION Open Platform in Enterprise wide SOA Adoption XFORMATION Open Platform in Enterprise wide SOA Adoption
XFORMATION Open Platform in Enterprise wide SOA Adoption
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Development
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Deploying and Managing Anypoint Runtime Fabric on OpenShift
Deploying and Managing Anypoint Runtime Fabric on OpenShiftDeploying and Managing Anypoint Runtime Fabric on OpenShift
Deploying and Managing Anypoint Runtime Fabric on OpenShift
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Microservices architecture ext
Microservices architecture extMicroservices architecture ext
Microservices architecture ext
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
IBM Lightning Talk
IBM Lightning TalkIBM Lightning Talk
IBM Lightning Talk
 
Evolution of Application Development
Evolution of Application DevelopmentEvolution of Application Development
Evolution of Application Development
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application Architecture
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Elastic data services on Apache Mesos via Mesosphere’s DCOS
Elastic data services on Apache Mesos via Mesosphere’s DCOSElastic data services on Apache Mesos via Mesosphere’s DCOS
Elastic data services on Apache Mesos via Mesosphere’s DCOS
 
A use case with cloud foundry deployment
A use case with cloud foundry deploymentA use case with cloud foundry deployment
A use case with cloud foundry deployment
 
Introducing WSO2 App Factory 2.0
Introducing WSO2 App Factory 2.0 Introducing WSO2 App Factory 2.0
Introducing WSO2 App Factory 2.0
 

Recently uploaded

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
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
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
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
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
 
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)

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
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
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
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
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
 

A09 - Microservices.pptx

  • 1. © 2016 Mesosphere, Inc. All Rights Reserved. 1 v0.1 MICROSERVICES
  • 2. © 2016 Mesosphere, Inc. All Rights Reserved. 2 1. Overview 2. Design Principles 3. Deployment 4. 12 Factor App 5. Modular Containers AGENDA
  • 3. © 2016 Mesosphere, Inc. All Rights Reserved. 3 Microservices OVERVIEW
  • 4. © 2016 Mesosphere, Inc. All Rights Reserved. noun | ˈmīkrō/ /ˈsərvəs/ : an approach to application development in which a large application is built as a suite of modular services. Each module supports a specific business goal and uses a simple, well-defined interface to communicate with other modules.* Microservices are designed to be flexible, resilient, efficient, robust, and scalable. *From whatis.com OVERVIEW
  • 5. © 2016 Mesosphere, Inc. All Rights Reserved. OVERVIEW Micro sized services ○ Efficiently scalable applications ○ Flexible applications ○ High performance Application(s) powered by small services with a single focus Lightweight communication mechanism Technology agnostic API Independently changeable and deployable Client Service Service Service UI Service
  • 6. © 2016 Mesosphere, Inc. All Rights Reserved. MONOLITHIC Challenges ○ No size restriction ○ Large codebase ○ Long development times ○ Inaccessible features ○ Highly coupled ○ Difficult to understand Failure affects whole system Changes may cause complete rebuild Scaling requires duplication of entire system Internal Front end Accounts Promotions Orders Payments History Data Access Databas e Service Client Account Orders History Codes
  • 7. © 2016 Mesosphere, Inc. All Rights Reserved. MICROSERVICES Benefits ○ Shorter development times ○ Decoupled ○ Increased uptime ○ High scalable ○ Tested individually ○ Simpler to understand Enables distributed teams Right technology Automated test tools Promotions Service Orders Service Payments Service History Service API Gateway Client Account Orders History Codes Internal Front end Accounts Service
  • 8. © 2016 Mesosphere, Inc. All Rights Reserved. Functions & Logic Microservices (in containers) Big Data + Analytics Engines Streaming Batch Machine Learning Analytics Search Time Series SQL / NoSQL Databases THE MODERN ENTERPRISE APPLICATION ● Microservices ● Containers ● Stateful Big Data ● Open source
  • 9. © 2016 Mesosphere, Inc. All Rights Reserved. 9 Microservices DESIGN PRINCIPLES
  • 10. © 2016 Mesosphere, Inc. All Rights Reserved. ● High Cohesion: Single focus done well ● Autonomous: Independently changeable and deployable ● Business Domain Centric: Represents business function or domain ● Resilience: Embrace failure ● Observable: Centralized logging and monitoring ● Automation: Tools for testing and deployment DESIGN PRINCIPLES
  • 11. © 2016 Mesosphere, Inc. All Rights Reserved. ● High Cohesion ● Split service until it has a singular focus, only one reason to change ● Autonomous ● Loosely coupled, versioning strategy, ownership by team ● Business Domain Centric ● Identify business domains and subdivide into functions ● Resilience ● Design for failures, fail fast and recover fast ● Observable ● Tools for centralized monitoring and logging ● Automation ● Continuous Integration and continuous development tools DESIGN PRINCIPLES
  • 12. © 2016 Mesosphere, Inc. All Rights Reserved. ● Communication ● Synchronous or Asynchronous ● Hosting platform ● Cloud, on-prem, virtual machines, containers ● Service Discovery ● Monitoring and Logging Tools ● Performance ● Auto scaling, caching, load balancing ● Tools for centralized monitoring and logging ● Automation ● Continuous Integration and continuous development tools DESIGN CONSIDERATIONS
  • 13. © 2016 Mesosphere, Inc. All Rights Reserved. 13 Microservices DEPLOYMENTS
  • 14. © 2016 Mesosphere, Inc. All Rights Reserved. ● Brownfield ● Existing monolithic system ● Lacks microservices design principles ● Greenfield ● New project ● Evolving requirements ● First microservice DEPLOYMENT TYPES
  • 15. © 2016 Mesosphere, Inc. All Rights Reserved. ● Identify seams ● Separation that reflects domains ● Identify bounded contexts ● Seams are future microservice boundaries ● Modularize bounded contexts ● Move code incrementally ● Keep existing functionality intact ● Continuous unit testing and integration tests to validate BROWNFIELD APPROACH
  • 16. © 2016 Mesosphere, Inc. All Rights Reserved. ● Code organized into business domain or function ● Convert bounded contexts into microservices ● Start with the easiest one ● Maintain both versions for easy rollback ● Prioritize what to split by risk, technology, dependences ● Iterate incrementally ● Validate integration with monolithic ● Avoid shared databases, split using seams ● Consolidate reporting across microservices BROWNFIELD MIGRATION
  • 17. © 2016 Mesosphere, Inc. All Rights Reserved. ● Start with monolithic design ● High level picture ● Evolving seams ● Develop areas into modules ● Boundaries start to develop ● Refine and refactor design ● Eventually turn modules and shareable code libraries into services ● Review principles at each stage ● Map out target state and prioritize activities accordingly GREENFIELD APPROACH
  • 18. © 2016 Mesosphere, Inc. All Rights Reserved. ● Initially there will be: ● Longer development times ● Cost and training for tools and skills ● Addition testing ● Cost of improving infrastructure ● Cloud technologies ● Culture change GREENFIELD CONSIDERATIONS
  • 19. © 2016 Mesosphere, Inc. All Rights Reserved. 19 Microservices 12 FACTOR APP
  • 20. © 2016 Mesosphere, Inc. All Rights Reserved. Methodology for building software-as-a-service apps that: ● Use declarative formats for setup automation, to minimize time and cost for new developers joining the project ● Have a clean contract with the underlying operating system, offering maximum portability between execution environments ● Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration ● Minimize divergence between development and production, enabling continuous deployment for maximum agility ● And can scale up without significant changes to tooling, architecture, or development practices From http://12factor.net/ 12 FACTOR APP
  • 21. © 2016 Mesosphere, Inc. All Rights Reserved. I. Codebase ● One codebase tracked in revision control, many deploys II. Dependencies ● Explicitly declare and isolate dependencies III. Config ● Store config in the environment IV. Backing Services ● Treat backing services as attached resources From http://12factor.net/ 12 FACTOR APP
  • 22. © 2016 Mesosphere, Inc. All Rights Reserved. V. Build, release, run ● Strictly separate build and run stages VI. Processes ● Execute the app as one or more stateless processes VII. Port binding ● Export services via port binding VIII. Concurrency ● Scale out via the process model From http://12factor.net/ 12 FACTOR APP
  • 23. © 2016 Mesosphere, Inc. All Rights Reserved. IX. Disposability ● Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity ● Keep development, staging, and production as similar as possible XI. Logs ● Treat logs as event streams (log to stdout & stderr) XII. Admin processes ● Run admin/management tasks as one-off processes From http://12factor.net/ 12 FACTOR APP
  • 24. © 2016 Mesosphere, Inc. All Rights Reserved. 24 Microservices MODULAR CONTAINERS
  • 25. © 2016 Mesosphere, Inc. All Rights Reserved. ● Proper Linux process ● React to signals, return proper exit codes, use standard streams ● Explicit interfaces ● Make dependencies explicit (CLI args, env vars, labels) ● Disposable ● Keep ephemeral state, robust against failure, minimal setup ● Immutable ● Changes to container should be made by rebuilding ● Self-contained ● Zero-config deploy, add dependencies at build time, dynamic configs MODULAR CONTAINER
  • 26. © 2016 Mesosphere, Inc. All Rights Reserved. SUMMARY In this module we looked at microservices - Monolithic applications to microservices - Design principles - Deployment considerations - 12 factor app methodology - Building modular containers