## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/API303-Navigating_the_journey_to_serverless_event_driven_architecture-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)事件驱动架构(EDAs)是一种构建软件系统的强大方法,可帮助企业快速响应并灵活适应不断变化的业务条件。在本讲座中,您将了解企业在采用 EDAs 时所经历的历程,包括从最初的设计和实施到持续的运营和维护。本讲座强调了 EDAs 可为企业带来的诸多好处,并将重点放在 EDAs 中具有挑战性且经常被忽视的领域。通过结合模式、最佳实践和实用技巧,本讲座将全面概述实施 EDAs 的机遇和挑战,并帮助您了解如何利用 EDAs 推动业务成功。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共800字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
戴夫·博伊恩,作为亚马逊云科技的专家,专注于[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)和事件驱动架构的研究,现已邀请观众参加他的演讲,主题为“探索[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)事件驱动架构之旅”。他对有机会亲自向在线观众分享知识感到兴奋。
戴夫拥有超过15年的企业和初创公司的经验,曾为开源事件驱动工具的开发做出贡献。这使他具备了丰富的经验,能够指导如何利用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)技术构建事件驱动解决方案。他为本次讲座精心准备了一系列内容,涵盖了从初始构建到长期运营维护的所有方面。
戴夫首先介绍了事件驱动架构的采用增长情况。他认为这一趋势得益于亚马逊云服务等[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)技术的普及,使得实现复杂的事件驱动模式变得更加容易。借助这些工具,企业现在可以轻松地实施之前难以承受的高复杂性解决方案。
戴夫解释了事件驱动架构的基本组成部分,包括生产者、消费者以及在他们之间传递事件的渠道或代理。然而,在实际操作中,构建现实世界的事件驱动系统不仅仅涉及到这些基本组件。还需要经历多个阶段、设计模式和潜在的陷阱。为了展示这个过程的复杂性,戴夫用了一座山的视觉隐喻。山顶代表着事件驱动架构带来的承诺好处,如解耦合系统、业务敏捷性和随时间推移的可扩展性。山谷则象征了团队在过程中可能遇到的挑战,如边界不明确、缺乏标准、异步与同步问题等。戴夫强调了理解这些风险并在设计时避免它们的必要性。
Dave建议在开始实施之前,先进行基础领域建模和行为分析。随着事件的捕捉和时间的推移,它们会像故事一样展开,表格则反映了当前的状态。为了识别相关事件和有限的上下文,他建议在像Event Storming研讨会这样的会议上与领域专家合作。这种方式的预先设计可以确保事件能够干净地映射到业务概念,而不是实现细节。
Dave比较了两种可能的实施方法:一种是先实施,可以快速实现初步价值提升;另一种是先进行行为分析,虽然前期分析更多,但它能建立共享的通用语言和有限的上下文,防止出现纠缠依赖。
在准备实施的过程中,Dave提醒要注意不同的消息类型,如命令、事件和查询。例如,一个命令代表了可以被拒绝的意图,而一个事件通知了已经发生某事的听众。他还介绍了常见的消息模式,包括点对点队列、发布-订阅、事件流和更改数据捕获。
在过渡到实践部分,Dave列举了几个例子:例如,如果消费者必须从生产者那里获取事件详情,就会意外地紧密耦合。富化器模式允许稀疏的事件,消费者可以根据需要请求额外的数据。此外,还可以通过加密来保护事件中的敏感数据,只有授权的服务才能解密属性。在处理大负载时,可能需要使用S3来存储庞大的数据。另外,如果直接消费事件,可能会导致紧密耦合。因此,应采用分析集成风格,如保守主义与开放主机服务。较低的集成成本允许更多的实验,例如使用事件进行跨组织通信。还需要区分内部实现事件和外部公开事件。
Dave重申了长期成功的关键在于运营维护。他建议建立事件标准,通过方案和文档提高可发现性,并围绕有限上下文进行清晰的沟通。保持对复杂度蔓延的警惕使组织能够维持由事件驱动架构承诺的灵活性。
总的来说,Dave强调,构建事件驱动的系统不是一夜之间就能实现的,而是一个迭代的过程。关键步骤包括:基础领域建模、行为分析、与领域专家合作、注意消息类型和消息模式、实践应用、避免紧密耦合、保护敏感数据、处理大负载、区分内部和外部事件、建立事件标准和提高可发现性以及关注运营维护。
在发展领域知识之前,不应直接开始实施。应采用诸如队列和发布-订阅等消息模式。此外,要了解加密、有效载荷和合同等方面的常见问题。长期来看,需遵循标准、编写文档并保持有效的沟通。他以亚马逊云科技提供的服务为例,如SQS、EventBridge、DynamoDB Streams和EventBridge Pipes,展示了这些服务如何支持各个阶段的事件驱动过程。
戴夫强调,合理运用事件能够推动去耦合系统的创新,而随意使用事件则可能导致随着时间的推移逐渐演变成紧密连接的“大泥球”。通过审慎考虑并将事件作为核心关注点进行拥抱,企业可以设计出避免复杂陷阱的可扩展解决方案,从而在未来创造商业价值。
**下面是一些演讲现场的精彩瞬间:**
演讲者直接进入了关于Servius架构冒险之旅的繁忙会议。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_0.png)
通过使用SQS的事件驱动架构,服务之间的解耦得以实现,从而提高了可扩展性和可靠性。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_1.png)
领导者强调了[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail)如何支持跨多个亚马逊云科技服务的发布-订阅模式,从而实现事件驱动的架构。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_2.png)
领导者回顾了一个错误的案例,误认为一家保险初创公司由于解耦的事件消费者而迅速发展,强调了事件模式设计的重要性。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_3.png)
演讲者强调了在设计系统时将事件视为重要组成部分的重要性。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_4.png)
[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail)的schema发现功能可以自动检测事件模式并实施版本控制,从而实现代码生成和简化集成。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_5.png)
演讲者分享了一个免费的视觉资源包,其中包括有关事件驱动架构的详细信息。
![](https://d1trpeugzwbig5.cloudfront.net/API303-Navigating_the_journey_to_serverless_event_driven_architecture/images/rebranded/API303-Navigating_the_journey_to_serverless_event_driven_architecture_6.png)
## 总结
亚马逊云科技(Amazon Web Services)是全球领先的云计算和科技公司之一。作为一名开发者倡导者,Dave Boyne在此会议上发表了一篇名为“探索成功采用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)事件驱动架构之路”的精彩演讲,分享了他关于如何通过亚马逊云科技的服务有效地采用事件驱动架构的经验。
Boyne首先指出,由于像亚马逊云科技的Lambda、Step Functions和EventBridge等服务使得事件驱动架构变得更加实用,因此其应用范围正在不断扩大。然而,构建高效的事件驱动系统需要考虑多种模式和权衡因素。
他强调了在实施事件驱动架构之前,首先要深入了解系统行为和事件的重要性。通过使用事件风暴进行可视化建模,开发团队可以识别出相关的事件、聚合边界和语言。在事件驱动的系统中,命令、事件和查询都属于消息类型。使用点对点队列和发布-订阅等消息模式可以降低组件间的依赖程度。
接下来,Boyne谈到了一些常见问题,如不清晰的事件负载量架构导致的意外耦合、敏感数据泄露以及消息大小限制等。他建议采用诸如内容丰富化、加密和安全检查模式等解决方案来解决这些问题。通过事件集成,不同组织之间可以实现快速的协同创新。而领域驱动设计和有界上下文有助于避免领域间过高的耦合度。
为了实现长期的成功,Boyne强调了标准化、可发现性和沟通的重要性。通过使用方案、编写详细的文档和使用通用的语言,有助于系统的持续发展。最后,他再次强调,通过精心设计的架构,企业可以在基于亚马逊云科技的事件驱动系统上实现预期的敏捷性和可扩展性。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问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 余种核心云服务产品免费试用“")