通过平台工程实现一致性和开发者自由之间的平衡
关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Backstage, Platform Engineering, Developer Autonomy, Consistency Management, Team Topologies, Service-First Strategy]
导读
无服务器架构使开发人员能够构建复杂的应用程序,将基础设施和运维责任转移给亚马逊云科技。平台工程在确保一致性和合规性,以及降低云端构建复杂性方面发挥着重要作用。了解平台团队如何提供有针对性的安全、成本、可观察性、可靠性和可持续性模式,同时保持开发人员的灵活性和敏捷性。探索基于Backstage的真实平台实现,包括无服务器API、事件驱动架构和容器化应用程序的常见应用模式。
演讲精华
以下是小编为您整理的本次演讲的精华。
下午好各位,感谢大家参加本次关于通过平台工程实现一致性与开发者自由度之间平衡的会议 - 这是大规模软件开发中最棘手的挑战之一。我是Matt Meckis,亚马逊云科技的无服务器专家,我将讨论我作为一名开发人员过渡到云原生世界的历程。
我将把时间交给我的同事Roland,他是我们的专家解决方案架构师主管,他将深入探讨基础设施的演进,以及我们如何将这些元素结合起来。然后,来自Globalization Partners的Dave Anderson将分享他们在构建面向服务的、架构良好的平台工程文化方面的实际经验。
今年标志着Lambda和ECS十周年纪念,这两项服务对于亚马逊云科技实现让开发人员专注于编写业务逻辑的愿景起到了关键作用。云革命改变了应用程序开发团队和基础设施团队的角色。开发人员承担了管理基础设施、计算、网络、数据库、安全性、成本优化和可持续性的责任 - 这些认知负荷过去由专门的基础设施团队处理。
“两个披萨团队”模型(即小型跨职能团队在构建和运行软件时拥有自主权)已成为一种流行方法。然而,这种自主权给开发人员带来了额外的复杂性。过去,开发人员的角色仅限于编写代码、编译并将其交给基础设施团队进行部署。现在,开发人员必须处理持续集成、持续交付、部署、基础设施管理、安全策略、成本监控和可持续编码实践。
这一转变带来了在开发者自由度与运营一致性之间寻求平衡的挑战。虽然开发人员渴望几乎无限的计算资源和快速创新的能力,但基础设施团队必须确保整个组织的性能、安全性、合规性和成本效率。
为了应对这些挑战,平台工程的概念应运而生。平台工程将平台视为一种产品,将开发人员视为客户。它提供自助服务API、自动化和防护栏,实现开发人员自主权的同时保持一致性和标准。
一个典型的平台堆栈包括供应、安全性、交付、可观察性、租户、网络、服务、账户策略、基础设施即代码和内部开发人员门户等组件。平台团队面临的常见挑战包括所有权、确定适当的抽象级别以及在开发团队中推动采用。
设计模式如账户即服务、模板即服务、集群即服务和平台即服务被用于实现适当的平衡。多账户策略(按业务线、工作流程阶段等因素划分账户)至关重要。像Backstage这样的开发人员门户为开发人员提供了类似产品的界面,可访问模板、最佳实践、文档和供应能力。
在Globalization Partners(GP)这家为企业提供全球雇佣专业人士服务的公司,平台工程对于扩展其雇主代理(EOR)产品至关重要。GP为客户在180多个国家雇佣的专业人士处理合规雇佣、薪酬、福利、保险和税务等方面的事宜。
Dave Anderson是GP的架构总监,他强调应用程序团队和基础设施团队之间的共生关系。两者不可或缺,实现适当平衡至关重要。GP从软件交付的整体角度出发,除了基础设施和应用程序,还考虑了团队、价值和流程。
GP采用了亚马逊云科技的架构优化框架作为标准,使开发团队能够快速流动,专注于解决业务问题,而不是陷入技术细节。他们的系统架构遵循面向服务、领域驱动和事件驱动的方法,自主团队负责特定领域和功能。
Backstage作为GP的开发人员门户,为团队提供了单一窗口,可访问脚手架无服务器API、管道和配置。GP鼓励团队遵循行业最佳实践和标准,从一组推荐服务(如EventBridge、Lambda、Step Functions、DynamoDB和CodeDeploy)开始。
FinOps实践确保团队具有成本意识,并优化工作负载以提高效率。团队使用STRIDE框架进行自身威胁建模,识别其组件的威胁和缓解措施,并在安全团队的指导下进行。
定期进行“SCAR”(安全性、成本、运营可靠性和性能)持续架构优化评审,这种无过错的事前剖析允许团队量化非功能性KPI、识别潜在问题并在安全空间内分享疑虑,从而促进持续改进。
GP新工作负载的入职流程包括构思、事件风暴、领域驱动设计和迭代开发,最终部署到生产环境。Dave通过一个真实案例演示了这一流程,其中一月份的事件风暴会议导致了一个新系统的开发和生产部署,用于在4月份合规地从不同国家的专业人士那里收集信息。
在整个过程中,重点始终是将团队与业务问题保持一致、通过事件驱动和领域驱动技术设置明确的边界,并为团队提供正确的工具、流程和支持。
GP平台工程之旅的关键经验教训包括目标明确的重要性、团队失败和学习的心理安全感、通过面向服务和事件驱动架构实现简单性,以及使用架构优化框架进行持续测量和改进。
总之,在亚马逊云科技 re:Invent 2024大会上,本次会议全面概述了平台工程作为实现大规模开发者自主权与一致性之间平衡的手段。亚马逊云科技和Globalization Partners的真实案例和最佳实践阐释了采用平台工程方法在现代软件开发中所面临的挑战、解决方案和好处。
下面是一些演讲现场的精彩瞬间:
演讲者阐述了在大规模运行软件时,如何平衡开发人员的创新自由与保持一致性的挑战。
《团队拓扑》的作者Emmanuel Pais在《平台宣言》中强调了团队和互动的重要性胜过工具和功能,突出了应用开发和基础设施之间的共生关系,以及通过自助服务模式为内部客户提供无障碍服务的目标。
Andy Jassy强调了团队拥有安全性的重要性,并使用STRIDE框架进行威胁建模,使开发人员能够识别潜在威胁并实施适当的缓解措施。
Andy Jassy强调通过“scarp”实践创建一个安全的空间,让工程师分享关切和想法,促进持续改进和团队指导。
强调在开发和测试之前,了解新工作负载的目的、关键绩效指标和业务成果的重要性。
一张屏幕截图展示了从binder上下文中的axel架构图,说明了使用亚马逊云科技服务(如EventBridge、Lambda、DynamoDB、API Gateway和Step Functions)部署工作负载的生产环境。
亚马逊云科技提供全面的学习路径和强大的工具,帮助开发人员构建符合可用性、日志记录和运营卓越最佳实践的高度架构的无服务器应用程序。
总结
在这场精彩的会议中,Matt Meckis、Roland Zarske和Dave Anderson深入探讨了开发人员自主权与运营一致性之间微妙的平衡,这是现代软件开发中的一大挑战。他们探讨了基础设施的演进以及平台工程作为协调这些看似矛盾目标的手段的出现。
Matt Meckis首先阐述了开发人员在云时代所面临的认知负荷,他们不仅要负责编码,还必须处理安全性、成本优化和可持续性等问题。他介绍了“架构优化框架”作为一种强大的工具,可以减轻这种负担,并指导团队在各个支柱上遵循最佳实践。
Roland Zarske随后深入探讨了平台工程的概念,强调其在提供面向开发人员需求的产品化平台方面的作用,包括API、工作流程和自助服务模式。他探讨了账户策略、租户模型以及像Backstage这样的开发人员门户在简化访问和文档方面的重要性。
Dave Anderson分享了在Globalization Partners实施平台工程的真实经验。他强调了应用程序团队和基础设施团队之间的共生关系,倡导采用面向服务、事件驱动的方法,并明确界定领域边界。Anderson强调了“架构优化框架”在持续改进方面的价值,使用SCARP流程(安全性、成本、运营可靠性和性能)来促进无过错的事前分析,并培养一种测量和学习的文化。
最后,演讲者们强调了理解客户需求、投资于促进团队、早期解决租户问题以及促进教育和文档以培养成功的平台工程文化的重要性。他们鼓励与会者探索Serverless Land、亚马逊云科技无服务器研讨会和亚马逊云科技无服务器强化工具等资源,以获取最佳实践和加速学习。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。