重构 Serverless

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/SVS305-Refactoring_to_serverless-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 Serverless 不仅减少了管理基础架构所需的时间,而且还可以减少应用程序代码。用完全托管的云服务取代自定义代码,可以使应用程序更可靠、更易于维护。借助 Amazon CDK 等云自动化工具,您可以继续使用熟悉的编程语言,来配置这些服务。随着应用代码和自动化代码之间的界限开始模糊,您可以重构应用程序,以更好地利用亚马逊云科技,并更干净地将业务逻辑与应用程序拓扑分离。本论坛将通过实际案例分享此类重构的目录。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共800字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 演讲者在会议开始时讨论了云计算自动化在避免手动操作和基础设施繁琐任务方面所扮演的角色,但它的作用远不止于此。在云端,自动化还包括管理应用架构、拓扑和集成(即组件如何连接并配置以作为一个系统共同工作)等关键额外功能。这使得工程师能够使用熟悉的语言(如TypeScript)和工具(如亚马逊云科技的Cloud Development Kit,简称CDK)来编程式地定义他们的基础设施。" "他们提供了一些将传统服务器端应用程序重构为更适应云环境并利用其固有平台功能的例子。例如,其中一个例子是将直接通过Lambda函数发送SQS消息替换为使用新的Lambda目的地功能。这个改变将业务逻辑与拓扑分开,使Lambda代码更小且更专注于核心任务,同时充分利用完全托管的亚马逊云消息服务的稳定性、可扩展性和可靠性。演讲者强调了这是重构的一个重要好处——减少代码复杂性,同时利用云提供商的经济规模。" "另一个例子是将一个由协调的Lambda函数组成的出行预订应用程序重构为使用Step Functions工作流程编排器。这提供了对整个端到端工作流的完整可视性,更容易追踪每个实例的状态,并处理分布式服务之间的交易完整性。这种交换带来了相对于去中心化编排的灵活性的更高耦合性。演讲者强调,根据架构和用例的具体需求,这两种方法都是可行的。" "第三个例子是将一个明确写入DynamoDB并通过发布事件的Lambda函数替换为简单地写入DynamoDB并使用DynamoDB流结合EventBridge异步处理事件发布。这个改变将Lambda函数从事件发布实现细节和关注点中解耦。演讲者强调了这是一个常见主题——重构以分配责任并将组件之间的不必要的耦合降低到最低。" "演讲者然后概述了一些重构为[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用的主要原因和动机: 将嵌入在Lambda函数中的过滤逻辑替换为在EventBridge中配置的集中式过滤规则;在需求发生变化以需要更多灵活性时,改变协调者与协调决策者的角色;使用Step Functions直接与服务(如DynamoDB)的集成,而无需通过Lambda函数间接地集成。在进行[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)重构时,了解潜在操作权衡以及重构时的实际影响是非常重要的,例如增加延迟或成本。使用诸如Cost Explorer等工具和咨询参考架构是最佳实践,以确保这些权衡不会被忽视,并且好处超过了成本。 在团队结构方面,演讲者建议拥有一个拥有端到端应用程序和基础设施的跨职能团队,这是理想的[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)重构方式。对于具有分割团队的组织,协调是关键——例如,功能和其集成粘合代码之间不应存在人为的分离。尽可能使团队在一致的基础设施编码工具上保持一致,以便实现结构和模块重用。 演讲者还强调,应将重构视为一个连续的实践,融入到交付周期中,而不是偶尔的一次性行为。随着亚马逊云科技的不断发展,应用架构也应不断改进和现代化。重构对于随着时间的推移平衡开发人员速度和复杂性至关重要。 总体而言,演讲者传达了一个观点:云计算自动化的战略意义远不止于简化工作。它使得工程师能够用类似于编写应用代码的编程语言来定义应用的架构。这使得将传统应用重构为云原生应用以及充分利用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)平台功能成为可能。在评估重构机会时,需要考虑运营方面的权衡,但从长远来看,其带来的好处通常会超过成本。在整个交付周期中,应将重构作为一种持续的、逐步的实践来进行,以推动亚马逊云科技的创新发展带来持续的改进。 **下面是一些演讲现场的精彩瞬间:** 辛达尔与格雷戈讨论了云计算自动化的目的,这不仅是为了减少手动操作和繁琐任务,还承担着更为重要的职责。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_0.png) 通过使用Lambda目标功能,开发者可以让Lambda函数将结果发送给其他亚马逊云科技服务,而无需编写额外的代码,从而实现应用程序逻辑与基础设施拓扑的分离。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_1.png) 然而,领导者们指出在[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)函数中直接混合数据库更新和事件发布的潜在问题,这可能导致事务完整性方面的问题。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_2.png) 为了解决这个问题,演讲者提出了将应用程序代码和基础设施代码合并到一个源文件的方法,例如通过基础设施即代码和云编译器等技术。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_3.png) 此外,演讲者表示他更倾向于显式而非隐式的自动化方式,因为在代码中明确定义功能和拓扑有助于更好地理解运行时行为。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_4.png) 在组织工程团队方面,有两种常见的模式:跨职能团队和按职能划分的专业团队。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_5.png) 最后,领导者强调了使用亚马逊云科技服务轻松切换云提供商的优势,这有助于减轻被锁定在特定云供应商的担忧。 ![](https://d1trpeugzwbig5.cloudfront.net/SVS305-Refactoring_to_serverless/images/rebranded/SVS305-Refactoring_to_serverless_6.png) ## 总结 演讲者探讨了优化[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用程序以更好地利用平台特性和降低维护工作的问题。他们认为,自动化在云中不仅限于基础架构配置,还扮演着更重要的角色。 举例而言,他们展示了如何使用亚马逊云科技的CDK通过用自动化代码替代应用程序代码来进行重构的过程。这种方法清晰地划分了业务逻辑和应用架构。其优势包括利用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)功能,如Lambda函数和EventBridge管道,实现松散耦合和交易完整性。 重构目录有助于应用程序随着亚马逊云科技的新功能而不断进步。重构还可以优化运行时特性,如延迟、可用性和成本。演讲者建议将持续重构作为开发过程的一部分。对团队而言,应用开发者应负责与其应用程序架构和集成相关的自动化代码。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭