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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containers
 
Containers technologies
Containers technologiesContainers technologies
Containers technologies
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Microservices
Microservices Microservices
Microservices
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 

Semelhante a Pros & Cons of Microservices Architecture

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
Richard Hudson
 

Semelhante a 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
 
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
 
Newt global meetup microservices
Newt global meetup microservicesNewt global meetup microservices
Newt global meetup microservices
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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

Notas do Editor

  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.