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.

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 │ ©2020VMware, 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, themicroservice 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 graphtheory 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 Borisoutcomes 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.