
设计适用于百名用户的软件很简单。设计适用于十万名用户、在并发写入下保持数据一致性、并从基础设施故障中优雅恢复的软件,本身就是一门工程学科。wecopars将这种学科带入我们架构的每个系统。
我们专注于接收已达到当前架构上限的系统,并将其重新设计以应对下一个数量级;无论是引入水平扩展、将单体拆分为适当大小的服务,还是重新架构数据层以有效支持读密集型或写密集型工作负载。
我们应用的可扩展性模式
根据系统的具体瓶颈,我们应用经过验证的模式:用于数据库绑定系统的读副本和查询优化,用于内容密集型平台的CDN集成和边缘缓存,用于需要将生产者与消费者解耦的系统的事件驱动架构,以及用于流量可变部署的带自动扩展组的负载均衡。
负载测试是每次可扩展性项目的标准组成部分,我们建立清晰的基线并验证架构更改在进入生产之前达到预期改进。
可靠性与容错
可扩展性和可靠性是互补的关注点。能够扩展以处理峰值流量但在单个服务中断时失败的系统并不是真正可靠的。我们为故障隔离而设计;确保一个子系统的故障优雅地降级应用,而不是导致完全中断。
这包括外部依赖的断路器、所有服务的健康检查端点、优雅关闭程序,以及您的团队可以用来有效响应事故的运行手册文档。
