building systems that can pivot | zhamak dehghani, principal consultant, thoughtworks | andy maks,...
DESCRIPTION
Your customers are demanding more every day, and pushing you to deliver features faster than ever before. But do your systems let you move with the speed needed for achieving competitive advantage? This talk introduces concepts in system design that are driven by customers, and allow businesses to pivot faster, and with a higher level of confidence.TRANSCRIPT
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