关键字: [Amazon Web Services re:Invent 2023, Multi-Tenant Architecture, Scalability Strategies, Resilience Patterns, Workload Simulation, Operational Visibility]
本文字数: 1400, 阅读完需: 7 分钟
视频
如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV1ij41157fQ
导读
SaaS 工作负载给构建者带来了独特的混合架构挑战。团队一直在寻找战略、策略和部署模式,以应对不同地域、性能和活动情况下不断变化的多租户消费模式。本论坛深入探讨多租户扩展、弹性和性能挑战的细节,探索用于构建高效 SaaS 环境的常用技术。探索可用于最大化多租户架构的价值和影响的设计和实施策略。这包括研究如何使用 pod/cell、节流、打包和其他策略来塑造解决方案的扩展/性能模型。
演讲精华
以下是小编为您整理的本次演讲的精华,共1100字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。
资深亚马逊云科技解决方案架构师Todd Golding在re:Invent上发表了一场演讲,分享了他在构建可扩展、高效且具有弹性的多租户SaaS解决方案方面的见解。Todd拥有超过8年的经验,曾帮助数十家SaaS提供商在亚马逊云科技上成功构建和交付服务,因此他积累了丰富的宝贵知识。
他首先承认,过去的许多re:Invent演讲主要集中在提供构建特定类型的SaaS解决方案的具体示例,无论是运行在亚马逊云科技Lambda上的无服务器SaaS还是利用亚马逊云科技Amazon EKS的容器化SaaS。虽然这些规定性的示例对于入门确实很有用,但Todd希望退一步提供一个更基础性的框架,适用于各种实施方式。他的目标是概述在亚马逊云科技上构建卓越的SaaS架构所需的核心组件,而无需考虑实施中使用的具体技术。
Todd强调,在考虑SaaS架构的可扩展性时,必须考虑的不仅仅是基础设施的扩展。虽然自动扩展组、负载均衡器和亚马逊云科技RDS读取副本都是基本功能,但架构师还需要考虑SaaS业务的其他关键方面如何扩展,例如新增客户、运营/可观察性和持续部署。
他以一个例子来说明了一个忽略了其上线过程扩展的SaaS公司的困境。该公司的人工操作员涉及手动步骤的上线过程无法应对一周内突然涌入的100名新客户的挑战。尽管销售团队正在达成交易,但工程团队无法快速为新租户提供支持。业务领导对此非常愤怒。由于没有认识到上线过程作为整体扩展难题的关键部分,这家公司在自己的爆炸式增长期给自己带来了损失。
除了入职培训以外,据Todd表示,软件即服务(SaaS)企业需要随着基础设施的增长来同步扩大其运营和可观察性能力。作为负责多租户SaaS平台的网站可靠性工程师,他们需要对从物理硬件性能到应用关键绩效指标和指标的堆叠所有层级拥有全面的可见性。他们需要能访问实时仪表板和智能警报,以便监控性能,快速排查问题并应对事故。Todd强调,除非能够提供关于环境和工作负载在负载下如何运行的可观察性,否则架构师不能可信地声称一个系统具有弹性。
谈及弹性,Todd承认在设计软件即服务架构时,业务优先事项和技术优先事项之间存在固有紧张关系。在业务层面,领导层期望实现最大效率、规模经济以及支持不同客户需求的灵活性。在基础设施层面,工程师们致力于高可用性、容错性和可扩展性以处理使用量峰值。协调这些相互竞争的需求是软件即服务设计中最具挑战性的平衡行为之一。
为了阐述在实际软件即服务中使用的设计模式的范围,Todd展示了一个图表,其中一些微服务部署在共享的多租户池中,而其他微服务则提供了专用的单租户孤岛。他指出,支持这种混合模型相较于纯共享池方法更为复杂。架构师需要深入了解隔离资源与聚合资源的独特扩展特性,并为每个资源设计合适的策略。对于一个租户专用的隔离微服务可能具有可预测的使用模式和生命周期,允许相当简单的扩展规则。然而,聚合微服务会在许多不同租户之间看到高度可变的需求,需要更复杂的自动扩展逻辑。
陶德建议建筑师在设计过程中,首先要充分了解各类租户的需求。小企业租户与大企业在工作量、交通模式和计算需求方面可能存在很大差异。一旦建筑师了解了客户的需求,他们就可以确定如何划分微服务,选择何种计算技术(如EC2、无服务器或容器)以及针对每个租户采用共享还是专用部署模式。没有一种解决方案适合所有情况,关键在于将技术架构与客户独特需求相匹配。
此外,陶德强调在考虑扩展性时,不能忽视部署工具。持续交付管道需要具备租户意识,以便将新功能和安全更新轻松部署到正确的环境中。SaaS客户通常喜欢采用金丝雀发布策略,因此部署过程需要能够优雅地支持所有租户配置。建筑师应该实施蓝/绿部署、功能标志、分阶段推出等发行模式,以降低新发布的风险。
在弹性方面,陶德强调了节流策略作为SaaS行业的关键考虑因素。通过在边缘(如API网关)和下游服务(如RDS)实施节流,建筑师可以防止不良租户影响其他租户的性能。分层提供方案在弹性方面发挥了重要作用。基本租户可能会受到严格节流,以避免影响支付更高费用的优质租户。陶德还介绍了如何通过不同的节流策略在API网关上应用使用计划,具体取决于租户的需求。
在存储弹性方面,陶德推荐使用自动扩展的无服务器选项,如Aurora Serverless和DynamoDB。这允许存储精确地随着租户需求的扩大而扩大。他警告说,应避免预先定义RDS实例大小的僵化方法,因为池化的使用模式是不可预测的,容易受到负载尖峰的影响。然而,他也承认在此处没有完美解决方案,因为无服务器存储相对于预配模型有其自身的成本权衡。架构师必须根据访问模式谨慎权衡选项。
除了基础设施模式外,Todd还探讨了如何通过故障注入测试来验证系统的弹性问题。他举了一些例子,如在新用户注册过程中模拟下游账单系统的中断,或者故意引导无效的跨租户访问尝试。通过预先设计故障注入功能并观察系统如何应对,架构师可以在灾难发生前修复其弹性策略中的漏洞。Todd强调了使用遥测和警报来发现失败事件的重要性。
总之,Todd强调了负载测试和混沌工程在验证实际条件下的规模和弹性能力是否按计划运行方面的重要性和关键作用。他建议生成具有代表性的租户工作负载和消费模式,然后在监控操作指标的同时进行比赛日测试。如果资源扩展超过了预定的阈值并触发了警报,那么这就是改进自动扩展策略的好时机。如果在应该引发失败的混沌实验期间没有触发任何警报,那就暴露了必须解决的问题的可观测性数据差距。
最后,Todd重申了构建平滑扩展和弹性的SaaS平台需要将关注点从基础设施扩展到整个技术栈——从新用户加入到运营到部署。通过关注多租户应用的多样化需求,架构师可以审慎地平衡业务需求和技术要素,以创造出色的、可扩展的SaaS体验。
下面是一些演讲现场的精彩瞬间:
亚马逊云科技提供了多种灵活的部署选项,以支持各种微服务模式,包括共享型、孤岛型和全栈孤岛型,以满足不同客户的需求。
领导者们强调,在实施微服务策略时,应将其与现实的工作负载和隔离特性保持一致,而非随意地拆分。
通过根据消费、扩展和隔离需求来拆解微服务,可以优化特定的工作负载。
演讲者解释了为何亚马逊云科技的EC2可能难以应对高峰多租户工作负载的扩展,这也是为何Fargate成为更好的选择的原因。
面对的关键挑战在于测试多租户隔离以确保其安全性与恢复能力。
总结
托德·戈尔丁,作为亚马逊云科技的解决方案架构师,在re:Invent上发表了一场关于如何构建可扩展且高效的多租户架构的演讲。他首先指出,在设计可扩展性和弹性时,SaaS架构师需要兼顾业务需求和技术需求。企业希望在提高效率的同时最大化利润,同时也要支持不同客户和部署模型的灵活性。架构师需要在这些相互竞争的需求之间进行创造性平衡。
戈尔丁接着概括了制定扩展策略的关键要素:分析不同的租户工作负载和人物角色,选择合适的计算技术如EC2、Lambda和EKS,并支持多种部署模式如孤立和共享资源。他强调了自动化可扩展的上线和部署的重要性。
谈及弹性问题时,戈尔丁关注了几个关键领域:租户节流、存储大小、故障隔离、运营可视性以及将策略从代码中移除。他解释了如何通过分层API节流防止较低层消耗过多资源。他还倡导将多租户逻辑从业务代码中解耦,以提高弹性。
最后,戈尔丁强调需要通过有组织的租户负载模拟以及通过注入故障来提前测试扩展和弹性。他说,观察测试负载下的运营指标是验证系统是否按预期运行的必要条件。
总的来说,戈尔丁为在亚马逊云技术上构建高性能、有弹性的大语言模型提供了一个高层次框架,这个框架在业务需求和技术实施之间实现了平衡。他的主要建议包括支持不同的工作负载、自动化可扩展的操作、实现节流和隔离,以及通过测试来提前验证。
演讲原文
https://blog.csdn.net/just2gooo/article/details/134789746
想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
2023亚马逊云科技re:Invent全球大会 – 官方网站
点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!
点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!
即刻注册亚马逊云科技账户,开启云端之旅!
【免费】亚马逊云科技“100 余种核心云服务产品免费试用”
【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”
亚马逊云科技是谁?
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。