SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Patterns, Practices that work!
Architecting applications for the cloud
Pros and Cons of Micro
Services
• Ashwini Kuntamukkala
• Sr. Enterprise Solutions Architect, Vizient, Inc
• Twitter @akuntamukkala
Business
Technology
Processes
Why do we end up here time and again?
• Act first, think later
• Ill conceived scope
• Hastened delivery
timelines
• Short sightedness
• Shipping code pretending
to be agile
• Improper tooling
• Cutting corners
• Early success bolts on
more functionality
• Technical debt goes into
backlog forever
• Improper domain analysis
• Accidental Architecture
• Design Patterns turn into
anti-patterns
• Not paying attention to
non-functional
requirements
Are we doing things right or doing the right things?
Common smells
• Large and growing code
repositories
• No separation of
concerns
• Tight coupling and less
cohesion
• Circular dependencies
• Big bang releases
• Painful regression tests
• Buggy and painful
troubleshooting
experience
• Missing and minimal
automation
• Complex deployment
pipelines with manual
steps
• Difficult training and on-
boarding process
• …
Ok…we have a problem. What’s the solution?
Micro services...but is it really?
• Buzz word?
• Fad?
• COTS?
• Library?
• Framework?
• Platform?
• Architecture Pattern?
Building applications as suite of services. As well as the
fact that services are independently deployable and
scalable, each service also provides a firm module
boundary, even allowing different services to be written
in different programming languages. They can also be
managed by different teams.
Micro Services
- Martin Fowler
Don’t get caught up in the buzz. Are you solving the correct problem?
Micro Services
Gone Wild!
Small autonomous services
that work together
modeled around a business domain
- Sam Newman
UI
Services
DB
UI
Service-A
DB-A
Service-B
DB-B
Service-C
DB-C
Monolith - Single App
Multiple Services
Sharing same database
Composite App
Multiple Micro-Services
Database per Micro-Service
Monoliths
• Natural starting point as it is
easier to get started and deliver
value
• Simpler build and deployment
• Simpler scalability
• Simpler security
• Low latency due to intra-
process communication
• Simpler testing
• Simpler logging and monitoring
• Simpler data and database
management
• Simpler transaction
management
• Large code base
• Simple change requires whole
app to be redeployed
• Increased complexity as
functionality is coupled together
• Single type of database doesn’t
meet all requirements
• Tend to get difficult to work with
over time
• Huge resource requirements
• Reduced agility over time
• Coarse-grain transactions
Pros Cons
Source:
http://samnewman.io/talks/principles-of-microservices/
http://samnewman.io/index.html
Micro Services - Pros
• Smaller manageable
functional units
• Multiple smaller code bases
• Single service provides
single functionality
• Single responsibility per
service
• Clearer separation of
concerns
• Independently scalable
services
• Polyglot persistence as
applicable
• Polyglot programming
language as applicable
• Independently deployable
• Easier on-boarding process
• Frequent functionality
releases
• Decentralized ownership
• Team that develops it,
manages it
Micro Services - Cons
• Distributed System Architecture
– Design
– Development
– Deployment
– CAP theorem
• Handle Increased orchestration
• Handle Increased surface area
– Attacks
– Failure
• System and App Observability
• Troubleshooting challenges
• Call Traceability
• Data consistency issues
– Eventual consistency
– Compensatory & reconciliatory
procedures
• Log aggregation
• Rigorous test suite
• Increased latency due to remote
calls
• Strict Service Versioning
• Distributed Configuration
Management
• Organizational Maturity
– Company Culture
– Engineering practices
– IT Operations
– Software defined networks
– On-demand infrastructure
provisioning
• Architectural complexity
Source: https://martinfowler.com/bliki/MicroservicePrerequisites.html
• On demand IT provisioning
• System and App Monitoring
• Mature CI/CD pipelines
• DevOps culture
Qualifications for micro services
- Application
- Organization
Application Qualification Criteria
• What need does this application
solve?
• Is this a business sensitive
application?
• Who is the audience?
• What are the non functional
requirements?
• What type of application is it?
– OLTP
– OLAP
– BI
– Integration
– Batch
– Mash up …
• Is it a data or compute intensive?
• What is the domain model?
• Does domain model decompose
into smaller functional units?
• What data source type fits the
need?
– Traditional RDBMS
– NoSQL
• Graph
• Key Value
• Document
• Column
• Is eventual consistency
acceptable?
• Future scope
Organizational Qualification Criteria
• Engineering
– Design and Implement Cloud-Native
applications
• 12 Factor Apps
• Operations
– Continuous Integration
– Continuous Deployment
– On-demand Infrastructure provisioning
– Software Defined Networking
• Data
– Partitioning
– Replication
– Warehousing
– Marts
– Governance
– Virtualization
• Caching Infrastructure
– In memory data grid
– Session storage
• Messaging Infrastructure
– Asynchronous
– Durability
• Security
– SSL
– OAuth, JWT
– Credential Relay
– Service to Service
• Culture
– Cooperation
– Collaboration
– Communication
– Embrace change
– Cutting edge
– Open Source
• PaaS Adoption
Common mistakes
• RDD
– Resume driven development
• RDA
– Resume driven architecture
• Not using PaaS
• Let’s build micro-services architecture because
it is cooler
Building Cloud-Native
Applications
So you think you are ready to embark on this journey…
12 Factor Applications – Heroku (https://12factor.net)
Criteria Explanation
Codebase One codebase tracked in revision control, many deploys
Dependencies Explicitly declare and isolate dependencies
Configuration Store configuration in the environment
Backing Services Treat backing services as attached resources
Build, release, run Strictly separate build and run stages
Processes Execute the app as one or more stateless processes
Port binding Export services via port binding
Concurrency Scale out via the process model
Disposability Maximize robustness with fast startup and graceful shutdown
Dev/Prod parity Keep development, staging and production as similar as
possible
Logs Treat logs as event streams
Admin processes Run admin/management tasks as one-off processes
API Gateway
+
Micro Proxy
Client/UI
Service
Registry
Service
DB
Service
DB
Service
DB
Monitoring
Dashboard
Configuratio
n Server
Auth Z/N
Server
Log
Aggregation
Sample
Microservices Architecture
Cache
Message
Broker
Highly recommended reads
Domain Driven Design – Eric Evans
• Focus on core domain
• Collaboration between domain
experts and software experts
• Unambiguous language
• Explicit context boundaries
• Exploration and
experimentation
Popular Building blocks for Cloud Native Applications
• Service Registry
– Eureka
– Consul
– etcd
• Micro Proxy
– Zuul
• Client side load balancing
– Ribbon
• API Gateway
• Circuit Breakers
– Hysterix + Turbine
• Traceability
– Zipkin
• Configuration Server
• Spring Boot & Spring Cloud
– https://start.spring.io/
• Dropwizard
– http://www.dropwizard.io/
Micro services : PaaS
::
Cars : roads
PaaS Choices
Hands-on lab exercises
• We will use
complimentary tier
offered by Pivotal at
Pivotal Web Services
• Enterprise support for
Cloudfoundry, running
on AWS
• We will use Openshift
Origin VM on our
laptops for hands-on
exercises
Questions?
Further Reading Material
• https://martinfowler.com/articles/microservices.html
• https://www.safaribooksonline.com/library/view/building-
microservices-with/9780134192468/
• Principles of microservices architecture – Sam Newman
• http://samnewman.io/books/building_microservices/
• https://dzone.com/articles/microservice-architecture-with-
spring-cloud-and-do

Weitere ähnliche Inhalte

Was ist angesagt?

High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could dosarahnovotny
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 
Master master vs master-slave database
Master master vs master-slave databaseMaster master vs master-slave database
Master master vs master-slave databaseWipro
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...DevOps.com
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기NHN FORWARD
 
Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...Bilgin Ibryam
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX, Inc.
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsMydbops
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationEDB
 
Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Stenio Ferreira
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaYoungHeon (Roy) Kim
 
Credential store using HashiCorp Vault
Credential store using HashiCorp VaultCredential store using HashiCorp Vault
Credential store using HashiCorp VaultMayank Patel
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 

Was ist angesagt? (20)

High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Master master vs master-slave database
Master master vs master-slave databaseMaster master vs master-slave database
Master master vs master-slave database
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기[2018] MySQL 이중화 진화기
[2018] MySQL 이중화 진화기
 
Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...Application modernization patterns with apache kafka, debezium, and kubernete...
Application modernization patterns with apache kafka, debezium, and kubernete...
 
NGINX: Basics and Best Practices
NGINX: Basics and Best PracticesNGINX: Basics and Best Practices
NGINX: Basics and Best Practices
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2Vault Open Source vs Enterprise v2
Vault Open Source vs Enterprise v2
 
MySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & GrafanaMySQL Monitoring using Prometheus & Grafana
MySQL Monitoring using Prometheus & Grafana
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Credential store using HashiCorp Vault
Credential store using HashiCorp VaultCredential store using HashiCorp Vault
Credential store using HashiCorp Vault
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 

Ähnlich wie Pros & Cons of Microservices Architecture

Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1Amin Arab
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfRichieBallyears
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsŁukasz Sowa
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2Masashi Narumoto
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cachecornelia davis
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisVMware Tanzu
 
Comparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsComparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsMike Ensor
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5Richard Hudson
 
Building a serverless app
Building a serverless appBuilding a serverless app
Building a serverless appVinay Krishna
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureMohammad Dameer
 

Ähnlich wie Pros & Cons of Microservices Architecture (20)

Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
microservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdfmicroservices-is-it-the-holy-grail-a-perspective.pdf
microservices-is-it-the-holy-grail-a-perspective.pdf
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Comparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsComparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutions
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
 
Micro service architecture
Micro service architecture  Micro service architecture
Micro service architecture
 
Building a serverless app
Building a serverless appBuilding a serverless app
Building a serverless app
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 

Kürzlich hochgeladen

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Pros & Cons of Microservices Architecture

  • 1.
  • 2. Patterns, Practices that work! Architecting applications for the cloud Pros and Cons of Micro Services • Ashwini Kuntamukkala • Sr. Enterprise Solutions Architect, Vizient, Inc • Twitter @akuntamukkala
  • 4.
  • 5. Why do we end up here time and again? • Act first, think later • Ill conceived scope • Hastened delivery timelines • Short sightedness • Shipping code pretending to be agile • Improper tooling • Cutting corners • Early success bolts on more functionality • Technical debt goes into backlog forever • Improper domain analysis • Accidental Architecture • Design Patterns turn into anti-patterns • Not paying attention to non-functional requirements Are we doing things right or doing the right things?
  • 6. Common smells • Large and growing code repositories • No separation of concerns • Tight coupling and less cohesion • Circular dependencies • Big bang releases • Painful regression tests • Buggy and painful troubleshooting experience • Missing and minimal automation • Complex deployment pipelines with manual steps • Difficult training and on- boarding process • … Ok…we have a problem. What’s the solution?
  • 7. Micro services...but is it really? • Buzz word? • Fad? • COTS? • Library? • Framework? • Platform? • Architecture Pattern?
  • 8. Building applications as suite of services. As well as the fact that services are independently deployable and scalable, each service also provides a firm module boundary, even allowing different services to be written in different programming languages. They can also be managed by different teams. Micro Services - Martin Fowler
  • 9. Don’t get caught up in the buzz. Are you solving the correct problem? Micro Services Gone Wild!
  • 10. Small autonomous services that work together modeled around a business domain - Sam Newman
  • 11. UI Services DB UI Service-A DB-A Service-B DB-B Service-C DB-C Monolith - Single App Multiple Services Sharing same database Composite App Multiple Micro-Services Database per Micro-Service
  • 12. Monoliths • Natural starting point as it is easier to get started and deliver value • Simpler build and deployment • Simpler scalability • Simpler security • Low latency due to intra- process communication • Simpler testing • Simpler logging and monitoring • Simpler data and database management • Simpler transaction management • Large code base • Simple change requires whole app to be redeployed • Increased complexity as functionality is coupled together • Single type of database doesn’t meet all requirements • Tend to get difficult to work with over time • Huge resource requirements • Reduced agility over time • Coarse-grain transactions Pros Cons
  • 14. Micro Services - Pros • Smaller manageable functional units • Multiple smaller code bases • Single service provides single functionality • Single responsibility per service • Clearer separation of concerns • Independently scalable services • Polyglot persistence as applicable • Polyglot programming language as applicable • Independently deployable • Easier on-boarding process • Frequent functionality releases • Decentralized ownership • Team that develops it, manages it
  • 15. Micro Services - Cons • Distributed System Architecture – Design – Development – Deployment – CAP theorem • Handle Increased orchestration • Handle Increased surface area – Attacks – Failure • System and App Observability • Troubleshooting challenges • Call Traceability • Data consistency issues – Eventual consistency – Compensatory & reconciliatory procedures • Log aggregation • Rigorous test suite • Increased latency due to remote calls • Strict Service Versioning • Distributed Configuration Management • Organizational Maturity – Company Culture – Engineering practices – IT Operations – Software defined networks – On-demand infrastructure provisioning • Architectural complexity
  • 16. Source: https://martinfowler.com/bliki/MicroservicePrerequisites.html • On demand IT provisioning • System and App Monitoring • Mature CI/CD pipelines • DevOps culture
  • 17. Qualifications for micro services - Application - Organization
  • 18. Application Qualification Criteria • What need does this application solve? • Is this a business sensitive application? • Who is the audience? • What are the non functional requirements? • What type of application is it? – OLTP – OLAP – BI – Integration – Batch – Mash up … • Is it a data or compute intensive? • What is the domain model? • Does domain model decompose into smaller functional units? • What data source type fits the need? – Traditional RDBMS – NoSQL • Graph • Key Value • Document • Column • Is eventual consistency acceptable? • Future scope
  • 19. Organizational Qualification Criteria • Engineering – Design and Implement Cloud-Native applications • 12 Factor Apps • Operations – Continuous Integration – Continuous Deployment – On-demand Infrastructure provisioning – Software Defined Networking • Data – Partitioning – Replication – Warehousing – Marts – Governance – Virtualization • Caching Infrastructure – In memory data grid – Session storage • Messaging Infrastructure – Asynchronous – Durability • Security – SSL – OAuth, JWT – Credential Relay – Service to Service • Culture – Cooperation – Collaboration – Communication – Embrace change – Cutting edge – Open Source • PaaS Adoption
  • 20. Common mistakes • RDD – Resume driven development • RDA – Resume driven architecture • Not using PaaS • Let’s build micro-services architecture because it is cooler
  • 21. Building Cloud-Native Applications So you think you are ready to embark on this journey…
  • 22. 12 Factor Applications – Heroku (https://12factor.net) Criteria Explanation Codebase One codebase tracked in revision control, many deploys Dependencies Explicitly declare and isolate dependencies Configuration Store configuration in the environment Backing Services Treat backing services as attached resources Build, release, run Strictly separate build and run stages Processes Execute the app as one or more stateless processes Port binding Export services via port binding Concurrency Scale out via the process model Disposability Maximize robustness with fast startup and graceful shutdown Dev/Prod parity Keep development, staging and production as similar as possible Logs Treat logs as event streams Admin processes Run admin/management tasks as one-off processes
  • 23. API Gateway + Micro Proxy Client/UI Service Registry Service DB Service DB Service DB Monitoring Dashboard Configuratio n Server Auth Z/N Server Log Aggregation Sample Microservices Architecture Cache Message Broker
  • 25. Domain Driven Design – Eric Evans • Focus on core domain • Collaboration between domain experts and software experts • Unambiguous language • Explicit context boundaries • Exploration and experimentation
  • 26. Popular Building blocks for Cloud Native Applications • Service Registry – Eureka – Consul – etcd • Micro Proxy – Zuul • Client side load balancing – Ribbon • API Gateway • Circuit Breakers – Hysterix + Turbine • Traceability – Zipkin • Configuration Server • Spring Boot & Spring Cloud – https://start.spring.io/ • Dropwizard – http://www.dropwizard.io/
  • 27. Micro services : PaaS :: Cars : roads
  • 29. Hands-on lab exercises • We will use complimentary tier offered by Pivotal at Pivotal Web Services • Enterprise support for Cloudfoundry, running on AWS • We will use Openshift Origin VM on our laptops for hands-on exercises
  • 31. Further Reading Material • https://martinfowler.com/articles/microservices.html • https://www.safaribooksonline.com/library/view/building- microservices-with/9780134192468/ • Principles of microservices architecture – Sam Newman • http://samnewman.io/books/building_microservices/ • https://dzone.com/articles/microservice-architecture-with- spring-cloud-and-do

Hinweis der Redaktion

  1. This presentation demonstrates the new capabilities of PowerPoint and it is best viewed in Slide Show. These slides are designed to give you great ideas for the presentations you’ll create in PowerPoint 2011! For more sample templates, click the File menu, and then click New From Template. Under Templates, click Presentations.