发布于: Dec 2, 2023

2023亚马逊云科技 re:lnvent 进入第四天,Amazon.com 副总裁兼首席技术官 Werner Vogels 博士在主题演讲中,为我们带来了云架构俭约之道(The Frugal Architect)这一全新理念。Werner 从他过往20年经验中摄取灵感,为架构师和构建者们提供了有关架构设计、衡量、优化的范本教程。他表示:“作为技术人员,我们生活在一个变化如此之快的世界中,我们总是需要不断学习。请坐下来,拿出你的笔记本,从这一刻开始做笔记。” 

他指出,俭约之道的关键点不仅在于节省金钱成本,更重要的是节约资源。而现在,技术发展与 AI 模型更新带来的大量资源消耗已经是一个亟待关注的问题。他说:“成本是可持续性的近似代理,这是我关注的问题,也应该是你们关注的问题。” Werner 博士引用了一家荷兰文件传输服务公司 WeTransfer 的例子,他们通过使用亚马逊云科技,在 2022 年实现了从服务器使用中减少 78%的碳排放。而这一改变源自接下来讲到的七大黄金法则——Werner 博士从他20年来的架构经验讲起。

法则一:把成本视作非功能性的需求

核心要点:在设计架构的每一步都考虑成本因素

在设计系统时,像安全、合规性和可访问性这样的事项是非功能性、不可谈判的要求。它们不会直接影响特定的特性或功能,但对系统的运行是必要的。

Werner 博士在演讲中分享道:“组织也需要将成本和可持续性视为非功能性要求。如果成本不是设计过程的一部分,组织就有可能面临成本超过收入的风险。”

通过在早期阶段思考并持续考虑成本的影响,我们可以针对性地设计系统,以实现特性、上市时间和效率之间的平衡。如此一来,开发团队可以专注于维护精益高效的代码。运营团队则可以微调资源使用和支出,以最大化盈利能力。

法则二:可持续的系统是和业务充分共识成本的系统

核心要点:偿还你的架构债

技术团队不应独自进行系统设计,而应在架构设计过程中与业务团队紧密合作,进行成本考量,并确认所使用的收入模型以及盈利维度。遵循这一原则,就能够构建其遵循资金流的架构,并能够匹配相应的定价模型。

例如,在电子商务领域,一个关键维度可能是订单数量。随着订单数量的增加,基础设施和运营成本也会相应上升。然而,如果系统架构良好,就可以开始利用规模经济。重要的是,基础设施成本对业务的影响应该是可以衡量的。

作为构建者,我们需要考虑收入,并利用这些知识来指导我们的选择。因为不惜一切代价的增长会导致一系列的损失。

法则三:在持续的取舍与权衡中搭建架构

核心要点:确立你的优先级

在架构中,每个决策都伴随着一系列的权衡。成本、弹性和性能是经常相互矛盾的非功能性需求。

俗话说,“万事皆有不确定性” 。能够防御失败意味着需要投资于弹性,但同时性能可能会付出代价。关键是要在技术和业务需求之间找到正确的平衡点,找到与您的风险容忍度和预算相一致的最佳点。请记住,俭约是为了最大化价值,而不仅仅是最小化支出。为了做到这一点,您需要确定您愿意支付的费用。

重磅发布 Amazon Management Console myApplications

通过提供全面的仪表板来监控和管理应用程序的成本、健康状况、安全性和性能,增强了亚马逊云科技管理控制台的体验。

重磅发布 Amazon CloudWatch Application Signals

自动化工具和运营应用,旨在解决监控具有多个相互依赖服务的分布式系统的复杂性。它提供了一个预构建的仪表板,可用于追踪关键应用程序业务指标,如请求量、可用性和延迟。

法则四:把成本视作非功能性的需求

核心要点:定义你的衡量单位

Werner 博士分享了一个阿姆斯特丹老房子的例子,将电表放在走廊上比藏在地下室的房子会使用更少的能源,其原因在于他们每天都可以看到能源消耗。

换句话说,如果您不观测系统,就无从知道它们的成本。而当您了解每个级别的成本时,虽然观察需要投资,但当关键成本指标放在工程师和他们的业务伙伴的核心位置时,更可持续的实践会自然而然地出现。持续的检查会让您发现过度支出的问题,并调整操作以削减开支。可观测性的投资回报通常远远超过成本。

最重要的是,将成本放在前面可以鼓励可持续的实践。

法则五:通过成本感知的架构,实施成本控制

核心要点:建立层级

俭约云架构的本质是强大的监控和优化成本的能力。设计良好的系统可以让您有进一步创建成本控制的机会。常见的方法是按关键性分层组件。第一层组件是必不可少的,无论成本如何,都要进行优化。第二层组件很重要,但可以在没有重大影响的情况下暂时缩小规模。第三层组件是是有效但非必要的,需易于控制且可以根据需要降低成本。

定义层次结构可以在成本和其他要求之间进行权衡。对组件进行细粒度控制可以优化成本和体验。基础设施、语言、数据库都应该是可调整的。以收入和利润为目标来设计和构建系统。成本优化必须是可衡量的,并与业务影响相关联。

法则六:成本优化是渐进的

核心要点:持续优化

追求成本效率是一个持续的旅程。即使在部署之后,我们也必须重新审视系统,以逐步改进优化,关键在于不断质疑和深入探究。编程语言提供了分析代码性能的分析工具,虽然这些工具需要设置和专业知识,但它们可以进行细粒度的分析,从而导致毫秒级的变化。看似微小的优化在规模上累积起来,可以节省大量的开支。

在运营中,可能存在大部分时间都花在运行现有系统上的情况。对资源使用情况进行分析,并识别浪费的机会较少。在亚马逊,我们不断监控生产中的服务,以了解模式并优化低效率。俭约需要坚持不懈——通过逐步减少服务延迟和基础设施成本,我们可以优化服务成本。

如果我们不断寻找,总会有改进的空间。我们今天节省下来的资金将为明天的创新提供资本。

法则七:走出惯性,远离盲目

核心要点:证伪你曾相信的事情

当软件团队在未遭遇重大失败或阻碍的情况下取得显著成功时,他们可能会滋生出自满情绪。这是一种潜在的危险倾向,因为它可能导致团队成员对那些已取得成功的策略、工具和实践过于自信。

当涉及到编程语言时,软件团队常常容易陷入这样的误区,即他们假设当前使用的技术、架构或编程语言永远是最佳选择,仅仅因为它们在过去的表现良好。然而,这种心态可能会产生一种虚假的安全感,阻碍他们质疑现有的方法和探索新的选项,我们必须始终寻找质疑、优化和改进的方法。

正如 Grace Hopper 所说,英语中最危险的短语之一是:“我们一直都是这样做的。”这句话的危险性在于它阻碍了学习和改进。

“技术可以成为一种力量,”在 Werner 博士分享的第二篇章,他分享了像 Thorn、国际水稻研究所和 CergenX 这样的组织的故事,这些组织正在使用 AI 方案来解决现实中遇到的实际问题。这些“传统”的机器学习和人工智能技术正在为农业、行政和医疗领域做出重大贡献。在新式 AI 层出不穷的时候,回归 “AI for Now” 和 “AI for Good” 的初心是这些场景中的核心关键点。

这些努力激发了 Werner 博士的灵感,他开始创建一个有益的以放射学为重点的机器学习系统,通过脑出血扫描来识别中风,突出在这种医疗紧急情况下,时间的关键性。这个系统现在公开可用,名为“Explainable Intracranial Hemorrhage Detection for Radiologist Workflow Prioritization”,Werner 博士指出: “你应该记住,并不是所有的事情都需要用这些大语言模型来完成。人工智能只是做出预测,决策则要靠专业人士做出。”

这个系统的创建强调了 Werner 博士的重要观点“现在是成为构建者的最好时代。” 他将以 Amazon Q 为代表的系列 AI 开发者工具推向了聚光灯下,并鼓励构建者们“保持好奇,持续学习”,“如果我能做到,你也可以”。这些工具可以作为开发者学习技术的起点,并协助正确配置功能以符合最佳实践。

重磅发布 Amazon SageMaker Studio Code Editor

是 Amazon SageMaker Studio 中的一个完全托管的代码编辑器,可以帮助您更轻松地编写、调试和部署机器学习应用程序。

重磅发布 Amazon Q in Code Catalyst and in your IDE 

提供亚马逊云科技构建专家助手服务,集成接入 Amazon CodeCatalyst 和 IDE 中。Amazon Q 可以基于文字和从系统层面了解问题和过程,开发者可通过问题、调整、迭代方式使用 Q 来精细化构建每一段开发管道。

重磅发布 Amazon Application Composer in VS Code

提供可视化应用构建的基础设施即代码(IaC)服务,可在 Visual StudioCode 中直接组合使用,通过交互构建器可以从初始草图开始创建可部署的代码。

最后,Werner 博士为参会者带来了一个特别的惊喜,而本场主题演讲也在现场开发者们的欢呼中落下帷幕。