Monoliths, Microservices, Events, Functions: What It Takes to Go Through the Transformation

VMware Tanzu
VMware TanzuVMware Tanzu
Monoliths, Microservices, Events,
Functions – What it takes to go through
the transformation
Dilleswara R Anupoju | Principal Engineer | Comcast
October 7–10, 2019
Austin Convention Center
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2
Multi-cloud
~1.7k
~22k
~46k
2
Application Instances
Built to scale across multiple clouds
Applications
From Billing, Provisioning to Xfinity Virtual Assistant
Slack Community Members
Crowd-sourced collaboration and innovation
Unified Developer Experience
Don’t choose! Same experience across any cloud
Cutting-edge Platforms
Cloud Foundry & APEKS (K8s)
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3
Pillars of Productivity
People
Process
Productivity
Architecture
Technology
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 4
Monoliths to 𝝁Services
Almost all the successful microservice
stories have started with a monolith
that got too big and was broken up.
- Martin Fowler
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5
Decomposing Legacy Apps
CaaS FaaS
LEGACY APPS
PaaS
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6
Monoliths vs Microservices
PRODUCT
S
CUSTOME
RS
ORDERS
PRODUCT
S
CUSTOME
RS
ORDERS
CUSTOMERS
PRODUCT
S
CUSTOME
RS
ORDERS
ORDERS
PRODUCTS
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7
Microservices – Key Considerations
• How to decompose the system into micro services?
• Should this be single database/repo per 𝝁Service?
• How to manage distributed transactions that span across multiple-services ?
• How do these Services Interact?
• How to handle partial failures (service/network) ?
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Partition into Microservices
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 9
Domain Modelling - DDD
An important concept is dependencies,
on outer layer can see an inner layer
but an inner layer has no knowledge
of any outer layer.
Image Courtesy: https://threedots.tech
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
0
Partition into Microservices
• Domain
• Bounded Context
• Transaction boundaries
Domain
Core Generic Support
Context
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Handle Partial failures
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
2
Distributed Architecture – Design for failure
Load Balancer
A2A1B
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
3
Distributed Architecture
• Multiple AI per micro-service ( > 3)
• Multiple AZ within a region / data center
• Multiple regions/dc
• Multiple cloud / platform
• Autoscaling capabilities
• Application Health Checks
• Circuit breakers
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Microservices Interaction
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
5
Microservices Interaction (Sync)
Service
Mes(s)h
Synchronous calls
considered harmful
- Martin Fowler
Image Courtesy: https://threedots.tech
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
6
Microservices Interaction (Async)
Id Aggregate Id Aggregate Type Type Payload Timestamp
100 200 Order OrderCreated {“data”: {}} 10-09-19T01:00:00Z
101 201 Order OrderApproved {“data”: {}} 10-09-19T01:01:10Z
102 202 Order OrderShipped {“data”: {}} 10-09-19T01:02:20Z
Events
 Immutable
 Strongly typed
 Component/Service level
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Microservices + Events
CUSTOMERS
ORDERS
PRODUCTS
Events
REVIEWS
PAYMENTS
SHIPMENTS
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
8
CQRS - Command Query Responsibility Separation
Read / Write Service Model
 Complexity
 Scale /GET
/POST
/PUT
/DELETE
PipesandFilters
 Immutable
 Simple data
 With-in Service
Queries
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1
9
Further Reading
• https://martinfowler.com/articles/serverless.html
• https://martinfowler.com/articles/microservices.html
• https://www.infoq.com/news/2014/10/ddd-onion-architecture/
• https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
• https://github.com/knative/docs
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Q & A
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Thank You
1 of 21

More Related Content

What's hot(20)

Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
Rohit Kelapure2.4K views
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018
Kim Clark1.7K views
Distributor-Cloud-MarketplacesDistributor-Cloud-Marketplaces
Distributor-Cloud-Marketplaces
Dan Allaby1.1K views

Similar to Monoliths, Microservices, Events, Functions: What It Takes to Go Through the Transformation(20)

Chaos Engineering for PCFChaos Engineering for PCF
Chaos Engineering for PCF
VMware Tanzu1.3K views
The Cloud ChallengeThe Cloud Challenge
The Cloud Challenge
VMware Tanzu512 views

Recently uploaded(20)

LLM App Hacking (AVTOKYO2023)LLM App Hacking (AVTOKYO2023)
LLM App Hacking (AVTOKYO2023)
Shota Shinogi205 views
Orchestration, Automation and Virtualisation Maturity ModelOrchestration, Automation and Virtualisation Maturity Model
Orchestration, Automation and Virtualisation Maturity Model
CSUC - Consorci de Serveis Universitaris de Catalunya49 views
SAP FOR PULP AND PAPER  INDUSTRY.pdfSAP FOR PULP AND PAPER  INDUSTRY.pdf
SAP FOR PULP AND PAPER INDUSTRY.pdf
Virendra Rai, PMP41 views
Ontology Repositories and Semantic Artefact Catalogues with the OntoPortal Te...Ontology Repositories and Semantic Artefact Catalogues with the OntoPortal Te...
Ontology Repositories and Semantic Artefact Catalogues with the OntoPortal Te...
INRAE (MISTEA) and University of Montpellier (LIRMM)50 views
9C Monthly Newsletter - NOV 20239C Monthly Newsletter - NOV 2023
9C Monthly Newsletter - NOV 2023
PublishingTeam903 views
AI Science AI Science
AI Science
Melanie Swan29 views
SQLSatOregon_kgorman_keynote_NIAIMLEC.pptxSQLSatOregon_kgorman_keynote_NIAIMLEC.pptx
SQLSatOregon_kgorman_keynote_NIAIMLEC.pptx
Kellyn Pot'Vin-Gorman36 views
Integrating GeoAI Models in FMEIntegrating GeoAI Models in FME
Integrating GeoAI Models in FME
Safe Software31 views
GoTech_SustainableAI_DebmalyaBiswas.pdfGoTech_SustainableAI_DebmalyaBiswas.pdf
GoTech_SustainableAI_DebmalyaBiswas.pdf
Debmalya Biswas16 views
Future Telecoms Challenges & OpportunitiesFuture Telecoms Challenges & Opportunities
Future Telecoms Challenges & Opportunities
University of Hertfordshire41 views

Monoliths, Microservices, Events, Functions: What It Takes to Go Through the Transformation

  • 1. Monoliths, Microservices, Events, Functions – What it takes to go through the transformation Dilleswara R Anupoju | Principal Engineer | Comcast October 7–10, 2019 Austin Convention Center
  • 2. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2 Multi-cloud ~1.7k ~22k ~46k 2 Application Instances Built to scale across multiple clouds Applications From Billing, Provisioning to Xfinity Virtual Assistant Slack Community Members Crowd-sourced collaboration and innovation Unified Developer Experience Don’t choose! Same experience across any cloud Cutting-edge Platforms Cloud Foundry & APEKS (K8s)
  • 3. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 Pillars of Productivity People Process Productivity Architecture Technology
  • 4. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 4 Monoliths to 𝝁Services Almost all the successful microservice stories have started with a monolith that got too big and was broken up. - Martin Fowler
  • 5. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 5 Decomposing Legacy Apps CaaS FaaS LEGACY APPS PaaS
  • 6. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 6 Monoliths vs Microservices PRODUCT S CUSTOME RS ORDERS PRODUCT S CUSTOME RS ORDERS CUSTOMERS PRODUCT S CUSTOME RS ORDERS ORDERS PRODUCTS
  • 7. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7 Microservices – Key Considerations • How to decompose the system into micro services? • Should this be single database/repo per 𝝁Service? • How to manage distributed transactions that span across multiple-services ? • How do these Services Interact? • How to handle partial failures (service/network) ?
  • 8. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Partition into Microservices
  • 9. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 9 Domain Modelling - DDD An important concept is dependencies, on outer layer can see an inner layer but an inner layer has no knowledge of any outer layer. Image Courtesy: https://threedots.tech
  • 10. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 0 Partition into Microservices • Domain • Bounded Context • Transaction boundaries Domain Core Generic Support Context
  • 11. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Handle Partial failures
  • 12. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 2 Distributed Architecture – Design for failure Load Balancer A2A1B
  • 13. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 3 Distributed Architecture • Multiple AI per micro-service ( > 3) • Multiple AZ within a region / data center • Multiple regions/dc • Multiple cloud / platform • Autoscaling capabilities • Application Health Checks • Circuit breakers
  • 14. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Microservices Interaction
  • 15. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 5 Microservices Interaction (Sync) Service Mes(s)h Synchronous calls considered harmful - Martin Fowler Image Courtesy: https://threedots.tech
  • 16. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 6 Microservices Interaction (Async) Id Aggregate Id Aggregate Type Type Payload Timestamp 100 200 Order OrderCreated {“data”: {}} 10-09-19T01:00:00Z 101 201 Order OrderApproved {“data”: {}} 10-09-19T01:01:10Z 102 202 Order OrderShipped {“data”: {}} 10-09-19T01:02:20Z Events  Immutable  Strongly typed  Component/Service level
  • 17. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Microservices + Events CUSTOMERS ORDERS PRODUCTS Events REVIEWS PAYMENTS SHIPMENTS
  • 18. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 8 CQRS - Command Query Responsibility Separation Read / Write Service Model  Complexity  Scale /GET /POST /PUT /DELETE PipesandFilters  Immutable  Simple data  With-in Service Queries
  • 19. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1 9 Further Reading • https://martinfowler.com/articles/serverless.html • https://martinfowler.com/articles/microservices.html • https://www.infoq.com/news/2014/10/ddd-onion-architecture/ • https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html • https://github.com/knative/docs
  • 20. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Q & A
  • 21. Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Thank You