SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Department for Work & Pensions 1
From Monolith to Microservices
by Andrew Rea
Department for Work & Pensions 2
From Monolith to Microservices by Andrew Rea
Know your Monolith
API CONUSMERS
APPLICATION
DATABASE
API
BUSINESS LOGIC
DATA ACCESS
PRESENTATION
APIAPI
DATABASE
Service 1 Service 2 Service “n”
DB DB DB
Service 1 Service 2 Service “n”
Access
Postgres
MSSQL
WORD
DOCUMENT
EXCEL
DOCUMENT
VBA
APPLICATION
UI Business Logic
Data
Access
Database
Logging Reports
Open Monolith Database Monolith Distributed Monolith
Paper Monolith Office Monolith
Closed Monolith
Department for Work & Pensions 3
From Monolith to Microservices by Andrew Rea
That’s another fine mess you’ve gotten me into
APPLICATION
DATABASE
CODE
CODECODE
CODE
TABLE
TABLETABLE
TABLE
STRONG CODE COUPLING
STRONG DB COUPLING
DATABASE COUPLING
NO DOMAIN BOUNDARIES
IMPLICIT RELATIONSHIPS
Department for Work & Pensions 4
From Monolith to Microservices by Andrew Rea
That’s another fine mess you’ve gotten me into
APPLICATION
DATABASE
CODE
CODECODE
CODE
TABLE
TABLETABLE
TABLE
£ £ £
INCREASES COST
INCREASES IMPLEMENTATION TIME
DECREASES VELOCITY
INCREASES RISK
INCREASES DEPLOYMENT SIZE
INCREASES COMPLEXITY
INCREASES CODE FEAR
INCREASES BUILD TIME
INCREASES TEST TIME
Department for Work & Pensions 5
From Monolith to Microservices by Andrew Rea
Microservices?
APPLICATION
DATABASE
SERVICE
SERVICESERVICE
SERVICE
TABLE TABLE
TABLE
TABLE
NOT YET 

BUT…
THIS IS MANAGEABLE
Department for Work & Pensions 6
From Monolith to Microservices by Andrew Rea
APPLICATION
DATABASE
SERVICE
SERVICESERVICE
SERVICE
TABLE TABLE
TABLE
TABLE
Microservices?
NOT YET BUT… THIS IS MANAGEABLE
LOOSE COUPLING
HIGH COHESION
ENCAPSULATION
DATABASE DECOUPLING
DOMAIN BOUNDARIES
EXPLICIT RELATIONSHIPS
SERVICE INTEGRATION
SERVICE COMPOSITION
Department for Work & Pensions 7
From Monolith to Microservices by Andrew Rea
What are Microservices?
SMALL
HOW SMALL?
INTEROPERABLE
HOW?
INDEPENDENT
HOW?
A REASON TO RE-STRUCTURE YOUR TEAMS
WHY? RESILIENT
HOW?
Department for Work & Pensions 8
From Monolith to Microservices by Andrew Rea
How do you get there?
GOOD DESIGN PRACTICES

& PRINCIPLES
Department for Work & Pensions 9
From Monolith to Microservices by Andrew Rea
SEPARATE PROCESS PER SERVICE
APPLICATIONS
DATABASES
TABLE
TABLE
EASIER TO ADOPT DIFFERENT TECH
INDEPENDENTLY HOSTED
INDEPENDENTLY DEPLOYABLE
INDEPENDENTLY SCALABLE
SERVICE SERVICE
SERVICE
SERVICE
GRAPH
KEY /
VALUEDOC
Department for Work & Pensions 10
From Monolith to Microservices by Andrew Rea
INDEPENDENT - HOW?
DEVELOP INDEPENDENTLY
DEPLOY INDEPENDENTLY
BUILD INDEPENDENTLY
OPERATE INDEPENDENTLY
MONITOR INDEPENDENTLY
SURVIVE INDEPENDENTLY
VERSION INDEPENDENTLY
PROCESS
CONTINUOUS
INTEGRATION
CODE REPOSITORY
DATA STORES
CONTAINER
IMAGE
SERVICE
DISCOVERY
DNS (A-RECORD)
QUEUES
PROVISIONING
SCRIPTS
CERITIFICATES
LOGICAL
Encapsulation
Boundary
REQUIREMENTS
LOAD BALANCER
POOL
MONITORING
GROUP
SERVICE
PHYSICAL
Encapsulation
Boundary
VERSION
Department for Work & Pensions 11
From Monolith to Microservices by Andrew Rea
INTEROPERABLE - HOW?
COMMON TRANSPORT PROTOCOL
RESTFUL API
PUBLISH AND SUBSCRIBE CAPABILITY
EVENT STREAM
STRUCTURED LOGGING IN COMMON FORMAT
SERVICE
RESTFUL API OVER HTTPS
COMMANDS QUERIES EVENTS
STD OUTMETRICS STD ERROR
LOG AGENT
LOG
AGGREGATOR
Department for Work & Pensions 12
From Monolith to Microservices by Andrew Rea
SEPARATE SERVICES BY BUSINESS CAPABILITY
SERVICE
DOMAIN 1
DOMAIN 2
DOMAIN 3
SERVICE 1
DOMAIN 1
SERVICE 2
DOMAIN 2
SERVICE 3
DOMAIN 3
Monolith Microservices
Department for Work & Pensions 13
From Monolith to Microservices by Andrew Rea
HOW DO THEY SCALE?
SERVICE
DOMAIN 1
DOMAIN 2
DOMAIN 3
SERVICE
DOMAIN 1
SERVICE
DOMAIN 2
SERVICE
DOMAIN 3
SERVICE
DOMAIN 1
DOMAIN 2
DOMAIN 3
SERVICE
DOMAIN 1
DOMAIN 2
DOMAIN 3
SERVICE
DOMAIN 3
SERVICE
DOMAIN 1
SERVICE
DOMAIN 3
SERVICE
DOMAIN 3
SERVICE
DOMAIN 3
SERVICE
DOMAIN 2
SERVICE
DOMAIN 2
SERVICE
DOMAIN 1
Monolith Microservices
SAVES MONEY
Department for Work & Pensions 14
From Monolith to Microservices by Andrew Rea
DOES THIS HELP SECURITY?
WE CAN DEPLOY SEPARATE INSTANCES OF THE SAME SERVICE IN DIFFERENT SECURITY ZONES TO MATCH
THE SENSITIVITY OF THE DATA WHICH THE SERVICE INSTANCE WILL BE HANDLING.
TRUST 1 TRUST 2
SERVICE
SEARCH
SERVICE
SEARCH
SERVICE
SEARCH
SERVICE
SEARCH
SERVICE
SEARCH
SERVICE
BOOKING
SERVICE
BOOKING
SERVICE
BOOKING
SERVICE
AVAILABILITY
SERVICE
AVAILABILITY
SERVICE
AVAILABILITY
SERVICE
AVAILABILITY
DMZ
SERVICE
SEARCH
SERVICE
BOOKING
SERVICE
AVAILABILITY
Department for Work & Pensions 15
From Monolith to Microservices by Andrew Rea
SEPARATE BUILD PIPELINES
SERVICE
1
SERVICE
2
SERVICE
3
COMMIT FUNCTIONAL NON-FUNCTIONAL SMOKE TESTSRELEASE
SERVICE
1
SERVICE
1
SERVICE
1
SERVICE
1
INDEPENDENT BUILD PIPELINES
INDEPENDENT BUILD SCRIPTS
INDEPENDENT PROVISION SCRIPT
ISOLATED TEST ENVIRONMENTS
Department for Work & Pensions 16
From Monolith to Microservices by Andrew Rea
SEPARATE SOURCE CONTROL
SERVICE
SERVICE
SERVICE
SERVICE
SERVICE
SERVICE SERVICE SERVICE
SERVICE SERVICE
GIVE EACH SERVICE ITS OWN SOURCE REPOSITORY
Department for Work & Pensions 17
From Monolith to Microservices by Andrew Rea
SEPARATE SOURCE CONTROL
GIVE EACH SERVICE ITS OWN SOURCE REPOSITORY
TEAMTEAM
TEAM
SERVICE
SERVICE
SERVICE
SERVICE
SERVICE
SERVICE SERVICE SERVICE
SERVICE SERVICE
Who

Owns

This?
Department for Work & Pensions 18
From Monolith to Microservices by Andrew Rea
A REASON TO RESTRUCTURE YOUR TEAMS
SERVICE
AVAILABILITY
SERVICE
BOOKING
SERVICE
SEARCH
SERVICE
PROVIDERS
SERVICE
SEARCH
SERVICE
PROVIDERS
SERVICE
AVAILABILITY
SERVICE
BOOKING
SERVICE (NOT COMPONENT) TEAMS
FEATURE TEAMS
OR BOTH?BOTH CAN PLAY A VALUABLE PART IN A MICROSERVICES ARCHITECTURE

BOTH HAVE THE SAME TEAM STRUCTURE
PULL REQUESTS ANYONE?
Department for Work & Pensions 19
From Monolith to Microservices by Andrew Rea
HOW SMALL (OR LARGE)?
2000 LINES OF CODE?
TWO PIZZA TEAM SIZE?
CAN BE RE-WRITTEN IN TWO WEEKS?
MODELS A SINGLE CONTEXT?
HOW ABOUT ALL OF THE ABOVE?
What thought processes do the above questions trigger about your design?
TOO BIG? MAKE SMALLER, TOO SMALL? MAKE BIGGER
Department for Work & Pensions 20
From Monolith to Microservices by Andrew Rea
HOW DO THEY COMMUNICATE
CALL
CALL
CALL
SERVICE
DOMAIN 1
SUBSCRIBE
SUBSCRIBE
SUBSCRIBE
CALL
CALL
CALL
OR BOTH
DIRECT INVOCATION EVENT DRIVEN
SERVICE
DOMAIN 1
SERVICE
DOMAIN 2
SERVICE
DOMAIN 3
SERVICE
DOMAIN 4
SERVICE
DOMAIN 2
SERVICE
DOMAIN 3
SERVICE
DOMAIN 4
Department for Work & Pensions 21
From Monolith to Microservices by Andrew Rea
WHAT ABOUT MONITORING?
CALL
CALL
CALL
META ENDPOINTS
MESSAGE CORRELATION
SYNTHETIC MONITORING
HEALTH CHECK
METRICS
INFORMATION
STRUCTURED LOGGINGBUSINESS APPLICATION INFRASTRUCTURENETWORK
LOCAL -> AGENT -> REMOTE
Department for Work & Pensions 22
From Monolith to Microservices by Andrew Rea
HOW DO CONSUMING APPS GET STABILITY?
SERVICE
DOMAIN 1
Stable Next Latest
CONSUMER A
DEVELOPERS
VERSIONS WITH DIFFERENT LEVELS OF
STABILITY
Consuming “Stable” in Production
Testing integration with “Next”
Researching “Latest”
Department for Work & Pensions 23
From Monolith to Microservices by Andrew Rea
HOW TO VERSION THE SERVICES?
<MAJOR>.<MINOR>.<PATCH>-<TAG>
https://medium.com/javascript-scene/software-versions-are-broken-3d2dc0da0783#.wcyli1rt2
http://semver.org
<BREAKING>.<FEATURE>.<FIX>-<TAG>
EXAMPLES
v1.0.1 v2.0.1-alpha v2.0.1-beta v2.1.0-latest
Department for Work & Pensions 24
From Monolith to Microservices by Andrew Rea
RESILIENT?
DOWNSTREAM

SYSTEMS
CIRCUIT BREAKER
CONFIRMATION BULK HEADS
HEALTH CHECKS
ALIVE READY
EXTERNAL
PERSISTENCE
ACKNOWLEDGEMENT
STATE EVENTS
STATELESS
AUTO-RECOVERY
Department for Work & Pensions 25
From Monolith to Microservices by Andrew Rea
RESILIENT?
DOWNSTREAM

SYSTEM
DOWNSTREAM

SYSTEM
TEST HARNESS
SWITCH OUT REAL

SYSTEM WITH A HARNESS RANDOM
STATUS CODE
TEST HARNESS
SLOW
RESPONSE
TEST HARNESS
HUGE
RESPONSE
TEST HARNESS
EMPTY
RESPONSE
TEST HARNESS
BAD
GATEWAY
RESPONSE
TEST
NO RESPONSE
TEST HARNESS
HOW WILL THE SERVICE RESPOND

TO ABNORMAL SYSTEM DEPENDENCIES?



LETS FIND OUT BEFORE WE GO LIVE!
Department for Work & Pensions 26
From Monolith to Microservices by Andrew Rea
RESILIENT?
SERVICE TESTING UNIT TESTING INTEGRATION TESTINGACCEPTANCE TESTING
MUTATION TESTING FUZZING TESTINGSTATIC CODE ANALYSIS
PERFORMANCE TESTING LOAD TESTING STRESS TESTING IMPULSE TESTING LONGEVITY TESTING
FAILURE TESTING
SECURITY TESTING
SMOKE TESTING
RELEASE TESTING ROLLBACK TESTING
FUNCTIONAL
CROSS FUNCTIONAL
Department for Work & Pensions 27
From Monolith to Microservices by Andrew Rea
WHEN SHOULD THE TEAM DEPLOY?
WHEN CAN THE TEAM DEPLOY?
Department for Work & Pensions 28
From Monolith to Microservices by Andrew Rea
A LOT OF THIS IS NOT NEW
GOOD DESIGN PRACTICES 

& PRINCIPLES
BUT THEY DON’T COME FOR FREE!
Department for Work & Pensions 29
From Monolith to Microservices by Andrew Rea
CHEAT SHEET
EXTERNAL
INTERNAL
AGGREGATION
CORRELATION
VISUALIZATION
REPORTING
API
LOGGING
DATA
MESSAGING
APPLICATION
INTEGRATION
OPERATION
HTTPS
XML JSON
SOAP REST
THROTTLING AUTHENTICATION AUTHORIZATION
CIRCUITBREAKER
INSPECTION ROUTING
CIRCUITBREAKER
BULKHEADS
CIRCUITBREAKER
BULKHEADS
BULKHEADS
RELIABLEMESSAGING
DURABLEMESSAGING
HEALTH
DEPLOYMENT SERVICE REGISTRATION
CONFIGURATION READINESS CHECKS
STRUCTURED
LOGGING
TIMESERIES
BUSINESS
APPLICATION
INFRASTRUCTURE
NETW
ORK
ERRORCATALOG
EVENTCATALOG
INFORMATION DISCOVERABLE API
BACKUP
SECURITYSECURITY SECURITY
TESTHARNESSES
CONTINUOUS
INTEGRATION
CODE REPOSITORY
DATA STORES
Application
Identity
PROTECTIVE
MONITORING
COMMANDS QUERIES
EVENTS
DOMAIN MODEL
DOMAIN SERVICES
VERSIONING
DOMAIN EVENTS
CORRELATION
ID
SERVICE DEPENDENCIES
SUBSCRIBING SERVICES
HORIZONTAL SCALING
FAILOVER
RECOVERY
PUBLISH
EVENT LOG
SUBSCRIBE
SECURITY
KEY SECURITY
ENCRYPTION IN TRANSIT
ENCRYPTION AT REST
SECURE DEVELOPMENT, DEPLOYMENT &
OPERATIONAL PRACTICES AND PRINCIPLES
CONTAINER
IMAGE
CONSISTENCY
BOUNDARY
API
GATEWAY
SERVICE
FABRIC
SERVICE
REGISTRY
LOAD
BALANCER
W
RITESTORE
READ
STORE(S)
REVERSE PROXY
INSPECTION
APPLICATION FIREWALLS
INSPECTION
ENCAPSULATION
BOUNDARY
CONTAINER
REGISTRY
HEXAGANOL ARHCICTECTURE
Version 1 Microservices Infograhic by Andrew Rea
EXTERNAL
MONITORING
MONITORING
MONITORING
?
SERVICE
DISCOVERY
DATA
STOREISOLATION
AMQP
MQTT
HTTP
other…
GRAPH
DOCUMENT
KEY/VALUE
RELATIONAL
COLUMN
FLATFILE

Más contenido relacionado

Similar a Dwp from monolithtomicroservices

RHEL_Overview_Customer_Presentation_(golddeck)_customer_version
RHEL_Overview_Customer_Presentation_(golddeck)_customer_versionRHEL_Overview_Customer_Presentation_(golddeck)_customer_version
RHEL_Overview_Customer_Presentation_(golddeck)_customer_version
tedm23
 

Similar a Dwp from monolithtomicroservices (20)

Zero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with KubernetesZero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with Kubernetes
 
Een andere kijk op Microservices
Een andere kijk op MicroservicesEen andere kijk op Microservices
Een andere kijk op Microservices
 
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
 
Digital Transformation | AWS Webinar
Digital Transformation | AWS WebinarDigital Transformation | AWS Webinar
Digital Transformation | AWS Webinar
 
CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspective
 
Bring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-appsBring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-apps
 
Evolution of Microservices - Craft Conference
Evolution of Microservices - Craft ConferenceEvolution of Microservices - Craft Conference
Evolution of Microservices - Craft Conference
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
 
Structure 2014 - Launchpad Competition
Structure 2014 - Launchpad CompetitionStructure 2014 - Launchpad Competition
Structure 2014 - Launchpad Competition
 
Yohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business AgilityYohanes Widi Sono - Modern Development for Business Agility
Yohanes Widi Sono - Modern Development for Business Agility
 
App Mod 03: Monoliths to microservices with java ee and spring boot
App Mod 03: Monoliths to microservices with java ee and spring bootApp Mod 03: Monoliths to microservices with java ee and spring boot
App Mod 03: Monoliths to microservices with java ee and spring boot
 
Decompose your monolith: strategies for migrating to microservices (Tide)
Decompose your monolith: strategies for migrating to microservices (Tide)Decompose your monolith: strategies for migrating to microservices (Tide)
Decompose your monolith: strategies for migrating to microservices (Tide)
 
#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith#DevNexus202 Decompose your monolith
#DevNexus202 Decompose your monolith
 
The "Why", "What" & "How" of Microservices - short version
The "Why", "What" & "How" of Microservices - short versionThe "Why", "What" & "How" of Microservices - short version
The "Why", "What" & "How" of Microservices - short version
 
RHEL_Overview_Customer_Presentation_(golddeck)_customer_version
RHEL_Overview_Customer_Presentation_(golddeck)_customer_versionRHEL_Overview_Customer_Presentation_(golddeck)_customer_version
RHEL_Overview_Customer_Presentation_(golddeck)_customer_version
 
AWS Summit Kuala Lumpur - Opening Keynote by Dr. Werner Vogels
AWS Summit Kuala Lumpur - Opening Keynote by Dr. Werner VogelsAWS Summit Kuala Lumpur - Opening Keynote by Dr. Werner Vogels
AWS Summit Kuala Lumpur - Opening Keynote by Dr. Werner Vogels
 
Duplicating data or replicating data in Micro Services
Duplicating data or replicating data in Micro ServicesDuplicating data or replicating data in Micro Services
Duplicating data or replicating data in Micro Services
 
AWS Summit Manila - Opening Keynote by Dr. Werner Vogels
AWS Summit Manila - Opening Keynote by Dr. Werner Vogels AWS Summit Manila - Opening Keynote by Dr. Werner Vogels
AWS Summit Manila - Opening Keynote by Dr. Werner Vogels
 
Digital foundations - Fixing slow delivery of existing applications
Digital foundations - Fixing slow delivery of existing applicationsDigital foundations - Fixing slow delivery of existing applications
Digital foundations - Fixing slow delivery of existing applications
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Dwp from monolithtomicroservices

  • 1. Department for Work & Pensions 1 From Monolith to Microservices by Andrew Rea
  • 2. Department for Work & Pensions 2 From Monolith to Microservices by Andrew Rea Know your Monolith API CONUSMERS APPLICATION DATABASE API BUSINESS LOGIC DATA ACCESS PRESENTATION APIAPI DATABASE Service 1 Service 2 Service “n” DB DB DB Service 1 Service 2 Service “n” Access Postgres MSSQL WORD DOCUMENT EXCEL DOCUMENT VBA APPLICATION UI Business Logic Data Access Database Logging Reports Open Monolith Database Monolith Distributed Monolith Paper Monolith Office Monolith Closed Monolith
  • 3. Department for Work & Pensions 3 From Monolith to Microservices by Andrew Rea That’s another fine mess you’ve gotten me into APPLICATION DATABASE CODE CODECODE CODE TABLE TABLETABLE TABLE STRONG CODE COUPLING STRONG DB COUPLING DATABASE COUPLING NO DOMAIN BOUNDARIES IMPLICIT RELATIONSHIPS
  • 4. Department for Work & Pensions 4 From Monolith to Microservices by Andrew Rea That’s another fine mess you’ve gotten me into APPLICATION DATABASE CODE CODECODE CODE TABLE TABLETABLE TABLE £ £ £ INCREASES COST INCREASES IMPLEMENTATION TIME DECREASES VELOCITY INCREASES RISK INCREASES DEPLOYMENT SIZE INCREASES COMPLEXITY INCREASES CODE FEAR INCREASES BUILD TIME INCREASES TEST TIME
  • 5. Department for Work & Pensions 5 From Monolith to Microservices by Andrew Rea Microservices? APPLICATION DATABASE SERVICE SERVICESERVICE SERVICE TABLE TABLE TABLE TABLE NOT YET 
 BUT… THIS IS MANAGEABLE
  • 6. Department for Work & Pensions 6 From Monolith to Microservices by Andrew Rea APPLICATION DATABASE SERVICE SERVICESERVICE SERVICE TABLE TABLE TABLE TABLE Microservices? NOT YET BUT… THIS IS MANAGEABLE LOOSE COUPLING HIGH COHESION ENCAPSULATION DATABASE DECOUPLING DOMAIN BOUNDARIES EXPLICIT RELATIONSHIPS SERVICE INTEGRATION SERVICE COMPOSITION
  • 7. Department for Work & Pensions 7 From Monolith to Microservices by Andrew Rea What are Microservices? SMALL HOW SMALL? INTEROPERABLE HOW? INDEPENDENT HOW? A REASON TO RE-STRUCTURE YOUR TEAMS WHY? RESILIENT HOW?
  • 8. Department for Work & Pensions 8 From Monolith to Microservices by Andrew Rea How do you get there? GOOD DESIGN PRACTICES
 & PRINCIPLES
  • 9. Department for Work & Pensions 9 From Monolith to Microservices by Andrew Rea SEPARATE PROCESS PER SERVICE APPLICATIONS DATABASES TABLE TABLE EASIER TO ADOPT DIFFERENT TECH INDEPENDENTLY HOSTED INDEPENDENTLY DEPLOYABLE INDEPENDENTLY SCALABLE SERVICE SERVICE SERVICE SERVICE GRAPH KEY / VALUEDOC
  • 10. Department for Work & Pensions 10 From Monolith to Microservices by Andrew Rea INDEPENDENT - HOW? DEVELOP INDEPENDENTLY DEPLOY INDEPENDENTLY BUILD INDEPENDENTLY OPERATE INDEPENDENTLY MONITOR INDEPENDENTLY SURVIVE INDEPENDENTLY VERSION INDEPENDENTLY PROCESS CONTINUOUS INTEGRATION CODE REPOSITORY DATA STORES CONTAINER IMAGE SERVICE DISCOVERY DNS (A-RECORD) QUEUES PROVISIONING SCRIPTS CERITIFICATES LOGICAL Encapsulation Boundary REQUIREMENTS LOAD BALANCER POOL MONITORING GROUP SERVICE PHYSICAL Encapsulation Boundary VERSION
  • 11. Department for Work & Pensions 11 From Monolith to Microservices by Andrew Rea INTEROPERABLE - HOW? COMMON TRANSPORT PROTOCOL RESTFUL API PUBLISH AND SUBSCRIBE CAPABILITY EVENT STREAM STRUCTURED LOGGING IN COMMON FORMAT SERVICE RESTFUL API OVER HTTPS COMMANDS QUERIES EVENTS STD OUTMETRICS STD ERROR LOG AGENT LOG AGGREGATOR
  • 12. Department for Work & Pensions 12 From Monolith to Microservices by Andrew Rea SEPARATE SERVICES BY BUSINESS CAPABILITY SERVICE DOMAIN 1 DOMAIN 2 DOMAIN 3 SERVICE 1 DOMAIN 1 SERVICE 2 DOMAIN 2 SERVICE 3 DOMAIN 3 Monolith Microservices
  • 13. Department for Work & Pensions 13 From Monolith to Microservices by Andrew Rea HOW DO THEY SCALE? SERVICE DOMAIN 1 DOMAIN 2 DOMAIN 3 SERVICE DOMAIN 1 SERVICE DOMAIN 2 SERVICE DOMAIN 3 SERVICE DOMAIN 1 DOMAIN 2 DOMAIN 3 SERVICE DOMAIN 1 DOMAIN 2 DOMAIN 3 SERVICE DOMAIN 3 SERVICE DOMAIN 1 SERVICE DOMAIN 3 SERVICE DOMAIN 3 SERVICE DOMAIN 3 SERVICE DOMAIN 2 SERVICE DOMAIN 2 SERVICE DOMAIN 1 Monolith Microservices SAVES MONEY
  • 14. Department for Work & Pensions 14 From Monolith to Microservices by Andrew Rea DOES THIS HELP SECURITY? WE CAN DEPLOY SEPARATE INSTANCES OF THE SAME SERVICE IN DIFFERENT SECURITY ZONES TO MATCH THE SENSITIVITY OF THE DATA WHICH THE SERVICE INSTANCE WILL BE HANDLING. TRUST 1 TRUST 2 SERVICE SEARCH SERVICE SEARCH SERVICE SEARCH SERVICE SEARCH SERVICE SEARCH SERVICE BOOKING SERVICE BOOKING SERVICE BOOKING SERVICE AVAILABILITY SERVICE AVAILABILITY SERVICE AVAILABILITY SERVICE AVAILABILITY DMZ SERVICE SEARCH SERVICE BOOKING SERVICE AVAILABILITY
  • 15. Department for Work & Pensions 15 From Monolith to Microservices by Andrew Rea SEPARATE BUILD PIPELINES SERVICE 1 SERVICE 2 SERVICE 3 COMMIT FUNCTIONAL NON-FUNCTIONAL SMOKE TESTSRELEASE SERVICE 1 SERVICE 1 SERVICE 1 SERVICE 1 INDEPENDENT BUILD PIPELINES INDEPENDENT BUILD SCRIPTS INDEPENDENT PROVISION SCRIPT ISOLATED TEST ENVIRONMENTS
  • 16. Department for Work & Pensions 16 From Monolith to Microservices by Andrew Rea SEPARATE SOURCE CONTROL SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE GIVE EACH SERVICE ITS OWN SOURCE REPOSITORY
  • 17. Department for Work & Pensions 17 From Monolith to Microservices by Andrew Rea SEPARATE SOURCE CONTROL GIVE EACH SERVICE ITS OWN SOURCE REPOSITORY TEAMTEAM TEAM SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE Who
 Owns
 This?
  • 18. Department for Work & Pensions 18 From Monolith to Microservices by Andrew Rea A REASON TO RESTRUCTURE YOUR TEAMS SERVICE AVAILABILITY SERVICE BOOKING SERVICE SEARCH SERVICE PROVIDERS SERVICE SEARCH SERVICE PROVIDERS SERVICE AVAILABILITY SERVICE BOOKING SERVICE (NOT COMPONENT) TEAMS FEATURE TEAMS OR BOTH?BOTH CAN PLAY A VALUABLE PART IN A MICROSERVICES ARCHITECTURE
 BOTH HAVE THE SAME TEAM STRUCTURE PULL REQUESTS ANYONE?
  • 19. Department for Work & Pensions 19 From Monolith to Microservices by Andrew Rea HOW SMALL (OR LARGE)? 2000 LINES OF CODE? TWO PIZZA TEAM SIZE? CAN BE RE-WRITTEN IN TWO WEEKS? MODELS A SINGLE CONTEXT? HOW ABOUT ALL OF THE ABOVE? What thought processes do the above questions trigger about your design? TOO BIG? MAKE SMALLER, TOO SMALL? MAKE BIGGER
  • 20. Department for Work & Pensions 20 From Monolith to Microservices by Andrew Rea HOW DO THEY COMMUNICATE CALL CALL CALL SERVICE DOMAIN 1 SUBSCRIBE SUBSCRIBE SUBSCRIBE CALL CALL CALL OR BOTH DIRECT INVOCATION EVENT DRIVEN SERVICE DOMAIN 1 SERVICE DOMAIN 2 SERVICE DOMAIN 3 SERVICE DOMAIN 4 SERVICE DOMAIN 2 SERVICE DOMAIN 3 SERVICE DOMAIN 4
  • 21. Department for Work & Pensions 21 From Monolith to Microservices by Andrew Rea WHAT ABOUT MONITORING? CALL CALL CALL META ENDPOINTS MESSAGE CORRELATION SYNTHETIC MONITORING HEALTH CHECK METRICS INFORMATION STRUCTURED LOGGINGBUSINESS APPLICATION INFRASTRUCTURENETWORK LOCAL -> AGENT -> REMOTE
  • 22. Department for Work & Pensions 22 From Monolith to Microservices by Andrew Rea HOW DO CONSUMING APPS GET STABILITY? SERVICE DOMAIN 1 Stable Next Latest CONSUMER A DEVELOPERS VERSIONS WITH DIFFERENT LEVELS OF STABILITY Consuming “Stable” in Production Testing integration with “Next” Researching “Latest”
  • 23. Department for Work & Pensions 23 From Monolith to Microservices by Andrew Rea HOW TO VERSION THE SERVICES? <MAJOR>.<MINOR>.<PATCH>-<TAG> https://medium.com/javascript-scene/software-versions-are-broken-3d2dc0da0783#.wcyli1rt2 http://semver.org <BREAKING>.<FEATURE>.<FIX>-<TAG> EXAMPLES v1.0.1 v2.0.1-alpha v2.0.1-beta v2.1.0-latest
  • 24. Department for Work & Pensions 24 From Monolith to Microservices by Andrew Rea RESILIENT? DOWNSTREAM
 SYSTEMS CIRCUIT BREAKER CONFIRMATION BULK HEADS HEALTH CHECKS ALIVE READY EXTERNAL PERSISTENCE ACKNOWLEDGEMENT STATE EVENTS STATELESS AUTO-RECOVERY
  • 25. Department for Work & Pensions 25 From Monolith to Microservices by Andrew Rea RESILIENT? DOWNSTREAM
 SYSTEM DOWNSTREAM
 SYSTEM TEST HARNESS SWITCH OUT REAL
 SYSTEM WITH A HARNESS RANDOM STATUS CODE TEST HARNESS SLOW RESPONSE TEST HARNESS HUGE RESPONSE TEST HARNESS EMPTY RESPONSE TEST HARNESS BAD GATEWAY RESPONSE TEST NO RESPONSE TEST HARNESS HOW WILL THE SERVICE RESPOND
 TO ABNORMAL SYSTEM DEPENDENCIES?
 
 LETS FIND OUT BEFORE WE GO LIVE!
  • 26. Department for Work & Pensions 26 From Monolith to Microservices by Andrew Rea RESILIENT? SERVICE TESTING UNIT TESTING INTEGRATION TESTINGACCEPTANCE TESTING MUTATION TESTING FUZZING TESTINGSTATIC CODE ANALYSIS PERFORMANCE TESTING LOAD TESTING STRESS TESTING IMPULSE TESTING LONGEVITY TESTING FAILURE TESTING SECURITY TESTING SMOKE TESTING RELEASE TESTING ROLLBACK TESTING FUNCTIONAL CROSS FUNCTIONAL
  • 27. Department for Work & Pensions 27 From Monolith to Microservices by Andrew Rea WHEN SHOULD THE TEAM DEPLOY? WHEN CAN THE TEAM DEPLOY?
  • 28. Department for Work & Pensions 28 From Monolith to Microservices by Andrew Rea A LOT OF THIS IS NOT NEW GOOD DESIGN PRACTICES 
 & PRINCIPLES BUT THEY DON’T COME FOR FREE!
  • 29. Department for Work & Pensions 29 From Monolith to Microservices by Andrew Rea CHEAT SHEET EXTERNAL INTERNAL AGGREGATION CORRELATION VISUALIZATION REPORTING API LOGGING DATA MESSAGING APPLICATION INTEGRATION OPERATION HTTPS XML JSON SOAP REST THROTTLING AUTHENTICATION AUTHORIZATION CIRCUITBREAKER INSPECTION ROUTING CIRCUITBREAKER BULKHEADS CIRCUITBREAKER BULKHEADS BULKHEADS RELIABLEMESSAGING DURABLEMESSAGING HEALTH DEPLOYMENT SERVICE REGISTRATION CONFIGURATION READINESS CHECKS STRUCTURED LOGGING TIMESERIES BUSINESS APPLICATION INFRASTRUCTURE NETW ORK ERRORCATALOG EVENTCATALOG INFORMATION DISCOVERABLE API BACKUP SECURITYSECURITY SECURITY TESTHARNESSES CONTINUOUS INTEGRATION CODE REPOSITORY DATA STORES Application Identity PROTECTIVE MONITORING COMMANDS QUERIES EVENTS DOMAIN MODEL DOMAIN SERVICES VERSIONING DOMAIN EVENTS CORRELATION ID SERVICE DEPENDENCIES SUBSCRIBING SERVICES HORIZONTAL SCALING FAILOVER RECOVERY PUBLISH EVENT LOG SUBSCRIBE SECURITY KEY SECURITY ENCRYPTION IN TRANSIT ENCRYPTION AT REST SECURE DEVELOPMENT, DEPLOYMENT & OPERATIONAL PRACTICES AND PRINCIPLES CONTAINER IMAGE CONSISTENCY BOUNDARY API GATEWAY SERVICE FABRIC SERVICE REGISTRY LOAD BALANCER W RITESTORE READ STORE(S) REVERSE PROXY INSPECTION APPLICATION FIREWALLS INSPECTION ENCAPSULATION BOUNDARY CONTAINER REGISTRY HEXAGANOL ARHCICTECTURE Version 1 Microservices Infograhic by Andrew Rea EXTERNAL MONITORING MONITORING MONITORING ? SERVICE DISCOVERY DATA STOREISOLATION AMQP MQTT HTTP other… GRAPH DOCUMENT KEY/VALUE RELATIONAL COLUMN FLATFILE