General Guiding Principles
• Stop guessing your capacity needs
• Test systems at production scale
• Automate to make architectural experimentation easier
• Allow for evolutionary architectures
Design based on changing requirements
• Drive architectures using data
• Improve through game days
Simulate applications for flash sale days
Best Practices – Design Principles
• Scalability: vertical & horizontal
• Disposable Resources: servers should be disposable & easily configured
• Automation: Serverless, Infrastructure as a Service, Auto Scaling...
• Loose Coupling:
Monoliths are applications that do more and more over time and become bigger
Break it down into smaller, loosely coupled components
A change or a failure in one component should not cascade to other components
• Services, not Servers:
Don’t use just EC2
Use managed services, databases, serverless, etc!
Last updated