🏡 Back Home
🔎 Search
Scalability
Scalability
Horizontal vs. Vertical Scaling
Horizontal scaling means that you scale by adding more servers into your pool of resources whereas Vertical scaling means that you scale by adding more power (CPU, RAM, Storage, etc.) to an existing server.
Scaling types
- operation scale: add more hardware
- efficiency scaling: optimise code
- architectural scaling: refactor architecture
Scalability Best Practices
Limited Function Services
- loosely coupled through message q, or versioned apis
- bias towards microservices
- single or limited business function
Monitors, Alerts, Dashboards
- performance monitors and utilization monitors
- client metrics / canaries for availability: availability, latency and error rate.
- utilization monitors: cpu, memory, disk space, thread pools, connections, VIP, spillovers
- set alarms threshold for alarms
- periodic ops reviews
Automatic operational scaling
- align allocated capacity close to actual utilization
- avoid being page for small increase in traffic
Load test with Profiler routinely
- early warning of scaling issues before release
- measure utilisation changes over time
- gather long term data
- automated load tests
Links