SlideShare a Scribd company logo
1 of 25
Download to read offline
SELF CONTAINED SYSTEMS
SOUP TO NUTS
WHO AM I
▸ DONOVAN MULLER
▸ LEAD TECHNICAL PARTNER AT BARCLAYS AFRICA/ABSA
SO(A) WHAT’S THE BIG HYPE?
▸ ISN’T THIS JUST SOA?
▸ YES BUT WITHOUT ESB, VENDORS, ORCHESTRATION
ENGINES, SOAP
▸ SO, NO CENTRALISED ESB TEAM
HOW BIG IS A MICRO SERVICE ANYWAY
DOES SIZE REALLY MATTER?
▸ NO, IT SHOULDN’T
▸ SIZE DOES NOT MAKE A MICROSERVICE
▸ IT’S ALL ABOUT CONTEXT…
NO DEPENDENCIES
WHY DO WE NEED MICROSERVICES?
▸ IT’S ABOUT BEING INDEPENDENT/AUTONOMOUS
▸ ASKING FOR PERMISSION SUCKS
▸ WAITING SUCKS
▸ I HATE JEE
▸ I WANNA GO FAST
WE HAVE TO WAIT HOW LONG…
NO HAND OFFS
▸ INTER-TEAM DEPENDENCIES WASTE TIME
▸ KEEP IT IN THE TEAM
▸ WHICH MEANS, WE NEED TO CONTROL THE STACK
I THOUGHT THIS WAS ABOUT MICROSERVICES…
WHAT’S A SELF CONTAINED SYSTEM?
▸ http://scs-architecture.org
▸ Autonomous application
▸ Owned by one team
▸ Communication asynchronous where possible
▸ No shared UI
▸ No shared business code
▸ Minimal shared infrastructure
BE SELFISH
SHARE NOTHING
▸ SHARING IS NOT CARING
▸ CAUSES DEPENDENCIES BETWEEN TEAMS
▸ SHARING SOME THINGS IS OK THOUGH
▸ STANDARDISED LIBRARIES FOR LOGGING ETC.
▸ TRADE OFFS
BUT…
TRADE OFFS
▸ NO PERFECT DESIGN
▸ ALWAYS TRADE OFFS





DDD
▸ DOMAIN DRIVEN DESIGN
▸ MODEL THE BUSINESS PROBLEM
▸ NOT THE INFRASTRUCTURE
BOUNDED CONTEXTS
▸ MOST IMPORTANT CONCEPT?
▸ THINGS THAT BELONG TOGETHER

STAY TOGETHER
▸ BOUNDED CONTEXT = SCS
AGGREGATES
▸ A GROUP OF RELATED DOMAIN OBJECTS
▸ CONSISTENCY BOUNDARY
DOMAIN EVENTS
▸ WHEN THINKING OF STATE, THINK WHAT EVENT HAS
JUST TAKEN PLACE
▸ EASIER FOR PEOPLE TO MODEL WHAT SOMETHING
SHOULD DO, RATHER THAN HOW TO DO IT
EVENT SOURCING
▸ STATE IS THE LEFT FOLD OF YOUR DOMAIN EVENTS
▸ KEPT IN A PERSISTENT EVENT STORE
▸ BUILT IN AUDIT RECORD
▸ TEMPORAL QUERIES
CQRS
▸ COMPLIMENTS EVENT SOURCING
▸ MATERIALISED VIEWS
▸ EASY COME, EASY GO
DEMO - AXON
FRAMEWORKS
▸ AXON WITH SPRING X
▸ LAGOM
▸ MANY MORE
▸ ROLL YOUR OWN?
PAAS - OPENSHIFT
▸ “ENTERPRISE” KUBERNETES
▸ SERVICE DISCOVERY, CONFIGURATION MANAGEMENT,
ETC. FOR FREE
▸ BUILD AND RUN
▸ BUILT IN JENKINS PIPELINES
EVENT DRIVEN ARCHITECTURE
▸ ASYNCHRONOUS COMMUNICATION BETWEEN
SYSTEMS
▸ LESS DEATH STAR
▸ MORE FLEXIBLE AND AUTONOMOUS
▸ TRADE OFFS
REACTIVE MANIFESTO
▸ http://www.reactivemanifesto.org/
▸ RESPONSIVE
▸ RESILIENT
▸ ELASTIC
▸ MESSAGE DRIVEN
INTEGRATIONS (STREAMS)
▸ SPRING CLOUD STREAM/DATA FLOW
▸ ALPAKKA
▸ ETC.
WHAT ABOUT TRANSACTIONS?
▸ NO XA (BETWEEN SYSTEMS) :O
▸ EVENTUALLY CONSISTENT
▸ SAGA PATTERN
MSA FOR THE UI
▸ MICROSERVICES ARE NOT ONLY FOR THE BACKEND
▸ AVOID SHARED UI
▸ TAILOR, ESI (EDGE SIDE INCLUDES), ETC.
JUST GETTING STARTED
▸ MONITORING
▸ LOGGING
▸ SERVICE CATALOGUE
▸ API GATEWAY
▸ SECURITY
THANK YOU
@donovancmuller

More Related Content

Viewers also liked

Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesEberhard Wolff
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNverbal1714
 
Workshop-Build e deploy avançado com Openshift e Kubernetes
Workshop-Build e deploy avançado com Openshift e KubernetesWorkshop-Build e deploy avançado com Openshift e Kubernetes
Workshop-Build e deploy avançado com Openshift e Kubernetesjuniorjbn
 
OpenShift meetup Bangalore
OpenShift meetup BangaloreOpenShift meetup Bangalore
OpenShift meetup BangaloreSuraj Deshmukh
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context ConstraintsAlessandro Arrichiello
 
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShift
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShiftUltimate DevOps - Jenkins Enterprise & Red Hat OpenShift
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShiftAndy Pemberton
 
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part IOpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part IBehnam Loghmani
 
OpenShift In a Nutshell - Episode 04 - Infrastructure part II
OpenShift In a Nutshell - Episode 04 - Infrastructure part IIOpenShift In a Nutshell - Episode 04 - Infrastructure part II
OpenShift In a Nutshell - Episode 04 - Infrastructure part IIBehnam Loghmani
 
OpenShift In a Nutshell - Episode 03 - Infrastructure part I
OpenShift In a Nutshell - Episode 03 - Infrastructure part IOpenShift In a Nutshell - Episode 03 - Infrastructure part I
OpenShift In a Nutshell - Episode 03 - Infrastructure part IBehnam Loghmani
 
OpenShift In a Nutshell - Episode 06 - Core Concepts Part II
OpenShift In a Nutshell - Episode 06 - Core Concepts Part IIOpenShift In a Nutshell - Episode 06 - Core Concepts Part II
OpenShift In a Nutshell - Episode 06 - Core Concepts Part IIBehnam Loghmani
 
Openshift Container Platform on Azure
Openshift Container Platform on AzureOpenshift Container Platform on Azure
Openshift Container Platform on AzureGlenn West
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016ManageIQ
 
Understanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliveryUnderstanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliverySwapnil Jain
 
OpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - ArchitectureOpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - ArchitectureBehnam Loghmani
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftandreas kuncoro
 
Minishift (Run OpenShift locally)
Minishift (Run OpenShift locally)Minishift (Run OpenShift locally)
Minishift (Run OpenShift locally)Praveen Kumar
 
Microservices with JBoss EAP & OpenShift
Microservices with JBoss EAP & OpenShiftMicroservices with JBoss EAP & OpenShift
Microservices with JBoss EAP & OpenShiftbobmcwhirter
 
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...Puppet
 
KubeCon NA, Seattle, 2016: Performance and Scalability Tuning Kubernetes for...
KubeCon NA, Seattle, 2016:  Performance and Scalability Tuning Kubernetes for...KubeCon NA, Seattle, 2016:  Performance and Scalability Tuning Kubernetes for...
KubeCon NA, Seattle, 2016: Performance and Scalability Tuning Kubernetes for...Jeremy Eder
 

Viewers also liked (20)

Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARN
 
Workshop-Build e deploy avançado com Openshift e Kubernetes
Workshop-Build e deploy avançado com Openshift e KubernetesWorkshop-Build e deploy avançado com Openshift e Kubernetes
Workshop-Build e deploy avançado com Openshift e Kubernetes
 
OpenShift meetup Bangalore
OpenShift meetup BangaloreOpenShift meetup Bangalore
OpenShift meetup Bangalore
 
Openshift presentation
Openshift presentationOpenshift presentation
Openshift presentation
 
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
[Devconf.cz][2017] Understanding OpenShift Security Context Constraints
 
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShift
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShiftUltimate DevOps - Jenkins Enterprise & Red Hat OpenShift
Ultimate DevOps - Jenkins Enterprise & Red Hat OpenShift
 
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part IOpenShift In a Nutshell - Episode 05 - Core Concepts Part I
OpenShift In a Nutshell - Episode 05 - Core Concepts Part I
 
OpenShift In a Nutshell - Episode 04 - Infrastructure part II
OpenShift In a Nutshell - Episode 04 - Infrastructure part IIOpenShift In a Nutshell - Episode 04 - Infrastructure part II
OpenShift In a Nutshell - Episode 04 - Infrastructure part II
 
OpenShift In a Nutshell - Episode 03 - Infrastructure part I
OpenShift In a Nutshell - Episode 03 - Infrastructure part IOpenShift In a Nutshell - Episode 03 - Infrastructure part I
OpenShift In a Nutshell - Episode 03 - Infrastructure part I
 
OpenShift In a Nutshell - Episode 06 - Core Concepts Part II
OpenShift In a Nutshell - Episode 06 - Core Concepts Part IIOpenShift In a Nutshell - Episode 06 - Core Concepts Part II
OpenShift In a Nutshell - Episode 06 - Core Concepts Part II
 
Openshift Container Platform on Azure
Openshift Container Platform on AzureOpenshift Container Platform on Azure
Openshift Container Platform on Azure
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
 
Understanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous DeliveryUnderstanding DevOps in simpler way with Continuous Delivery
Understanding DevOps in simpler way with Continuous Delivery
 
OpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - ArchitectureOpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - Architecture
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshift
 
Minishift (Run OpenShift locally)
Minishift (Run OpenShift locally)Minishift (Run OpenShift locally)
Minishift (Run OpenShift locally)
 
Microservices with JBoss EAP & OpenShift
Microservices with JBoss EAP & OpenShiftMicroservices with JBoss EAP & OpenShift
Microservices with JBoss EAP & OpenShift
 
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
PuppetConf 2016: Using Puppet with Kubernetes and OpenShift – Diane Mueller, ...
 
KubeCon NA, Seattle, 2016: Performance and Scalability Tuning Kubernetes for...
KubeCon NA, Seattle, 2016:  Performance and Scalability Tuning Kubernetes for...KubeCon NA, Seattle, 2016:  Performance and Scalability Tuning Kubernetes for...
KubeCon NA, Seattle, 2016: Performance and Scalability Tuning Kubernetes for...
 

Similar to JUG - Soup to Nuts with Self Contained Systems

A “soup to nuts” look at implementing Self Contained Systems
A “soup to nuts” look at implementing Self Contained SystemsA “soup to nuts” look at implementing Self Contained Systems
A “soup to nuts” look at implementing Self Contained SystemsDonovan Muller
 
Serverless as a Collaborative Economy Enabler
Serverless as a Collaborative Economy EnablerServerless as a Collaborative Economy Enabler
Serverless as a Collaborative Economy EnablerBart Blommaerts
 
Next generation security analytics
Next generation security analyticsNext generation security analytics
Next generation security analyticsChristian Have
 
What's the Urgency?
What's the Urgency?What's the Urgency?
What's the Urgency?AnilGuleria4
 
It's (still) OK to be pragmatic!
It's (still) OK to be pragmatic!It's (still) OK to be pragmatic!
It's (still) OK to be pragmatic!James Harvey
 
Wk 7 imagine planning and design
Wk 7 imagine planning and designWk 7 imagine planning and design
Wk 7 imagine planning and designPlacefocus
 

Similar to JUG - Soup to Nuts with Self Contained Systems (8)

A “soup to nuts” look at implementing Self Contained Systems
A “soup to nuts” look at implementing Self Contained SystemsA “soup to nuts” look at implementing Self Contained Systems
A “soup to nuts” look at implementing Self Contained Systems
 
Serverless as a Collaborative Economy Enabler
Serverless as a Collaborative Economy EnablerServerless as a Collaborative Economy Enabler
Serverless as a Collaborative Economy Enabler
 
Next generation security analytics
Next generation security analyticsNext generation security analytics
Next generation security analytics
 
What's the Urgency?
What's the Urgency?What's the Urgency?
What's the Urgency?
 
AWS Bad Idea Theatre
AWS Bad Idea TheatreAWS Bad Idea Theatre
AWS Bad Idea Theatre
 
It's (still) OK to be pragmatic!
It's (still) OK to be pragmatic!It's (still) OK to be pragmatic!
It's (still) OK to be pragmatic!
 
Infrastructure architecture
Infrastructure architecture Infrastructure architecture
Infrastructure architecture
 
Wk 7 imagine planning and design
Wk 7 imagine planning and designWk 7 imagine planning and design
Wk 7 imagine planning and design
 

Recently uploaded

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

JUG - Soup to Nuts with Self Contained Systems

  • 2. WHO AM I ▸ DONOVAN MULLER ▸ LEAD TECHNICAL PARTNER AT BARCLAYS AFRICA/ABSA
  • 3. SO(A) WHAT’S THE BIG HYPE? ▸ ISN’T THIS JUST SOA? ▸ YES BUT WITHOUT ESB, VENDORS, ORCHESTRATION ENGINES, SOAP ▸ SO, NO CENTRALISED ESB TEAM
  • 4. HOW BIG IS A MICRO SERVICE ANYWAY DOES SIZE REALLY MATTER? ▸ NO, IT SHOULDN’T ▸ SIZE DOES NOT MAKE A MICROSERVICE ▸ IT’S ALL ABOUT CONTEXT…
  • 5. NO DEPENDENCIES WHY DO WE NEED MICROSERVICES? ▸ IT’S ABOUT BEING INDEPENDENT/AUTONOMOUS ▸ ASKING FOR PERMISSION SUCKS ▸ WAITING SUCKS ▸ I HATE JEE ▸ I WANNA GO FAST
  • 6. WE HAVE TO WAIT HOW LONG… NO HAND OFFS ▸ INTER-TEAM DEPENDENCIES WASTE TIME ▸ KEEP IT IN THE TEAM ▸ WHICH MEANS, WE NEED TO CONTROL THE STACK
  • 7. I THOUGHT THIS WAS ABOUT MICROSERVICES… WHAT’S A SELF CONTAINED SYSTEM? ▸ http://scs-architecture.org ▸ Autonomous application ▸ Owned by one team ▸ Communication asynchronous where possible ▸ No shared UI ▸ No shared business code ▸ Minimal shared infrastructure
  • 8. BE SELFISH SHARE NOTHING ▸ SHARING IS NOT CARING ▸ CAUSES DEPENDENCIES BETWEEN TEAMS ▸ SHARING SOME THINGS IS OK THOUGH ▸ STANDARDISED LIBRARIES FOR LOGGING ETC. ▸ TRADE OFFS
  • 9. BUT… TRADE OFFS ▸ NO PERFECT DESIGN ▸ ALWAYS TRADE OFFS
 
 

  • 10. DDD ▸ DOMAIN DRIVEN DESIGN ▸ MODEL THE BUSINESS PROBLEM ▸ NOT THE INFRASTRUCTURE
  • 11. BOUNDED CONTEXTS ▸ MOST IMPORTANT CONCEPT? ▸ THINGS THAT BELONG TOGETHER
 STAY TOGETHER ▸ BOUNDED CONTEXT = SCS
  • 12. AGGREGATES ▸ A GROUP OF RELATED DOMAIN OBJECTS ▸ CONSISTENCY BOUNDARY
  • 13. DOMAIN EVENTS ▸ WHEN THINKING OF STATE, THINK WHAT EVENT HAS JUST TAKEN PLACE ▸ EASIER FOR PEOPLE TO MODEL WHAT SOMETHING SHOULD DO, RATHER THAN HOW TO DO IT
  • 14. EVENT SOURCING ▸ STATE IS THE LEFT FOLD OF YOUR DOMAIN EVENTS ▸ KEPT IN A PERSISTENT EVENT STORE ▸ BUILT IN AUDIT RECORD ▸ TEMPORAL QUERIES
  • 15. CQRS ▸ COMPLIMENTS EVENT SOURCING ▸ MATERIALISED VIEWS ▸ EASY COME, EASY GO
  • 17. FRAMEWORKS ▸ AXON WITH SPRING X ▸ LAGOM ▸ MANY MORE ▸ ROLL YOUR OWN?
  • 18. PAAS - OPENSHIFT ▸ “ENTERPRISE” KUBERNETES ▸ SERVICE DISCOVERY, CONFIGURATION MANAGEMENT, ETC. FOR FREE ▸ BUILD AND RUN ▸ BUILT IN JENKINS PIPELINES
  • 19. EVENT DRIVEN ARCHITECTURE ▸ ASYNCHRONOUS COMMUNICATION BETWEEN SYSTEMS ▸ LESS DEATH STAR ▸ MORE FLEXIBLE AND AUTONOMOUS ▸ TRADE OFFS
  • 20. REACTIVE MANIFESTO ▸ http://www.reactivemanifesto.org/ ▸ RESPONSIVE ▸ RESILIENT ▸ ELASTIC ▸ MESSAGE DRIVEN
  • 21. INTEGRATIONS (STREAMS) ▸ SPRING CLOUD STREAM/DATA FLOW ▸ ALPAKKA ▸ ETC.
  • 22. WHAT ABOUT TRANSACTIONS? ▸ NO XA (BETWEEN SYSTEMS) :O ▸ EVENTUALLY CONSISTENT ▸ SAGA PATTERN
  • 23. MSA FOR THE UI ▸ MICROSERVICES ARE NOT ONLY FOR THE BACKEND ▸ AVOID SHARED UI ▸ TAILOR, ESI (EDGE SIDE INCLUDES), ETC.
  • 24. JUST GETTING STARTED ▸ MONITORING ▸ LOGGING ▸ SERVICE CATALOGUE ▸ API GATEWAY ▸ SECURITY