PHASE: DESIGN
1. Make Cost a Non-Functional Requirement
Non-functional requirements are criteria that determine how a system operates...
- Consider Cost Early and Continuously: From the initial design phase...
- Balance Features, Time-to-Market, and Efficiency: Strive to create systems...
- Write Lean, Efficient Code: Efficient coding practices...
- Optimize Resources: Regularly review and adjust resource usage...
2. Systems That Last Align Cost to Business
- Revenue Sources and Profit Levers: Understand where your business makes money...
- Key Business Metrics: Identify the main metrics...
- Infrastructure Costs vs. Revenue: Maintain a clear understanding...
PHASE: MEASURE
3. Architecting is a Series of Trade-Offs
- Cost, Resilience, and Performance: These three often conflict...
- Finding the Right Balance: The goal is to strike a balance...
- Maximizing Value: Frugality isn't just about cutting costs...
4. Unobserved Systems Lead to Unknown Costs
- Invest in Monitoring and Observability: Use tools to track how your system is performing.
- Track Key Metrics: Monitor utilization, spending, errors...
- Transparency: Make cost metrics visible...
- Encourage Sustainable Practices: Transparency helps promote practices...
5. Cost-Aware Architectures Implement Cost Controls
- Decompose Applications: Break down applications into smaller...
- Tier Components by Criticality:
- Tier 1: Essential components...
- Tier 2: Important but can be scaled down...
- Tier 3: Nice-to-have features...
- Ensure Tunability: Make sure that your infrastructure...
- Link Cost Optimization to Business Impact: Always tie cost-saving...
PHASE: OBSERVE
6. Cost Optimization is Incremental
- Monitor Systems Regularly: Keep an eye on systems even after they are deployed.
- Use Profiling Tools: These tools can help identify areas...
- Review Resource Usage: Regularly check how resources are being used...
- Small Savings Add Up: Over time, small savings can lead to significant cost reductions...
7. Unchallenged Success Leads to Assumptions
- Avoid Complacency: Teams might assume that past technologies...
- Challenge Assumptions: Regularly question and evaluate existing technologies...
- Drive Innovation: Innovation often comes from challenging the status quo.
"The most dangerous phrase in the English language is: ‘We’ve always done it this way.’" - Grace Hopper