BUILDING SYSTEMS THAT PIVOT Andy Marks [email protected] @andee_marks Zhamak Dehghani [email protected] @zhamakd
Nov 28, 2014
BUILDING SYSTEMS THAT PIVOT
Andy Marks [email protected]
@andee_marks
Zhamak Dehghani [email protected] @zhamakd
CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment • automated environment provisioning - cloud & virtualisation • automated testing
CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment • automated environment provisioning - cloud & virtualisation • automated testing
SP
EE
D O
F D
EL
IVE
RY
C D M A T U R I T Y L E V E L
Threshold without changing architecture
ARCHITECTURE
A THOUGHT EXPERIMENT
Build Test Integration Acceptance Production
System.out.println (“Hello World!”);
How long will this take?
ELEMENTS OF ARCHITECTURE
Integration
Off-the-shelf
Bespoke
Off-the-shelf
Bespoke
Integration
Integration
Integration
ELEMENTS OF ARCHITECTURE
Integration
Off-the-shelf
Bespoke
Off-the-shelf
Bespoke
Integration
Integration
Integration
BESPOKE DEVELOPMENT
MONOLITHIC ARCHITECTURES
LAYERED/TIERED ARCHITECTURE
User Interface/Channels
Business Logic/ Frameworks/Middleware
Database/Systems of Record ?
FINE-GRAINED ARCHITECTURE
BOUNDARIES
BOUNDARIES
A business capability
Placing Order
Tracking Order
Short-term experimentation
Drone Based
Delivery
Technology & security requirements
Debit Cards
Credit Card
Payments
CAN I RELEASE THESE INDEPENDENTLY?
A THOUGHT EXPERIMENT
Integration
Off-the-shelf MICRO SERVICES
• Independent • Business capability • Published interface
• Small • 100s, not 1000s
BENEFITS
User Interface/Channels
Business Logic/ Frameworks/Middleware
Database/Systems of Record
AUTONOMY
AUTONOMY ➡ SPEED
ABSORBS TECHNOLOGY FASTER
.NET
Clojure
Java
[SQL Database]
[Graph Database]
[Document Storage]
COMPOSE-ABILITY
AUTOMATE! AUTOMATE!
AUTOMATE!
AUTOMATION
Build Test Integration Acceptance Production
AUTOMATION Build Test Integration Acceptance Production
MONITORING
STATUS • Up? • Down?
STATUS • All up? • All down? • Mostly up? • Up apart from 1? • All of the important bits are up? • …
AMAZON PRODUCT PAGE
DOESN’T APPEAR… DO WE CARE?
A THOUGHT EXPERIMENT
Integration
Off-the-shelf
Bespoke
OFF-THE-SHELF SOFTWARE
PRODUCT SELECTION CRITERIA
• Can you write automated tests against it?
• Can it be automatically deployed?
• Can its environments be automatically provisioned?
• Can updates be automatically applied?
• Does it fit the way you work?
• Is it built using open standards?
• Does it run on open platforms?
• Is data stored in open formats?
• Is it open source?
COTS
TRADE SUBMISSION
CONFIRMATION RECEIPT
Hosted COTS
trade instructions
trade confirmations
A THOUGHT EXPERIMENT
Integration
Off-the-shelf
Bespoke
COMPONENT INTEGRATION
INTEGRATION
Smart & Complex Integration System
Simple & Dumb Integration
Open standards (e.g., HTTP)
Simple & Dumb Infrastructure SUMMARY
RECOMMENDATIONS
• Bespoke development ➡ microservices – Automate everything!
• Off-the-shelf software ➡ utility systems – Select for automation and open standards
• Component integration – Dumb, open and “of the web”
OTS
Bespoke
Bespoke
OTS
CONCLUSION