Microservices Not Monoliths - Using PaaS to Enable a Microservices Architecture
From Monoliths to Microservices at Realestate.com.au
-
Upload
evanbottcher -
Category
Software
-
view
317 -
download
0
Transcript of From Monoliths to Microservices at Realestate.com.au
Residential Commercial Media & Developer International
Group
Global A
rchitecture
Property
The Money
People & Experiences
(source: flickr)
(source: flickr)
(source: wikimedia)
Strategic Goals Architectural
Principles Design and Delivery
Practices
Enable scalable business More customers/transactions Self-service for customers
Support entry into new markets Flexible operational processes New products and operational processes
Support innovation in existing markets Flexible operational processes New products and operational processes
Reduce inertia Make choices that favour rapid feedback and change, with reduced dependencies across teams.
Eliminate accidental complexity Aggressively retire and replace unnecessarily complex processes, systems, and integrations so that we can focus on the essential complexity.
Consistent interfaces and data flows Eliminate duplication of data and create clear systems of record, with consistent integration interfaces.
No silver bullets Off the shelf solutions deliver early value but create inertia and complexity.
Standard REST/HTTP
Encapsulate legacy
Eliminate integration databases
Consolidate and cleanse data
Published integration model
Small independent Services
Continuous deployment
Minimal customisation of COTS/SAAS
Strategic Goals Architectural
Principles Design and Delivery
Practices
Enable scalable business More customers/transactions Self-service for customers
Support entry into new markets Flexible operational processes New products and operational processes
Support innovation in existing markets Flexible operational processes New products and operational processes
Reduce inertia Make choices that favour rapid feedback and change, with reduced dependencies across teams.
Eliminate accidental complexity Aggressively retire and replace unnecessarily complex processes, systems, and integrations so that we can focus on the essential complexity.
Consistent interfaces and data flows Eliminate duplication of data and create clear systems of record, with consistent integration interfaces.
No silver bullets Off the shelf solutions deliver early value but create inertia and complexity.
Standard REST/HTTP
Encapsulate legacy
Eliminate integration databases
Consolidate and cleanse data
Published integration model
Small independent Services
Continuous deployment
Minimal customisation of COTS/SAAS
Strategic Goals Architectural
Principles Design and Delivery
Practices
Enable scalable business More customers/transactions Self-service for customers
Support entry into new markets Flexible operational processes New products and operational processes
Support innovation in existing markets Flexible operational processes New products and operational processes
Reduce inertia Make choices that favour rapid feedback and change, with reduced dependencies across teams.
Eliminate accidental complexity Aggressively retire and replace unnecessarily complex processes, systems, and integrations so that we can focus on the essential complexity.
Consistent interfaces and data flows Eliminate duplication of data and create clear systems of record, with consistent integration interfaces.
No silver bullets Off the shelf solutions deliver early value but create inertia and complexity.
Standard REST/HTTP
Encapsulate legacy
Eliminate integration databases
Consolidate and cleanse data
Published integration model
Small independent Services
Continuous deployment
Minimal customisation of COTS/SAAS
Strategic Goals Architectural
Principles Design and Delivery
Practices
Enable scalable business More customers/transactions Self-service for customers
Support entry into new markets Flexible operational processes New products and operational processes
Support innovation in existing markets Flexible operational processes New products and operational processes
Reduce inertia Make choices that favour rapid feedback and change, with reduced dependencies across teams.
Eliminate accidental complexity Aggressively retire and replace unnecessarily complex processes, systems, and integrations so that we can focus on the essential complexity.
Consistent interfaces and data flows Eliminate duplication of data and create clear systems of record, with consistent integration interfaces.
No silver bullets Off the shelf solutions deliver early value but create inertia and complexity.
Standard REST/HTTP
Encapsulate legacy
Eliminate integration databases
Consolidate and cleanse data
Published integration model
Small independent Services
Continuous deployment
Minimal customisation of COTS/SAAS
Microservices Monoliths
Single service maintainability Fit-for-purpose technology choice Integration Complexity
Environment Provisioning Operational Complexity
Testing Complexity
Netscaler configs. Firewall rules. Name all the things consistently.
Configured package repository. Cron jobs. Service healthcheck
Run the specs. Run code hygiene. Keep all the gems up to date.
Configure monitoring. Enable NRPE. Configure apache.
Build an RPM. Configure dependencies. Ruby version. Configure
Passenger configs. Logrotate. Splunk forwarder. Logger
Create users. Configure NewRelic. Load rake tasks. Load
Connect to a database. Make connection pooling work.
Externalise configuration. Run database migrations. Chkconfigs.
(source: wikimedia)
Integration Complexity Environment Provisioning Operational Complexity
Testing Complexity
Single service maintainability Fit-for-purpose technology choice
Team managed infrastructure If you build it, you support it
Microservices Monoliths
CondorCustomerAcceptance
AcceptedContracts Adapter
Contracts CDM
Contract Proposals
Pricing
Account Manager
Assignments
CondorCustomerAcceptance
AcceptedContracts Adapter
Contracts CDM
Contract Proposals
Pricing
Account Manager
Assignments
CondorCustomerAcceptance
AcceptedContracts Adapter
Contracts CDM
Contract Proposals
Pricing
Account Manager
Assignments
Anti-corruption
Slow Easy to break
Hard to fix Scales BADLY
Lots of infrastructure
False negativesLots of set up
Integration Tests
Time Don’t know Monitoring
Communication
Cause Logging
Production Approval process
Integration tests
Slow Easy to break
Hard to fix Scales BADLY
Lots of infrastructure
False negativesLots of set up
Integration Tests
Single service maintainability Fit-for-purpose technology choice
Team managed infrastructure If you build it, you support it
Service Template Consumer Driven Contracts
Early detection Rapid Recovery
Integration Complexity Environment Provisioning Operational Complexity
Testing Complexity
Microservices Monoliths
One ‘Poppenservice’
= Two weeks(source: flickr.com)
(source: wikimedia)
“We aim to remove hurdles … and ensure the whole team has the knowledge to responsibly operate the system.”
- Hydra’s Vision
Single service maintainability Fit-for-purpose technology choice Team managed infrastructure++
If you build it, you support it Service Template
Consumer Driven Contracts Early detection (MTTD)
Rapid Recovery
Integration Complexity Environment Provisioning Operational Complexity
Testing Complexity
Microservices Monoliths
One ‘Poppenservice’ = Two hours
(source: flickr.com)
Service Service Service
Library
ServiceService
Service Service Service ServiceService
Service Service Service ServiceService
Service Service Service ServiceService
Service Service Service
Library
ServiceService
Service Service Service ServiceService
Service Service Service ServiceService
Service Service Service ServiceService
Fast feedback in isolation Rapid Recovery
Delivery Engineering Deliberate sharing
Service Custodianship
If you build it, you support it Harvest a service template Early detection of failures
Microservices is a long term strategy