当今时代有一个比较显著的特征是复杂性,许多企业深陷其中找不到解决方案。日前,在2024亚马逊云科技re:Invent全球大会上,亚马逊副总裁兼首席技术官Werner Vogels博士做了题为“繁简之道”(The Way of Simplexity)的演讲,阐释了亚马逊云科技20年构建架构以应对复杂性的6条关键经验。Werner Vogels博士认为“复杂性”不是问题,而“预见和管理复杂性”才是个问题。
从复杂性的特点来看,涉及大量不同元素,这些元素之间存在着众多不同的联系。这种多元性和关联性使得系统变得错综复杂,在企业所处的环境中,内部不同部门、技术、人员和业务之间相互交织,外部合作伙伴、供应商及渠道,还有各种利益相关者,形成一个庞大而复杂的网络,他们各自的工作和决策相互影响,任何一个环节的变动都可能引发连锁反应,反应的路径独特且难以预测。
这种复杂性带来了一系列严峻挑战,在认知方面常超出人们的认知极限,决策者面对复杂组织架构与业务流程时难以把握内在联系,致使决策缺乏全面性与准确性。管理上,系统可理解性降低,难以确定单个元素价值功能,像大型企业IT系统故障时难以定位解决。此外,还引发不可预测性,系统会有自发意外行为,干预也可能产生意外影响,这使得预测系统行为结果困难,增加决策风险与不确定性。
随着AI,尤其是生成式AI的发展,为解决复杂性问题提供了新的解决方案。以下是Werner Vogels博士梳理的亚马逊云科技20年构建架构以应对复杂性的经验。
经验1 将可演化性作为要求
可演化性是应对复杂性的一种预判。亚马逊云科技在架构构建初期便认识到系统随时间演变的必然性并将可演化性理念植入其中。早期,Amazon S3(亚马逊云科技于2006年成立后推出的首款服务)专注于基础存储功能,如可靠的数据存储、高可用性及版本控制。虽然亚马逊云科技一直在为Amazon S3增加新功能,但是客户几乎无感,正是因为亚马逊云科技通过可控演进的架构为Amazon S3不断拓展新需求,且不影响其核心功能。随着市场的动态演进,Amazon S3推出跨区域复制功能,为跨国企业全球数据管理带来了显著突破,实现了数据的低延迟访问和高冗余性,以有力地支持了企业全球化业务拓展。
亚马逊云科技的这种策略要求企业管理者具备长远的战略眼光,不能仅仅满足于当下的业务需求。他们需要鼓励团队密切关注行业趋势和技术前沿,提前规划架构的演进路径,确保系统能够在不中断业务的情况下平滑升级。这意味着企业要在资源分配上给予一定的灵活性,支持团队对架构进行持续优化,避免因短期利益而忽视长期可演化性,从而有效应对市场和技术变革带来的复杂性挑战。
经验2 拆解复杂性为构建模块
面对日益复杂的系统,亚马逊云科技采用了将其拆分为多个功能明确、内聚性高且相互独立模块的策略。Amazon CloudWatch是实时监控亚马逊云科技资源运行的应用程序,随着系统不断扩展,Amazon CloudWatch作为亚马逊云科技关键基础服务之一,每天有成百上千亿的指标,复杂性也达到了新的高度。亚马逊云科技通过将Amazon CloudWatch拆分为一系列低耦合、高内聚的小组件,并定义良好的API接口,提供非常简单的前端服务。该服务经过一次次重写,在为客户提供新功能的同时,并不会带来中断。
清晰的API定义促进了模块间的松散耦合,使得团队能够独立工作。这种架构方式为企业带来了诸多显著益处。以作为全球设计平台的Canva为例,在从单体架构向微服务架构转变过程中,利用了模块化解构的优势。他们在单体架构设计时就为未来扩展精心规划,围绕关键功能设计构建模块,封装服务接口,并通过严格规则确保接口一致性。当业务增长需要扩展时,这些接口能够顺利转换为微服务的桩,实现了架构的平稳过渡。
经验3 组织与架构匹配
亚马逊云科技构建了与架构高度契合的组织架构,采用著名的“两个披萨团队”模式组建小团队。小规模团队使成员能够深入理解系统,迅速把握系统各部分之间的关系。在面对不断增长的数据存储需求和复杂的技术挑战时,Amazon S3团队成员主动探索新的存储技术和优化方案,突破传统思维,挑战既有模式。
这种组织模式营造了积极创新的文化氛围。小规模团队专注于特定功能模块开发,团队成员对所负责部分有强烈归属感和责任感,能够充分发挥自身创造力,积极提出创新想法并付诸实践。管理者通过赋予团队自主权,鼓励员工像企业主人一样思考和行动,激发员工的主人翁意识。员工在这种环境下,不仅能够充分发挥自身创造力,还能积极承担责任,在复杂多变的市场环境中迅速适应变化,提升应对复杂性的能力。
经验4 组织成单元形式
亚马逊云科技认为在复杂系统中必须缩小单元的影响范围,从而将复杂系统依客户或区域等因素划分为独立单元,单元化架构使每个单元能够独立运行、测试、部署和扩展。当某个单元出现问题时,例如某个区域的存储节点发生故障,故障影响范围被有效限制在该单元内,不会扩散至整个系统,从而确保了系统整体的稳定性和可靠性。
单元化架构为管理者提供了精细化管理的有效手段。在全球电商业务场景下,依地域或业务线精准划分单元,凭借哈希算法或客户ID精准分发请求,确保请求精准抵达对应单元,依据业务负载变化灵活调控单元数量与资源配置,如遇购物节流量高峰,可智能扩充单元资源应对峰值需求;业务淡季则适当收缩,优化资源利用,保障系统在复杂多变业务场景下始终稳定、高效、可靠运行。单元化架构还为系统迭代升级提供了便利,降低了升级过程对整体业务的干扰,使得企业能够更加从容地应对复杂环境下的各种变化,保障业务的连续性和稳定性。
经验5 设计可预测系统
这么做可以减少不确定性因素对系统的干扰。Amazon S3里配置文件采用的定期拉取文件策略,有效确保系统在配置更新时不受外部事件随机影响,按照预定时间间隔获取最新配置,从而保证系统行为的稳定性和一致性。无论是在网络波动还是高并发访问等复杂情况下,Amazon S3都能为用户提供可靠的数据存储服务。
当然,这也要求在系统规划和设计阶段要充分考虑各种不确定性因素。在架构设计时,管理者需要充分考虑不确定因素,制定清晰明确的规则和流程,确保系统在不同场景下都能按照预期运行,提前识别可能影响系统可预测性的潜在风险。
经验6 使复杂性自动化
亚马逊云科技运用自动化技术处理系统中重复性高、规律性强且无需复杂判断的任务。自动化的健康检查系统可以实时监测存储节点状态,及时发现并处理潜在问题,确保系统稳定运行。数据备份和容量扩展依据预设规则自动执行,不仅提高了工作效率,还减少了人工干预可能导致的错误,保障了数据安全和服务可用性。
Too Good To Go(外卖APP)在应对全球食品浪费问题的业务中,利用亚马逊云科技提供的自动化技术优化了基础设施管理。他们通过自动化手段实现了对基础设施的优化,利用亚马逊云科技的云数据库Amazon Aurora、搜索和数据分析服务Amazon OpenSearch、消息队列服务Amazon SQS等产品,提升了系统性能和跨区域拓展能力。另一方面,管理者注重对员工的培训,使其掌握与自动化系统协作的技能,将人力资源从繁琐和重复性的工作中解放出来,投入到更具创造性和价值的工作中。
亚马逊云科技提炼出的应对复杂性的6条关键经验,已经被越来越多的企业印证。它可以让企业在复杂多变的内外部环境中找到头绪、理清重点、有的放矢地解决问题。
邓勇兵和邹群英是《哈佛商业评论》中文版特约撰稿。
邓勇兵 邹群英 | 文 李全伟 | 编辑