一、架构劣化的本质
随着业务规模的扩张,服务数量急剧增加,导致架构复杂度急剧上升。这种复杂度的增加主要体现在服务数量的爆炸式增长、服务依赖的严重性、部门间的依赖以及工程体积的巨大化。这些因素严重拖累了研发效率和稳定性,影响了个人编码效率,并威胁了业务稳定性。
二、架构治理的方法与原则
为了应对这些问题,快手采取了领域划分、服务分层和依赖拆分的方法。领域划分遵循互斥、重用和分层的原则,服务分层则包括API服务、聚合服务和领域服务。此外,微服务设计原则强调了以业务为中心、高内聚低耦合、服务高度自治、服务鲁棒性设计、服务可诊断性和服务可持续交付。
三、架构合理性的标准与定义
快手制定了架构成熟度模型,从架构设计成熟度、工程依赖成熟度和服务运行健康度三个维度进行诊断。通过制定五星级标准,多维度数据分析,以及阶梯式打分算法,为部门管理者和业务架构师提供全面报告。
四、数据驱动的架构问题洞察
通过领域规划合理性指标、服务设计合理性指标、工程依赖合理性指标和服务运行时健康度指标,快手能够全面洞察架构问题,并指导治理方向,提升服务架构的合理性。
五、产品化/工具化
快手开发了多种工具,如链路溯源工具、归因分析工具和收益预测工具,以帮助工程师识别问题点、解决问题,并防止问题恶化。
六、大规模组织下的治理推动
面对大规模组织,快手采取了传染病防治法的治理方针,通过全员筛查、重点区域隔离和重点病症手术,有效推动了架构治理。
七、效果提升与投入
经过一年多的治理,快手的业务研发效率、个人编码效率和业务稳定性均得到了显著提升。
八、长期规划愿景
快手的长期规划愿景是构建合理领域、标准工程、优质代码和健康服务的架构,以实现效率、成本、稳定性和体验的业务价值。
通过这些最佳实践,快手成功地应对了超大规模服务架构的挑战,为其他大型互联网公司提供了宝贵的经验和参考。