SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Confidential │ © 2020 VMware, Inc.
Should That Be a
Microservice ?
Journey From Monoliths to
Microservices and Back
Rohit Kelapure @rkela
Principal Solution Architect @ VMware Pivotal Labs
June 2020
rkelapure@vmware.com
https://cloud.rohitkelapure.com
Confidential │ © 2020 VMware, Inc.
Agenda
2
Monoliths To Microservices
DDD To The Rescue
Too Many Microservices
Why? What? How?
Technical Heuristics
6 Factors Of Microservices
Business Heuristics
Wardley Maps, Core Domain Patterns
Modular Monoliths
App Continuum, Service Block & Moduliths
Implementation
SocioTechnical Architecture
Cloud Native Applications
Building Patterns
3Confidential │ © 2020 VMware, Inc.
Monoliths To Microservices
DDD To The Rescue
Confidential │ ©2020 VMware, Inc. 4
Your application portfolio is a mix of things
CONTAINERS
EVENT-DRIVEN
FUNCTIONS
DATA
MICROSERVICES
Batch
MONOLITHIC
APPLICATIONS
JEE
COTS
MAINFRAME
.NET
ESB
Confidential │ © 2020 VMware, Inc.
What We See
• Complex monolithic systems built over many
years as a web of interdependent parts
• Poor developer experience and productivity
• Slow feature delivery and more bugs
• Tactical treatment of symptoms (ex. latency)
and not core problems (ex. design)
• Technology-focused “horizontal” strategies
Confidential │ © 2020 VMware, Inc.
Existing Architecture Makes Improvement Very Hard
This in particular is
not unusual,
especially for
“heritage” systems
in regulated
industries
* From Accelerate: State of DevOps 2019
6
Microservices
“In short, the microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API.
These services are built around business capabilities and independently
deployable by fully automated deployment machinery. There is a bare minimum of
centralized management of these services, which may be written in different
programming languages and use different data storage technologies.”
-Fowler, Lewis et al
7
Confidential │ © 2020 VMware, Inc. 8
Theory of Microservices
Domain Driven Design
Subdomains Represents a single, logical Domain Model
used to break up the business model logically to
understand the problem space.
Bounded Context : Language based semantic
contextual boundary where each component of the
software model has a specific meaning and does specific
things.
Ubiquitous language: The consistent language spoken
by all members of the team within the Bounded Context.
It is necessary to rigorous, stringent, exact and tight.
Entities: Something with continuity and identity.
Aggregates: Mark the scope within which invariants
have to be maintained stored. An Order Aggregate would
represent the Order, Order Items, Shipping Address, etc.
as a single transactional invariant.
Confidential │ © 2020 VMware, Inc. 9
Event Storming
CROSS FUNCTIONAL COLLABORATIVE MODELING OF BUSINESS PROCESS
Drive out the the domains, bounded contexts
& services of a system to reveal vertical slices,
trouble spots & starting points for
rearchitecting it
Make sense of a Huge mess
Making Sure We’re doing the right thing
Enables Cross Perspective Communication
Force Function for CLARITY
Reveals Bounded Contexts, Microservices,
Vertical Slices, Trouble Spots, Starting Points
Confidential │ © 2020 VMware, Inc.
Event Storming
Get the right
people in a room
with stickies and a
pen
Use stickies to roughly
define the logical flow
of a system or process Talk it through!
Discover underlying
risks and opportunities
Discover the business flow
and find ideas on where to
start - in a few hours 10
@ziobrando
Confidential │ © 2020 VMware, Inc. 11
DDD IS BROKEN
https://cloud.rohitkelapure.com/2019/10/ddd-is-broken.html
Confidential │ © 2020 VMware, Inc. 12
Identifying how the system “wants to be behave” @swiftbird68 https://www.swiftbird.us/
The Swift Method
APIs Data
Pub
/Sub
Stories UI/Ext
Domains, Pains,
BehaviorEvent Storm
Boris Model of Notional
Architecture, Mappings,
Direction
Snap-E In parallel with Boris -
API, Data, Pub/Sub
Patterns Technology and Patterns
to Implement
Backlog
The actual work that
needs to be done
Confidential │ © 2020 VMware, Inc. 13
Are Your Boundaries (BOUNDED CONTEXTS) Correct ?
Boris Exercise
Uses graph theory to model relationships
between the capabilities in a system
● Depends on live collaboration, a lot of
sticky notes and working space
● Uses Event Storming to start an exercise
that identifies system relationships
● Avoids premature solutioning
● Quickly models future system design
● As the diagram is built the team documents
findings
Service
Topic /
Queue
External
System
Async Sync
SAMPLE BORIS DIAGRAM
Confidential │ © 2020 VMware, Inc. 14
SNAP
Quickly document Boris outcomes in real-time.
Usually captured using poster-sized sticky paper
on a conference room wall, with one SNAP per
node or service depicted on Boris.
● APIs
● Data
● Pub/Sub
● External Systems/UI
● Agile Stories
● Risks
Sample SNAP
Confidential │ © 2020 VMware, Inc. 15
Confidential │ © 2020 VMware, Inc.
Incremental Modernization - Event Thinking
Reduce temporal coupling
● Instrument Monolith with Events
● Break Things apart with events
● Use domain language for events
● Build things on the outside
● Strangler Pattern
● Minimally Invasive
● Cannot rely on ordering of messages or
zero message loss
Strive for autonomy with messaging
● Messaging schemas can introduce
coupling
● Sagas handle Eventual Consistency
● What operations are idempotent ?
● Handle duplicate messages with Outbox
pattern
● Messaging schemas can introduce
coupling
● Avoid Kafka as an ESB anti-pattern
16
Confidential │ © 2020 VMware, Inc.
Many Meanings of Event Driven Architecture (EDA)
Event Carried State Transfer
● Update clients in a way that they
don't need to contact the source
system
● Receiver has to maintaining all
the state
● Decoupling
● Reduced load on supplier
● Replicated Data
● Eventual Consistency
Event Sourcing
● Every state change of the system
is recorded as an event
● Event store becomes the source
of truth, and the system state is
derived from it
● Audit, Debugging, Historic State,
Alternative State, Memory Image
● Unfamiliar, External Systems,
Event Schema, Identifiers,
Asynchrony, Versioning
Event Notification
● Send event messages to notify
other systems of a change in its
domain
● Event carries ID and link back to
the sender for more info
● Decouples sender from receiver
● No Statement of overall behavior
Martin Fowler: https://www.youtube.com/watch?v=STKCRSUsyP0
17
Confidential │ © 2020 VMware, Inc.
Lessons Learned From Real World Modernizations
Balancing bounded context granularity can be challenging.
Powerpoint is dead, long live the Stickies
Choose the right style of Event Driven Architecture
Correlation strategy and Lock Strategy get complicated.
Complex work-flows require Sagas & Process Managers.
Aggregate <= sizeof(Microservice) <= Bounded Context
DIY Event Sourcing systems are hard. Too much time spent in toil.
Leverage Consumer driven Contracts to establish cschemas across
Bounded Contexts for messages
Delay making frameworks
● Event Sourcing is hard
without a supporting event
persistence framework or
library
● Pick a framework based on
the guidance before
beginning
● Challenge preconceived
architectural decisions
● Set goals with measurable
metrics.
● Be wary of the Hourglass
effect
18
Confidential │ © 2020 VMware, Inc.
Too Many Microservices
Why? What? How?
19
Confidential │ © 2020 VMware, Inc. 20
Microservices has now
become DEFAULT
Cloud Native and Serverless
have become buzz words
Towards A New Serverless
World
https://www.swiftbird.us/post/towards-a-new-ser
verless-world
Education & Enablement
Should That Be A
Microservices Workshop
Modular Monoliths / App
Continuum
https://www.infoq.com/news/2020/04/microservi
ces-back-again/
Microservices Sprawl -
Leads to POOR
Development & Testing
experience
Poor definition and
understanding of service &
Context Boundaries
Challenges with
Observability and
Heisenbugs
To Microservices and Back Again
Why Go Back to a Monolith ?
HOW? WHY ? WHAT?
21Confidential │ © 2020 VMware, Inc.
Technical Heuristics
Should that be a Microservice? Keep These
Factors in Mind
Please Microservice Responsibly
Confidential │ © 2020 VMware, Inc. 22
Technical Heuristics
Multiple Rates Of
Change
Value Streams
Independent Life
Cycles
Speed Matters
Independent
Scalability
Efficiently allocate
Confidential │ © 2020 VMware, Inc. 23
Technical Heuristics
Simplify
Interactions with
External
Dependencies
Facades, ACL
Isolated Failure
Failure Domains
Freedom to
Choose the Right
Tech
Polyglot
Confidential │ © 2020 VMware, Inc. 24
Microservices - Is the Price Right Workshop ?
25Confidential │ © 2020 VMware, Inc.
Business Heuristics
Wardley Maps To The Rescue
Confidential │ © 2020 VMware, Inc. 26
Core Domain -An area of the domain with the
opportunity for high business differentiation. This
represents a compelling ROI. Implementation
must has at-least a reasonable level of model
complexity.
Supporting Domains are business necessities,
they contain business concepts related to the
domain, but there is limited ROI.
Generic Domains represent concepts not-unique
to our domain, such as user identity, sending
emails, taking payments — we should consider
buying SaaS or using open source instead of
building Generic Domains.
Business Heuristics
Context Distillation Invented by Nick Tune @ntcoding
Confidential │ © 2020 VMware, Inc. 27
Where is my Core Domain ?
Confidential │ © 2020 VMware, Inc. 28
Understand the Business Capability Value Chain Of Your Product
Identify Patterns of Genesis, Product, Utility and Commodity
Confidential │ © 2020 VMware, Inc. 29
What are Wardley Maps? Using Miro for Wardley Mapping
Wardley Maps
30Confidential │ © 2020 VMware, Inc.
Simon Brown
“If you can't build a monolith,
what makes you think
microservices are the
answer?”
http://www.codingthearchitecture.com
/2014/07/06/distributed_big_balls_of_m
ud.html Martin Fowler - Monoliths First
Confidential │ © 2020 VMware, Inc. 31
Sometimes The Right Answer is a Modular Monolith
Confidential │ © 2020 VMware, Inc. 32
Confidential │ © 2020 VMware, Inc. 33
Moduliths: A playground to build technology supporting
the development of modular monolithic (modulithic)
Java applications. Repo
Service blocks are cloud-native applications that share
many characteristics with microservices. The key
difference with microservices is that a service block is a
self-contained system that has multiple independently
deployable units—mixing together serverless functions
with containers.
App Continuum: Evolution of a distributed system
starting from a single application and evolving into
several applications and services. Link
Options - Idiomatic Approaches to Modular Monoliths
Moduliths , Service Blocks & App Continuum
34Confidential │ © 2020 VMware, Inc.
Implementation
Sociotechnical Architecture
Confidential │ © 2020 VMware, Inc. 35
Team Topologies - Flow Based Teams
Interaction Modes for the Four Fundamental Team Topologies - Skelton & Pais
35
Confidential │ © 2020 VMware, Inc. 36
Coupled - End To End Stream Teams
Drawbacks:
● Teams must understand how
to operate in multiple
domains
● Teams can’t confidently
make changes to shared
codebases without
committee approval
● Cross-functional apps don’t
have clear owners to
improve them
● Adding a new team requires
everyone to take on
additional context (the full
ecosystem of domains)
Teams Are Too Coupled During Development
Confidential │ © 2020 VMware, Inc. 37
Component Based Teams
Improving Team Independence
Impact:
● Teams can confidently make
changes to and release! code
they own at any time
● Cross-functional apps have
owners to drive improvements
● There’s a clear path to scaling
teams horizontally without
drastic scope change for
existing teams
● Communication between
teams happens between
well-defined public contracts
instead of in-the-weeds
implementation detail
Confidential │ © 2020 VMware, Inc.
Building Patterns
Cloud Native
Applications
Confidential │ © 2020 VMware, Inc.
A Paved Path To Cloud Native
start.spring.io Gaurdrails
● Spring Cloud Contracts
● Reference Extensible Pipelines
● Security Scanning - Libraries & Code
● Performance Latency Budget Checks
● ArchUnit - Dependency Check
● ErrorProne/Checkstyle - Static Analysis
● CI separate from CD
● Feature Flags
● Coexistance of multiple versions
● Observability - Distributed Traces, Metrics &
Structured Logging
● 15 Factor compliance (API, State, Startup,
External Services)
● Data & App Resiliency safegaurds
39
Confidential │ © 2020 VMware, Inc. 40
What Role Do Containers Play ?
Rerence Architecture - @asaikali
Confidential │ © 2020 VMware, Inc. 41
Big Picture Overview
Micro Frontends
Each vertically
arranged teams
produces features
in the form of
pages or
fragments.
Use techniques
like SSI or Web
Components to
integrate then
into an
assembled page
https://www.manning.
com/books/micro-fron
tends-in-action
Confidential │ © 2020 VMware, Inc. 42
https://cloud.rohitkelapure.com/2018/11/decomposing-ui.html
43Confidential │ © 2020 VMware, Inc.
Conclusion
What Next ?
Confidential │ © 2020 VMware, Inc.
Technical + Business + Social Heuristics
Bringing It All Together
44
Thank You
Confidential │ © 2020 VMware, Inc.

Más contenido relacionado

La actualidad más candente

Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018
Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018
Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018Amazon Web Services
 
AWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesAWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesTobyWilman
 
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...Amazon Web Services
 
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...Amazon Web Services
 
Network Security and Access Control within AWS
Network Security and Access Control within AWS Network Security and Access Control within AWS
Network Security and Access Control within AWS Amazon Web Services
 
AWS Partner Data Analytics on AWS_Handout.pdf
AWS Partner Data Analytics on AWS_Handout.pdfAWS Partner Data Analytics on AWS_Handout.pdf
AWS Partner Data Analytics on AWS_Handout.pdfSrinjoySaha12
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven ArchitectureLourens Naudé
 
API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...SlideTeam
 
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...Amazon Web Services
 
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...Edureka!
 
Building and Deploying .Net Applications on AWS
Building and Deploying .Net Applications on AWSBuilding and Deploying .Net Applications on AWS
Building and Deploying .Net Applications on AWSAmazon Web Services
 
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...Amazon Web Services
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...Amazon Web Services
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 

La actualidad más candente (20)

Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018
Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018
Best Practices for Securing an Amazon VPC (NET318) - AWS re:Invent 2018
 
AWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesAWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - Slides
 
Setting Up a Landing Zone
Setting Up a Landing ZoneSetting Up a Landing Zone
Setting Up a Landing Zone
 
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...
A DIY Guide to Runbooks, Security Incident Reports, & Incident Response: AWS ...
 
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
FinOps: A Culture Transformation to Bring DevOps, Finance and the Business To...
 
Microservices
MicroservicesMicroservices
Microservices
 
Network Security and Access Control within AWS
Network Security and Access Control within AWS Network Security and Access Control within AWS
Network Security and Access Control within AWS
 
AWS Partner Data Analytics on AWS_Handout.pdf
AWS Partner Data Analytics on AWS_Handout.pdfAWS Partner Data Analytics on AWS_Handout.pdf
AWS Partner Data Analytics on AWS_Handout.pdf
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...
 
SaaS on AWS - ISV challenges
SaaS on AWS - ISV challengesSaaS on AWS - ISV challenges
SaaS on AWS - ISV challenges
 
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
AWS re:Invent 2016: Hybrid Architecture Design: Connecting Your On-Premises W...
 
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...
AWS Certification | AWS Architect Certification Training | AWS Tutorial | AWS...
 
Building and Deploying .Net Applications on AWS
Building and Deploying .Net Applications on AWSBuilding and Deploying .Net Applications on AWS
Building and Deploying .Net Applications on AWS
 
AWS Business Essentials
AWS Business EssentialsAWS Business Essentials
AWS Business Essentials
 
Introduction to Serverless
Introduction to ServerlessIntroduction to Serverless
Introduction to Serverless
 
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
AWS re:Invent 2016: Workshop: Secure Your Web Application with AWS WAF and Am...
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
 
AWS 101
AWS 101AWS 101
AWS 101
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 

Similar a External should that be a microservice

Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?Rohit Kelapure
 
BMC Discovery with new Multi-Cloud Function
BMC Discovery with new Multi-Cloud FunctionBMC Discovery with new Multi-Cloud Function
BMC Discovery with new Multi-Cloud FunctionBill Spinner
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the CloudBen Saunders
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020VMware Tanzu
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSDevOps.com
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsThousandEyes
 
Why Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationWhy Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationVMware Tanzu
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Samy Fodil
 
Startup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo PlatformsStartup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo PlatformsThe Digital Insurer
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesPaul Czarkowski
 
Do more clouds = better scalability, availability, flexibility
Do more clouds = better scalability, availability, flexibility Do more clouds = better scalability, availability, flexibility
Do more clouds = better scalability, availability, flexibility NuoDB
 
Patterns of evolution from monolith to microservices
Patterns of evolution from monolith to microservicesPatterns of evolution from monolith to microservices
Patterns of evolution from monolith to microservicesKarina Mora
 
Zero Dollar Migration Program
Zero Dollar Migration ProgramZero Dollar Migration Program
Zero Dollar Migration ProgramVMware Tanzu
 
OPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesOPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesVMware Tanzu
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patternsRiccardo Cardin
 

Similar a External should that be a microservice (20)

Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
 
BMC Discovery with new Multi-Cloud Function
BMC Discovery with new Multi-Cloud FunctionBMC Discovery with new Multi-Cloud Function
BMC Discovery with new Multi-Cloud Function
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
 
Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020Accelerate Application Migration - August 5, 2020
Accelerate Application Migration - August 5, 2020
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
Wavefront presentation-May-2019
Wavefront presentation-May-2019Wavefront presentation-May-2019
Wavefront presentation-May-2019
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Why Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationWhy Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware Modernization
 
VAS - VMware CMP
VAS - VMware CMPVAS - VMware CMP
VAS - VMware CMP
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
 
Enterprise serverless
Enterprise serverlessEnterprise serverless
Enterprise serverless
 
Startup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo PlatformsStartup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo Platforms
 
Application Modernization with PKS / Kubernetes
Application Modernization with PKS / KubernetesApplication Modernization with PKS / Kubernetes
Application Modernization with PKS / Kubernetes
 
Do more clouds = better scalability, availability, flexibility
Do more clouds = better scalability, availability, flexibility Do more clouds = better scalability, availability, flexibility
Do more clouds = better scalability, availability, flexibility
 
Patterns of evolution from monolith to microservices
Patterns of evolution from monolith to microservicesPatterns of evolution from monolith to microservices
Patterns of evolution from monolith to microservices
 
Zero Dollar Migration Program
Zero Dollar Migration ProgramZero Dollar Migration Program
Zero Dollar Migration Program
 
OPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu SlidesOPS Executive insights Webinar - Tanzu Slides
OPS Executive insights Webinar - Tanzu Slides
 
Software architecture patterns
Software architecture patternsSoftware architecture patterns
Software architecture patterns
 

Más de Rohit Kelapure

API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice? Rohit Kelapure
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformRohit Kelapure
 
SpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesSpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesRohit Kelapure
 
Migrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixMigrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixRohit Kelapure
 
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Rohit Kelapure
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix Rohit Kelapure
 
Liberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steLiberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steRohit Kelapure
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerRohit Kelapure
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application serverRohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-finalRohit Kelapure
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-finalRohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-finalRohit Kelapure
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshopRohit Kelapure
 
Performance tuningtoolkitintroduction
Performance tuningtoolkitintroductionPerformance tuningtoolkitintroduction
Performance tuningtoolkitintroductionRohit Kelapure
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center DetailsRohit Kelapure
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework Rohit Kelapure
 
Debugging java deployments_2
Debugging java deployments_2Debugging java deployments_2
Debugging java deployments_2Rohit Kelapure
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server Rohit Kelapure
 

Más de Rohit Kelapure (20)

API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
 
SpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesSpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutes
 
Migrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixMigrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMix
 
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
 
Liberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steLiberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_ste
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal Server
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application server
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
 
Performance tuningtoolkitintroduction
Performance tuningtoolkitintroductionPerformance tuningtoolkitintroduction
Performance tuningtoolkitintroduction
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center Details
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Debugging java deployments_2
Debugging java deployments_2Debugging java deployments_2
Debugging java deployments_2
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
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
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[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...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 

External should that be a microservice

  • 1. Confidential │ © 2020 VMware, Inc. Should That Be a Microservice ? Journey From Monoliths to Microservices and Back Rohit Kelapure @rkela Principal Solution Architect @ VMware Pivotal Labs June 2020 rkelapure@vmware.com https://cloud.rohitkelapure.com
  • 2. Confidential │ © 2020 VMware, Inc. Agenda 2 Monoliths To Microservices DDD To The Rescue Too Many Microservices Why? What? How? Technical Heuristics 6 Factors Of Microservices Business Heuristics Wardley Maps, Core Domain Patterns Modular Monoliths App Continuum, Service Block & Moduliths Implementation SocioTechnical Architecture Cloud Native Applications Building Patterns
  • 3. 3Confidential │ © 2020 VMware, Inc. Monoliths To Microservices DDD To The Rescue
  • 4. Confidential │ ©2020 VMware, Inc. 4 Your application portfolio is a mix of things CONTAINERS EVENT-DRIVEN FUNCTIONS DATA MICROSERVICES Batch MONOLITHIC APPLICATIONS JEE COTS MAINFRAME .NET ESB
  • 5. Confidential │ © 2020 VMware, Inc. What We See • Complex monolithic systems built over many years as a web of interdependent parts • Poor developer experience and productivity • Slow feature delivery and more bugs • Tactical treatment of symptoms (ex. latency) and not core problems (ex. design) • Technology-focused “horizontal” strategies
  • 6. Confidential │ © 2020 VMware, Inc. Existing Architecture Makes Improvement Very Hard This in particular is not unusual, especially for “heritage” systems in regulated industries * From Accelerate: State of DevOps 2019 6
  • 7. Microservices “In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.” -Fowler, Lewis et al 7
  • 8. Confidential │ © 2020 VMware, Inc. 8 Theory of Microservices Domain Driven Design Subdomains Represents a single, logical Domain Model used to break up the business model logically to understand the problem space. Bounded Context : Language based semantic contextual boundary where each component of the software model has a specific meaning and does specific things. Ubiquitous language: The consistent language spoken by all members of the team within the Bounded Context. It is necessary to rigorous, stringent, exact and tight. Entities: Something with continuity and identity. Aggregates: Mark the scope within which invariants have to be maintained stored. An Order Aggregate would represent the Order, Order Items, Shipping Address, etc. as a single transactional invariant.
  • 9. Confidential │ © 2020 VMware, Inc. 9 Event Storming CROSS FUNCTIONAL COLLABORATIVE MODELING OF BUSINESS PROCESS Drive out the the domains, bounded contexts & services of a system to reveal vertical slices, trouble spots & starting points for rearchitecting it Make sense of a Huge mess Making Sure We’re doing the right thing Enables Cross Perspective Communication Force Function for CLARITY Reveals Bounded Contexts, Microservices, Vertical Slices, Trouble Spots, Starting Points
  • 10. Confidential │ © 2020 VMware, Inc. Event Storming Get the right people in a room with stickies and a pen Use stickies to roughly define the logical flow of a system or process Talk it through! Discover underlying risks and opportunities Discover the business flow and find ideas on where to start - in a few hours 10 @ziobrando
  • 11. Confidential │ © 2020 VMware, Inc. 11 DDD IS BROKEN https://cloud.rohitkelapure.com/2019/10/ddd-is-broken.html
  • 12. Confidential │ © 2020 VMware, Inc. 12 Identifying how the system “wants to be behave” @swiftbird68 https://www.swiftbird.us/ The Swift Method APIs Data Pub /Sub Stories UI/Ext Domains, Pains, BehaviorEvent Storm Boris Model of Notional Architecture, Mappings, Direction Snap-E In parallel with Boris - API, Data, Pub/Sub Patterns Technology and Patterns to Implement Backlog The actual work that needs to be done
  • 13. Confidential │ © 2020 VMware, Inc. 13 Are Your Boundaries (BOUNDED CONTEXTS) Correct ?
  • 14. Boris Exercise Uses graph theory to model relationships between the capabilities in a system ● Depends on live collaboration, a lot of sticky notes and working space ● Uses Event Storming to start an exercise that identifies system relationships ● Avoids premature solutioning ● Quickly models future system design ● As the diagram is built the team documents findings Service Topic / Queue External System Async Sync SAMPLE BORIS DIAGRAM Confidential │ © 2020 VMware, Inc. 14
  • 15. SNAP Quickly document Boris outcomes in real-time. Usually captured using poster-sized sticky paper on a conference room wall, with one SNAP per node or service depicted on Boris. ● APIs ● Data ● Pub/Sub ● External Systems/UI ● Agile Stories ● Risks Sample SNAP Confidential │ © 2020 VMware, Inc. 15
  • 16. Confidential │ © 2020 VMware, Inc. Incremental Modernization - Event Thinking Reduce temporal coupling ● Instrument Monolith with Events ● Break Things apart with events ● Use domain language for events ● Build things on the outside ● Strangler Pattern ● Minimally Invasive ● Cannot rely on ordering of messages or zero message loss Strive for autonomy with messaging ● Messaging schemas can introduce coupling ● Sagas handle Eventual Consistency ● What operations are idempotent ? ● Handle duplicate messages with Outbox pattern ● Messaging schemas can introduce coupling ● Avoid Kafka as an ESB anti-pattern 16
  • 17. Confidential │ © 2020 VMware, Inc. Many Meanings of Event Driven Architecture (EDA) Event Carried State Transfer ● Update clients in a way that they don't need to contact the source system ● Receiver has to maintaining all the state ● Decoupling ● Reduced load on supplier ● Replicated Data ● Eventual Consistency Event Sourcing ● Every state change of the system is recorded as an event ● Event store becomes the source of truth, and the system state is derived from it ● Audit, Debugging, Historic State, Alternative State, Memory Image ● Unfamiliar, External Systems, Event Schema, Identifiers, Asynchrony, Versioning Event Notification ● Send event messages to notify other systems of a change in its domain ● Event carries ID and link back to the sender for more info ● Decouples sender from receiver ● No Statement of overall behavior Martin Fowler: https://www.youtube.com/watch?v=STKCRSUsyP0 17
  • 18. Confidential │ © 2020 VMware, Inc. Lessons Learned From Real World Modernizations Balancing bounded context granularity can be challenging. Powerpoint is dead, long live the Stickies Choose the right style of Event Driven Architecture Correlation strategy and Lock Strategy get complicated. Complex work-flows require Sagas & Process Managers. Aggregate <= sizeof(Microservice) <= Bounded Context DIY Event Sourcing systems are hard. Too much time spent in toil. Leverage Consumer driven Contracts to establish cschemas across Bounded Contexts for messages Delay making frameworks ● Event Sourcing is hard without a supporting event persistence framework or library ● Pick a framework based on the guidance before beginning ● Challenge preconceived architectural decisions ● Set goals with measurable metrics. ● Be wary of the Hourglass effect 18
  • 19. Confidential │ © 2020 VMware, Inc. Too Many Microservices Why? What? How? 19
  • 20. Confidential │ © 2020 VMware, Inc. 20 Microservices has now become DEFAULT Cloud Native and Serverless have become buzz words Towards A New Serverless World https://www.swiftbird.us/post/towards-a-new-ser verless-world Education & Enablement Should That Be A Microservices Workshop Modular Monoliths / App Continuum https://www.infoq.com/news/2020/04/microservi ces-back-again/ Microservices Sprawl - Leads to POOR Development & Testing experience Poor definition and understanding of service & Context Boundaries Challenges with Observability and Heisenbugs To Microservices and Back Again Why Go Back to a Monolith ? HOW? WHY ? WHAT?
  • 21. 21Confidential │ © 2020 VMware, Inc. Technical Heuristics Should that be a Microservice? Keep These Factors in Mind Please Microservice Responsibly
  • 22. Confidential │ © 2020 VMware, Inc. 22 Technical Heuristics Multiple Rates Of Change Value Streams Independent Life Cycles Speed Matters Independent Scalability Efficiently allocate
  • 23. Confidential │ © 2020 VMware, Inc. 23 Technical Heuristics Simplify Interactions with External Dependencies Facades, ACL Isolated Failure Failure Domains Freedom to Choose the Right Tech Polyglot
  • 24. Confidential │ © 2020 VMware, Inc. 24 Microservices - Is the Price Right Workshop ?
  • 25. 25Confidential │ © 2020 VMware, Inc. Business Heuristics Wardley Maps To The Rescue
  • 26. Confidential │ © 2020 VMware, Inc. 26 Core Domain -An area of the domain with the opportunity for high business differentiation. This represents a compelling ROI. Implementation must has at-least a reasonable level of model complexity. Supporting Domains are business necessities, they contain business concepts related to the domain, but there is limited ROI. Generic Domains represent concepts not-unique to our domain, such as user identity, sending emails, taking payments — we should consider buying SaaS or using open source instead of building Generic Domains. Business Heuristics Context Distillation Invented by Nick Tune @ntcoding
  • 27. Confidential │ © 2020 VMware, Inc. 27 Where is my Core Domain ?
  • 28. Confidential │ © 2020 VMware, Inc. 28 Understand the Business Capability Value Chain Of Your Product Identify Patterns of Genesis, Product, Utility and Commodity
  • 29. Confidential │ © 2020 VMware, Inc. 29 What are Wardley Maps? Using Miro for Wardley Mapping Wardley Maps
  • 30. 30Confidential │ © 2020 VMware, Inc. Simon Brown “If you can't build a monolith, what makes you think microservices are the answer?” http://www.codingthearchitecture.com /2014/07/06/distributed_big_balls_of_m ud.html Martin Fowler - Monoliths First
  • 31. Confidential │ © 2020 VMware, Inc. 31 Sometimes The Right Answer is a Modular Monolith
  • 32. Confidential │ © 2020 VMware, Inc. 32
  • 33. Confidential │ © 2020 VMware, Inc. 33 Moduliths: A playground to build technology supporting the development of modular monolithic (modulithic) Java applications. Repo Service blocks are cloud-native applications that share many characteristics with microservices. The key difference with microservices is that a service block is a self-contained system that has multiple independently deployable units—mixing together serverless functions with containers. App Continuum: Evolution of a distributed system starting from a single application and evolving into several applications and services. Link Options - Idiomatic Approaches to Modular Monoliths Moduliths , Service Blocks & App Continuum
  • 34. 34Confidential │ © 2020 VMware, Inc. Implementation Sociotechnical Architecture
  • 35. Confidential │ © 2020 VMware, Inc. 35 Team Topologies - Flow Based Teams Interaction Modes for the Four Fundamental Team Topologies - Skelton & Pais 35
  • 36. Confidential │ © 2020 VMware, Inc. 36 Coupled - End To End Stream Teams Drawbacks: ● Teams must understand how to operate in multiple domains ● Teams can’t confidently make changes to shared codebases without committee approval ● Cross-functional apps don’t have clear owners to improve them ● Adding a new team requires everyone to take on additional context (the full ecosystem of domains) Teams Are Too Coupled During Development
  • 37. Confidential │ © 2020 VMware, Inc. 37 Component Based Teams Improving Team Independence Impact: ● Teams can confidently make changes to and release! code they own at any time ● Cross-functional apps have owners to drive improvements ● There’s a clear path to scaling teams horizontally without drastic scope change for existing teams ● Communication between teams happens between well-defined public contracts instead of in-the-weeds implementation detail
  • 38. Confidential │ © 2020 VMware, Inc. Building Patterns Cloud Native Applications
  • 39. Confidential │ © 2020 VMware, Inc. A Paved Path To Cloud Native start.spring.io Gaurdrails ● Spring Cloud Contracts ● Reference Extensible Pipelines ● Security Scanning - Libraries & Code ● Performance Latency Budget Checks ● ArchUnit - Dependency Check ● ErrorProne/Checkstyle - Static Analysis ● CI separate from CD ● Feature Flags ● Coexistance of multiple versions ● Observability - Distributed Traces, Metrics & Structured Logging ● 15 Factor compliance (API, State, Startup, External Services) ● Data & App Resiliency safegaurds 39
  • 40. Confidential │ © 2020 VMware, Inc. 40 What Role Do Containers Play ? Rerence Architecture - @asaikali
  • 41. Confidential │ © 2020 VMware, Inc. 41 Big Picture Overview Micro Frontends Each vertically arranged teams produces features in the form of pages or fragments. Use techniques like SSI or Web Components to integrate then into an assembled page https://www.manning. com/books/micro-fron tends-in-action
  • 42. Confidential │ © 2020 VMware, Inc. 42 https://cloud.rohitkelapure.com/2018/11/decomposing-ui.html
  • 43. 43Confidential │ © 2020 VMware, Inc. Conclusion What Next ?
  • 44. Confidential │ © 2020 VMware, Inc. Technical + Business + Social Heuristics Bringing It All Together 44
  • 45. Thank You Confidential │ © 2020 VMware, Inc.