Evolving toward microservicesHow HomeDepot.com made the switch
About me
Christopher GrantSr Architect HomeDepot.com
cgrantcgrant
Building the monolith
1996
2011
• 2 GB Java Deploy that took an hour
• Locking SCM (Clear Case) with no CI
• 3 Month long release Cycles
• 2-4 hour deploy outages
Breaking Down the Monolith
Our Objective
• Increase the rate of change
• Increase number developers
• Maintain and enhance operations
Agile
Domain Spaces
Continuous Integration Tooling
APIs
Feature Throttles
Result
2011 2015
Apps 1 30
Sales $1b $5b
Developers 170 300
Deploy frequency 3 month Weekly
2015 began moving to cloud & micro services
But wait
Theres more!!
Evolving Architectures
Iterative Architecture?
Changing the wheels while driving?
Evolutionary Architecture
Start with a vision
• Have a vision
• Understand your objectives
• Choose what matters
• Implement in stages
Decompose & Define Boundaries
• Understand business products & domains
• Identify people structures
• Review data models
• Look for the hard things
Architect for Change
• Prepare for future changes
• Be proactive not reactive
• Delay until the last responsible moment
• Expect but minimize future rework
Implement Safely
• Automate early and often
• Consider in-place and green-field
• Utilize feature switches and traffic throttles
• Encourage separation and independence
Top Related