SlideShare a Scribd company logo
1 of 48
Download to read offline
Microservices Lessons Learned
CTO at Just Software
@JustSocialApps
Susanne Kaiser
Independent Tech Consultant
@suksr
@suksr#VoxxedMicroservices
Each Journey is Different
“People try to copy Netflix,
but they can only copy what they see.
They copy the results, not the process.”
Adrian Cockcroft, AWS VP Cloud Architect,
former Netflix Chief Cloud Architect
@suksr#VoxxedMicroservices
Each Journey is Different
Team
Structure Skillset
Size
Journey
Affecting Circumstances
@suksr#VoxxedMicroservices
Each Journey is Different
Team
Structure Skillset
Size
Journey
Legacy
Maintenance
effort
Runtime
environment
Affecting Circumstances
@suksr#VoxxedMicroservices
Each Journey is Different
Team
Structure Skillset
Size
Journey
Legacy
Maintenance
effort
Runtime
environment
Strategy
New Features Timeline / Milestones
Affecting Circumstances
@suksr#VoxxedMicroservices
Background
JUST DRIVE JUST CONNECT JUST LIST JUST WIKI
JUST PEOPLE JUST NEWS
JUST SOCIAL
@suksr#VoxxedMicroservices
One team
Single Unit
One collaboration product
One technology stack
At the Beginning
A Monolith in Every Aspect
@suksr#VoxxedMicroservices
Background
After an Evolving Time
@suksr#VoxxedMicroservices
Background
After an Evolving Time
Productivity suffered
@suksr#VoxxedMicroservices
Background
After an Evolving Time
Productivity suffered
Usability/UX suffered
@suksr#VoxxedMicroservices
Background
After an Evolving Time
Productivity suffered
Usability/UX suffered
New features released slowly
@suksr#VoxxedMicroservices
JUST DRIVE JUST CONNECT JUST LIST JUST WIKI
JUST PEOPLE JUST NEWS
JUST SOCIAL
Background
Separate Collaboration Apps
@suksr#VoxxedMicroservices
Background
Separate, Autonomous Teams
Well-defined responsibilites
@suksr#VoxxedMicroservices
Background
In The Long Run
Organisation Product Software
@suksr#VoxxedMicroservices
Background
Our Motivation for Microservices
Autonomous
teams
Develop independently Deploy independently
Work at different parts
independently
Scale independently
At different
speed
@suksr#VoxxedMicroservices
Identify Bounded Contexts
Decomposition Strategy
High cohesion within a service
Loose coupling between services
@suksr#VoxxedMicroservices
Identify Bounded Contexts
Decomposition Strategy
High cohesion within a service
Loose coupling between services
Bounded Context
Related behaviour
Semantic boundary
around domain model
Well-defined
business function
@suksr#VoxxedMicroservices
Identify Bounded Contexts
Decomposition Strategy
JUST DRIVE JUST CONNECT JUST LIST
JUST WIKIJUST PEOPLE JUST NEWS
Bounded Contexts
@suksr#VoxxedMicroservices
JUST DRIVE
Decomposition Strategy
Co-Existing Service From Scratch
@suksr#VoxxedMicroservices
JUST DRIVE
Decomposition Strategy
Co-Existing Service From Scratch
JUST PEOPLE
@suksr#VoxxedMicroservices
Decomposition Strategy
Co-Existing Service From Scratch
owns document
state
REST API
Application-Service
Domain-Model
DB Adapter
Monolith
JUST DRIVE
@suksr#VoxxedMicroservices
Decomposition Strategy
Co-Existing Service From Scratch
owns document
state
owns profile
state
document
created by
author
Monolith
REST API
Application-Service
Domain-Model
DB Adapter
@suksr#VoxxedMicroservices
owns document
state
owns profile
state Events
local copy
of author
Message Broker
Decomposition Strategy
Co-Existing Service From Scratch
REST API
Application-Service
Domain-Model
DB Adapter
Message Broker
Adapter
Monolith
publish
subscribe
@suksr#VoxxedMicroservices
DB Adapter
Message Broker
Adapter
Application-Service
Domain-Model
REST API
Domain-Event
Good approach in general,
but we did too many steps at once
New UI
New Business Logic
New Data Structure
=> Not optimal to start with
vs.
Decomposition Strategy
Co-Existing Service From Scratch
@suksr#VoxxedMicroservices
Incremental Top Down
Extracting Web App
Decomposition Strategy
Monolith
REST API
REST API
REST Client
@suksr#VoxxedMicroservices
Monolith
REST API
Extracting Business Logic
Application-Service
Domain-Model
DB Adapter
REST Client
Incremental Top Down
Decomposition Strategy
Monolith uses
extracted business logic
@suksr#VoxxedMicroservices
Monolith
Splitting Data Storage
Incremental Top Down
Decomposition Strategy
REST API
Application-Service
Domain-Model
DB Adapter
Events
Message Broker
Message Broker
Adapter
publish
subscribe
@suksr#VoxxedMicroservices
Which One First?
vs.
Easy to Extract
Changing Frequently
Different Resource
Consumption
Early experiences w/ Microservices
Greatest benefit
after extraction
Decomposition Strategy
@suksr#VoxxedMicroservices
Cross-Cutting Concerns
Authorization
JUST DRIVE JUST WIKI
Fine-grained authorization
Inter-service dependency
@suksr#VoxxedMicroservices
Cross-Cutting Concerns
I have a new service
that needs authorization. Where is
the authz service I could use?
Not there, yet. Sorry!
Ok, then I am putting my code
to the place where authz handling
exists … to the monolith.
Feeding the monolith
Re-implementing authz w/ every
new service
Ok, then I am implementing authz
in my local service.
Authorization
@suksr#VoxxedMicroservices
Cross-Cutting Concerns
Handle Them Early
Feeding the monolith
Re-implementing authz w/ every
new service
Handle Cross-Cutting Concerns Early
@suksr#VoxxedMicroservices
Cross-Cutting Concerns
Avoid A Distributed Monolith
Authz Service
@suksr#VoxxedMicroservices
Cross-Cutting Concerns
Avoid A Distributed Monolith
Authz Servicetranslate
One stable
common contract
translate
translate
@suksr#VoxxedMicroservices
Service Interaction
Request-Driven / Event-Driven
command
query Events
Message Broker
publish subscribe
command
query
Request-Driven Hybrid
Events
Message Broker
publish subscribe
Event-Driven
@suksr#VoxxedMicroservices
How To Manage Shared Data?
Hybrid Model
Message Broker
REST API
Remote query
directly to source
Events for notification
@suksr#VoxxedMicroservices
Event Driven State Transfer
Message Broker
Local copy of
profile data
ProfileUpdatedEvent
How To Manage Shared Data?
Events for data duplication
@suksr#VoxxedMicroservices
Source Of Truth
How To Manage Shared Data?
Internal source of truth
External source of truth
Multiple sources of truth Single source of truth
Events as first-class citizens
“Traditional” Event-Driven System Event Store
Event Log
@suksr#VoxxedMicroservices
Messaging System Storage System Streaming Platform
Message Broker
Event Log Event Stream
@suksr#VoxxedMicroservices
How To Manage Shared Data?
Kafka Streams
Unbounded, ordered sequence
of data records
Key-value pairContinuously
updating
@suksr#VoxxedMicroservices
How To Manage Shared Data?
Kafka Streams
Kafka Topic
Lightweight embedded state store (disk-backed)
Service
Running in the same process
of Microservice
Loaded on startup of
Microservice
Streams make data available wherever it’s needed
@suksr#VoxxedMicroservices
How To Manage Shared Data?
Kafka Streams
Kafka Streams API
join
filter
group by
aggregate
etc.
Changelog of state changes
KStream KTable
Snapshot of the latest
value for each key
Kafka Stream-Table Duality
(key1, value1), (key2, value2), (key 1, value 3) key1 value3→
key2 value2→
@suksr#VoxxedMicroservices
How To Manage Data?
Materialized Views w/ Kafka Streams
Kafka
Table for enrichment
Document Service
Stream
REST API
Materialized View as State Store
Stream-Table-Join
@suksr#VoxxedMicroservices
How To Manage Shared Data?
Event Streams as a Shared Source of Truth
Events for notification Events for data duplication
● Simple integration
● Remote query => increasing coupling
● Eliminating remote query =>
better decoupling
● Local copy => better autonomy
● Duplicating effort to maintain
local dataset
● Simple integration
● Remote query => increasing coupling
Event streams as a
shared source of truth
● Eliminating local copy => reduces
duplicating effort
● Pushes data to where it’s needed
● Increases pluggability
● Low barrier to entry for new
service
@suksr#VoxxedMicroservices
Hardware
Data Store
API
API-Gateway Service Discovery Load-Balancer
Message Broker
Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker
Config-Mngmt.
Monitoring Log Aggreation Metrics Distributed
Tracing
Health Checks
SCM
O/SVirtualization Container Runtime
Checkout TestBuild
CI/CD Pipeline
Deploy
µService
Backup Recovery
@suksr#VoxxedMicroservices
Infrastructure Complexities
Build the things that differentiate you
Offload the things that don’t
@suksr#VoxxedMicroservices
Hardware
O/S
Virtualization
Container
Runtime
Managed Services
O/S
Orchestration
Data Store
µService
Offload by getting common
building blocks managed
by cloud providers
Start small
Lessons Learned
Handle cross-cutting concerns early Avoid a distributed monolith
Be aware of affecting circumstances
&
Each journey is different :)
Design event-driven & consider
event streams as shared source of truth
@suksr#VoxxedMicroservices
Consider managed services to offload
infrastructure complexities
Susanne Kaiser
Independent Tech Consultant
@suksr
CTO at Just Software
@JustSocialApps

More Related Content

What's hot

Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...Tom Kerkhove
 
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...Codit
 
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...Tom Kerkhove
 
Introduction to Promitor
Introduction to PromitorIntroduction to Promitor
Introduction to PromitorTom Kerkhove
 
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...Tom Kerkhove
 
NASA Goddard: Head in the Clouds
NASA Goddard: Head in the CloudsNASA Goddard: Head in the Clouds
NASA Goddard: Head in the CloudsAmazon Web Services
 
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andi
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andiDynatrace: DevOps, shift-left & self-healing a performance clinic with andi
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andiDynatrace
 
Global Azure Virtual - Application Autoscaling with KEDA
Global Azure Virtual - Application Autoscaling with KEDAGlobal Azure Virtual - Application Autoscaling with KEDA
Global Azure Virtual - Application Autoscaling with KEDATom Kerkhove
 
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESS
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESSHOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESS
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESSMadan Ganesh Velayudham
 
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...Tom Kerkhove
 
Azure vs Aws vs Google Cloud Providers
Azure vs Aws vs Google Cloud ProvidersAzure vs Aws vs Google Cloud Providers
Azure vs Aws vs Google Cloud ProvidersSrikanth Vasireddy
 
AWSome Day Malaysia 2015 Keynote
AWSome Day Malaysia 2015 KeynoteAWSome Day Malaysia 2015 Keynote
AWSome Day Malaysia 2015 KeynoteHwee Bee Tan
 
Stay Out of the News by Staying in the Cloud - jason cradit
Stay Out of the News by Staying in the Cloud - jason craditStay Out of the News by Staying in the Cloud - jason cradit
Stay Out of the News by Staying in the Cloud - jason craditAmazon Web Services
 
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...Amazon Web Services
 
開幕致詞:新創轉型契機
開幕致詞:新創轉型契機開幕致詞:新創轉型契機
開幕致詞:新創轉型契機Amazon Web Services
 
Big Data in The Cloud: Architecting a Better Platform
Big Data in The Cloud: Architecting a Better PlatformBig Data in The Cloud: Architecting a Better Platform
Big Data in The Cloud: Architecting a Better PlatformAmazon Web Services
 
Are You Well Architected?
Are You Well Architected?Are You Well Architected?
Are You Well Architected?joehack3r
 
Partner Keynote: Intel - The New Frontier of Cloud Computing
Partner Keynote: Intel - The New Frontier of Cloud ComputingPartner Keynote: Intel - The New Frontier of Cloud Computing
Partner Keynote: Intel - The New Frontier of Cloud ComputingAmazon Web Services
 

What's hot (20)

Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
 
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
Application Autoscaling Made Easy with Kubernetes Event-Driven Autoscaling (K...
 
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
 
Introduction to Promitor
Introduction to PromitorIntroduction to Promitor
Introduction to Promitor
 
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
 
NASA Goddard: Head in the Clouds
NASA Goddard: Head in the CloudsNASA Goddard: Head in the Clouds
NASA Goddard: Head in the Clouds
 
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andi
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andiDynatrace: DevOps, shift-left & self-healing a performance clinic with andi
Dynatrace: DevOps, shift-left & self-healing a performance clinic with andi
 
Global Azure Virtual - Application Autoscaling with KEDA
Global Azure Virtual - Application Autoscaling with KEDAGlobal Azure Virtual - Application Autoscaling with KEDA
Global Azure Virtual - Application Autoscaling with KEDA
 
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESS
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESSHOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESS
HOW CLOUD PLATFORMS ARE EVOLVING TO SUPPORT WEB-SCALE DIGITAL AND IT BUSINESS
 
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
 
Azure vs Aws vs Google Cloud Providers
Azure vs Aws vs Google Cloud ProvidersAzure vs Aws vs Google Cloud Providers
Azure vs Aws vs Google Cloud Providers
 
Solving Big Data problems on AWS by Rajnish Malik
Solving Big Data problems on AWS by Rajnish MalikSolving Big Data problems on AWS by Rajnish Malik
Solving Big Data problems on AWS by Rajnish Malik
 
AWSome Day Malaysia 2015 Keynote
AWSome Day Malaysia 2015 KeynoteAWSome Day Malaysia 2015 Keynote
AWSome Day Malaysia 2015 Keynote
 
Stay Out of the News by Staying in the Cloud - jason cradit
Stay Out of the News by Staying in the Cloud - jason craditStay Out of the News by Staying in the Cloud - jason cradit
Stay Out of the News by Staying in the Cloud - jason cradit
 
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...
Visibility and Control in the Cloud: How to Get your Boss Comfortable with AW...
 
開幕致詞:新創轉型契機
開幕致詞:新創轉型契機開幕致詞:新創轉型契機
開幕致詞:新創轉型契機
 
AWS Customer Presentation- Esri
AWS Customer Presentation- EsriAWS Customer Presentation- Esri
AWS Customer Presentation- Esri
 
Big Data in The Cloud: Architecting a Better Platform
Big Data in The Cloud: Architecting a Better PlatformBig Data in The Cloud: Architecting a Better Platform
Big Data in The Cloud: Architecting a Better Platform
 
Are You Well Architected?
Are You Well Architected?Are You Well Architected?
Are You Well Architected?
 
Partner Keynote: Intel - The New Frontier of Cloud Computing
Partner Keynote: Intel - The New Frontier of Cloud ComputingPartner Keynote: Intel - The New Frontier of Cloud Computing
Partner Keynote: Intel - The New Frontier of Cloud Computing
 

Similar to "Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris

A Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne KaiserA Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne KaiserThoughtworks
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
Enabling Microservices Frameworks to Solve Business Problems
Enabling Microservices Frameworks to Solve  Business ProblemsEnabling Microservices Frameworks to Solve  Business Problems
Enabling Microservices Frameworks to Solve Business ProblemsKen Owens
 
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)Amazon Web Services
 
Manage Microservices & Fast Data Systems on One Platform w/ DC/OS
Manage Microservices & Fast Data Systems on One Platform w/ DC/OSManage Microservices & Fast Data Systems on One Platform w/ DC/OS
Manage Microservices & Fast Data Systems on One Platform w/ DC/OSMesosphere Inc.
 
Intro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene HanikblumIntro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene HanikblumEugene Hanikblum
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesRakesh Gujjarlapudi
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAmazon Web Services
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
 
Webinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadWebinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadCodemotion
 
SRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerSRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerAmazon Web Services
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Boaz Ziniman
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWSAmazon Web Services Korea
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of MicroservicesWesley Reisz
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesRick Hightower
 
Distributed architecture in a cloud native microservices ecosystem
Distributed architecture in a cloud native microservices ecosystemDistributed architecture in a cloud native microservices ecosystem
Distributed architecture in a cloud native microservices ecosystemZhenzhong Xu
 
Journey to the Modern App with Containers, Microservices and Big Data
Journey to the Modern App with Containers, Microservices and Big DataJourney to the Modern App with Containers, Microservices and Big Data
Journey to the Modern App with Containers, Microservices and Big DataLightbend
 

Similar to "Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris (20)

A Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne KaiserA Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne Kaiser
 
Kubernetes on DC/OS
Kubernetes on DC/OSKubernetes on DC/OS
Kubernetes on DC/OS
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Enabling Microservices Frameworks to Solve Business Problems
Enabling Microservices Frameworks to Solve  Business ProblemsEnabling Microservices Frameworks to Solve  Business Problems
Enabling Microservices Frameworks to Solve Business Problems
 
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)
AWS re:Invent 2016: Running Microservices on Amazon ECS (CON309)
 
Manage Microservices & Fast Data Systems on One Platform w/ DC/OS
Manage Microservices & Fast Data Systems on One Platform w/ DC/OSManage Microservices & Fast Data Systems on One Platform w/ DC/OS
Manage Microservices & Fast Data Systems on One Platform w/ DC/OS
 
Intro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene HanikblumIntro to spring cloud &microservices by Eugene Hanikblum
Intro to spring cloud &microservices by Eugene Hanikblum
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Webinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg SchadWebinar - Big Data: Let's SMACK - Jorg Schad
Webinar - Big Data: Let's SMACK - Jorg Schad
 
SRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerSRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and Docker
 
Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017Microservices and serverless for MegaStartups - DLD TLV 2017
Microservices and serverless for MegaStartups - DLD TLV 2017
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
 
Patterns & Practices of Microservices
Patterns & Practices of MicroservicesPatterns & Practices of Microservices
Patterns & Practices of Microservices
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Distributed architecture in a cloud native microservices ecosystem
Distributed architecture in a cloud native microservices ecosystemDistributed architecture in a cloud native microservices ecosystem
Distributed architecture in a cloud native microservices ecosystem
 
Journey to the Modern App with Containers, Microservices and Big Data
Journey to the Modern App with Containers, Microservices and Big DataJourney to the Modern App with Containers, Microservices and Big Data
Journey to the Modern App with Containers, Microservices and Big Data
 

Recently uploaded

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

"Microservices Lessons Learned" talk at Voxxed Days Microservices, Paris

  • 1. Microservices Lessons Learned CTO at Just Software @JustSocialApps Susanne Kaiser Independent Tech Consultant @suksr @suksr#VoxxedMicroservices
  • 2. Each Journey is Different “People try to copy Netflix, but they can only copy what they see. They copy the results, not the process.” Adrian Cockcroft, AWS VP Cloud Architect, former Netflix Chief Cloud Architect @suksr#VoxxedMicroservices
  • 3. Each Journey is Different Team Structure Skillset Size Journey Affecting Circumstances @suksr#VoxxedMicroservices
  • 4. Each Journey is Different Team Structure Skillset Size Journey Legacy Maintenance effort Runtime environment Affecting Circumstances @suksr#VoxxedMicroservices
  • 5. Each Journey is Different Team Structure Skillset Size Journey Legacy Maintenance effort Runtime environment Strategy New Features Timeline / Milestones Affecting Circumstances @suksr#VoxxedMicroservices
  • 6. Background JUST DRIVE JUST CONNECT JUST LIST JUST WIKI JUST PEOPLE JUST NEWS JUST SOCIAL @suksr#VoxxedMicroservices
  • 7. One team Single Unit One collaboration product One technology stack At the Beginning A Monolith in Every Aspect @suksr#VoxxedMicroservices
  • 8. Background After an Evolving Time @suksr#VoxxedMicroservices
  • 9. Background After an Evolving Time Productivity suffered @suksr#VoxxedMicroservices
  • 10. Background After an Evolving Time Productivity suffered Usability/UX suffered @suksr#VoxxedMicroservices
  • 11. Background After an Evolving Time Productivity suffered Usability/UX suffered New features released slowly @suksr#VoxxedMicroservices
  • 12. JUST DRIVE JUST CONNECT JUST LIST JUST WIKI JUST PEOPLE JUST NEWS JUST SOCIAL Background Separate Collaboration Apps @suksr#VoxxedMicroservices
  • 13. Background Separate, Autonomous Teams Well-defined responsibilites @suksr#VoxxedMicroservices
  • 14. Background In The Long Run Organisation Product Software @suksr#VoxxedMicroservices
  • 15. Background Our Motivation for Microservices Autonomous teams Develop independently Deploy independently Work at different parts independently Scale independently At different speed @suksr#VoxxedMicroservices
  • 16. Identify Bounded Contexts Decomposition Strategy High cohesion within a service Loose coupling between services @suksr#VoxxedMicroservices
  • 17. Identify Bounded Contexts Decomposition Strategy High cohesion within a service Loose coupling between services Bounded Context Related behaviour Semantic boundary around domain model Well-defined business function @suksr#VoxxedMicroservices
  • 18. Identify Bounded Contexts Decomposition Strategy JUST DRIVE JUST CONNECT JUST LIST JUST WIKIJUST PEOPLE JUST NEWS Bounded Contexts @suksr#VoxxedMicroservices
  • 19. JUST DRIVE Decomposition Strategy Co-Existing Service From Scratch @suksr#VoxxedMicroservices
  • 20. JUST DRIVE Decomposition Strategy Co-Existing Service From Scratch JUST PEOPLE @suksr#VoxxedMicroservices
  • 21. Decomposition Strategy Co-Existing Service From Scratch owns document state REST API Application-Service Domain-Model DB Adapter Monolith JUST DRIVE @suksr#VoxxedMicroservices
  • 22. Decomposition Strategy Co-Existing Service From Scratch owns document state owns profile state document created by author Monolith REST API Application-Service Domain-Model DB Adapter @suksr#VoxxedMicroservices
  • 23. owns document state owns profile state Events local copy of author Message Broker Decomposition Strategy Co-Existing Service From Scratch REST API Application-Service Domain-Model DB Adapter Message Broker Adapter Monolith publish subscribe @suksr#VoxxedMicroservices
  • 24. DB Adapter Message Broker Adapter Application-Service Domain-Model REST API Domain-Event Good approach in general, but we did too many steps at once New UI New Business Logic New Data Structure => Not optimal to start with vs. Decomposition Strategy Co-Existing Service From Scratch @suksr#VoxxedMicroservices
  • 25. Incremental Top Down Extracting Web App Decomposition Strategy Monolith REST API REST API REST Client @suksr#VoxxedMicroservices
  • 26. Monolith REST API Extracting Business Logic Application-Service Domain-Model DB Adapter REST Client Incremental Top Down Decomposition Strategy Monolith uses extracted business logic @suksr#VoxxedMicroservices
  • 27. Monolith Splitting Data Storage Incremental Top Down Decomposition Strategy REST API Application-Service Domain-Model DB Adapter Events Message Broker Message Broker Adapter publish subscribe @suksr#VoxxedMicroservices
  • 28. Which One First? vs. Easy to Extract Changing Frequently Different Resource Consumption Early experiences w/ Microservices Greatest benefit after extraction Decomposition Strategy @suksr#VoxxedMicroservices
  • 29. Cross-Cutting Concerns Authorization JUST DRIVE JUST WIKI Fine-grained authorization Inter-service dependency @suksr#VoxxedMicroservices
  • 30. Cross-Cutting Concerns I have a new service that needs authorization. Where is the authz service I could use? Not there, yet. Sorry! Ok, then I am putting my code to the place where authz handling exists … to the monolith. Feeding the monolith Re-implementing authz w/ every new service Ok, then I am implementing authz in my local service. Authorization @suksr#VoxxedMicroservices
  • 31. Cross-Cutting Concerns Handle Them Early Feeding the monolith Re-implementing authz w/ every new service Handle Cross-Cutting Concerns Early @suksr#VoxxedMicroservices
  • 32. Cross-Cutting Concerns Avoid A Distributed Monolith Authz Service @suksr#VoxxedMicroservices
  • 33. Cross-Cutting Concerns Avoid A Distributed Monolith Authz Servicetranslate One stable common contract translate translate @suksr#VoxxedMicroservices
  • 34. Service Interaction Request-Driven / Event-Driven command query Events Message Broker publish subscribe command query Request-Driven Hybrid Events Message Broker publish subscribe Event-Driven @suksr#VoxxedMicroservices
  • 35. How To Manage Shared Data? Hybrid Model Message Broker REST API Remote query directly to source Events for notification @suksr#VoxxedMicroservices
  • 36. Event Driven State Transfer Message Broker Local copy of profile data ProfileUpdatedEvent How To Manage Shared Data? Events for data duplication @suksr#VoxxedMicroservices
  • 37. Source Of Truth How To Manage Shared Data? Internal source of truth External source of truth Multiple sources of truth Single source of truth Events as first-class citizens “Traditional” Event-Driven System Event Store Event Log @suksr#VoxxedMicroservices
  • 38. Messaging System Storage System Streaming Platform Message Broker Event Log Event Stream @suksr#VoxxedMicroservices
  • 39. How To Manage Shared Data? Kafka Streams Unbounded, ordered sequence of data records Key-value pairContinuously updating @suksr#VoxxedMicroservices
  • 40. How To Manage Shared Data? Kafka Streams Kafka Topic Lightweight embedded state store (disk-backed) Service Running in the same process of Microservice Loaded on startup of Microservice Streams make data available wherever it’s needed @suksr#VoxxedMicroservices
  • 41. How To Manage Shared Data? Kafka Streams Kafka Streams API join filter group by aggregate etc. Changelog of state changes KStream KTable Snapshot of the latest value for each key Kafka Stream-Table Duality (key1, value1), (key2, value2), (key 1, value 3) key1 value3→ key2 value2→ @suksr#VoxxedMicroservices
  • 42. How To Manage Data? Materialized Views w/ Kafka Streams Kafka Table for enrichment Document Service Stream REST API Materialized View as State Store Stream-Table-Join @suksr#VoxxedMicroservices
  • 43. How To Manage Shared Data? Event Streams as a Shared Source of Truth Events for notification Events for data duplication ● Simple integration ● Remote query => increasing coupling ● Eliminating remote query => better decoupling ● Local copy => better autonomy ● Duplicating effort to maintain local dataset ● Simple integration ● Remote query => increasing coupling Event streams as a shared source of truth ● Eliminating local copy => reduces duplicating effort ● Pushes data to where it’s needed ● Increases pluggability ● Low barrier to entry for new service @suksr#VoxxedMicroservices
  • 44. Hardware Data Store API API-Gateway Service Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/SVirtualization Container Runtime Checkout TestBuild CI/CD Pipeline Deploy µService Backup Recovery @suksr#VoxxedMicroservices Infrastructure Complexities
  • 45. Build the things that differentiate you Offload the things that don’t @suksr#VoxxedMicroservices
  • 47. Start small Lessons Learned Handle cross-cutting concerns early Avoid a distributed monolith Be aware of affecting circumstances & Each journey is different :) Design event-driven & consider event streams as shared source of truth @suksr#VoxxedMicroservices Consider managed services to offload infrastructure complexities
  • 48. Susanne Kaiser Independent Tech Consultant @suksr CTO at Just Software @JustSocialApps