每年冬天,在意大利罗马的日落时分,都会有一群群椋鸟组成庞大的鸟阵,在天空中盘旋,不停变换着队形。这一幕让意大利物理学家乔治·帕里西(Giorgio Parisi)格外着迷,他想由此弄明白一个由众多相互影响的成分组成的系统的行为。
2021年,凭借对理解复杂物理系统作出的开创性贡献,以及“发现从原子到行星尺度的物理系统中无序和涨落之间的相互作用”,乔治·帕里西获得诺贝尔物理学奖。在自然界,不止椋鸟有这样的行为,沙丁鱼在迁徙过程中也会组成密集而庞大的阵形,并通过阵型的变动,躲避捕猎者。
事实上,不论是椋鸟还是沙丁鱼,在它们做出复杂多变的集体运动背后,都蕴含着简单、普适的基本规律,这对于我们认知和理解更加纷繁复杂的世界大有帮助。尤其在近几年,“不确定性”已经成为摆在各行各业决策者面前,躲不过去的一道坎。
面对复杂多变的外部环境,企业如何让业务运作像椋鸟飞行和沙丁鱼迁徙那样,更加高效并减少延迟?对此,亚马逊副总裁兼 CTO Werner Vogels 给出的答案是:采用事件驱动架构!
事件驱动架构:企业应对不确定性的首选
近年来,世界所表现出的不确定性正在持续加剧,为此,各行各业都在加速推动云计算、大数据、人工智能等新技术的落地,并用软件构建起一个又一个应用系统。可以说,从智能家居、智慧家庭到行业数字化转型,软件已经成为数字化变革的核心驱动力。
但复杂的软件系统部署也给企业带来了新的困扰,比如,不同系统间的壁垒让数据流动不再顺畅,造成了大量的数据孤岛;庞大的访问量,通常也会让系统难以应对。因此,从面向服务的软件架构到微服务、云原生,软件的范式也在不断变革。
在不久前召开的2022亚马逊云科技re:Invent全球大会上,亚马逊副总裁兼 CTO Werner Vogels 表示,如果把世界看作是一个完整的系统,它实际上在遵循着一定的系统规则,也可以理解为是由事件所驱动的,具有异步、松散耦合的特征。
Werner Vogels 认为,事件驱动架构是企业应对未来不确定性的利器。而所谓的事件驱动架构,就是让架构中的各个模块,按照事件发生的顺序灵活地执行,并且可以把执行结果作为新的事件来驱动下一个模块的执行。
事件驱动架构之于企业数字化转型,就如同C2M大规模个性化定制之于汽车行业。一直以来,流水线都是汽车行业的主流生产模式,这种模式虽然效率较高,但无法满足消费者的个性化、多元化要求;而C2M则让汽车企业可以根据用户需求对生产线进行解耦,按照客户的产品订单要求,设定供应商和生产工序,最终生产出个性化汽车。
早在2018年,Gartner 评估报告就将EDA(Event-Driven-Architecture,事件驱动架构)列为十大战略技术趋势之一,并认为事件驱动架构将成为未来微服务主流。Gartner 认为,到2022年,超过50%的商业组织将参与到事件驱动的数字化商业服务的生态系统当中。
EDA凸显三大优势,先行企业已经参与其中
通过构建事件驱动架构,企业可以获得一个松散耦合的系统,该系统具有较低的依赖性、更高的可用性和可进化性等优势,可以提高企业开发人员的敏捷性,帮助企业构建可靠、可扩展的应用程序,加快功能发布速度,进而更好地应对市场不确定性及市场需求变化。
在较低的依赖性层面,当系统组件紧密地组合在一起时,企业很难在不影响其他组件的情况下,对单个组件进行更改;而依托事件驱动架构的松耦合特性,企业可以在应用程序中独立构建和部署应用程序,更改单个组件时对其他组件的影响也较小。
在更高的可用性层面,紧密耦合的系统组件会影响程序的可用性,一个组件出现故障很容易影响到相关组件;而在松耦合组件中,即便一个组件出现故障不会影响到其他组件,整个系统仍可继续运作,因此,具有松耦合组件的应用程序具有更少的单点故障,以及更高的弹性。
在可进化性层面,依托事件驱动架构,企业在不更改现有应用程序的情况下,就能够使用事件构建新功能;由于组件会发出事件,因此事件驱动架构很容易扩展,企业不需要改变整个系统,即可轻松发展自身架构。
其中,可进化性尤为重要,根据盖尔定律,设计高度复杂的系统很难一蹴而就,更多是从简单的系统逐渐演变而来。以亚马逊云科技推出的Amazon S3 存储服务为例,作为最受欢迎的服务之一,得益于可支持不断进化的系统架构,Amazon S3 在过去16年间已经从一个由8个独立微服务组成的系统,成长为如今已经有超过235个不同的微服务。
在乐高集团,借助构建事件驱动架构,乐高集团实现了每个微服务都可以独立扩展,而且局部故障不会影响其他微服务,更好地应对了电商网站可能出现的高峰流量;在Taco Bell餐厅,公司通过构建事件驱动架构来提取SaaS应用程序事件,实现了从送餐合作伙伴应用程序传入的订单,可直接发送到店内销售终端应用程序;在美的集团,借助构建事件驱动架构的Serverless 告警推送解决方案,集团可通过一键快速部署,在几分钟就完成多区域部署和告警配置。
持续创新,亚马逊云科技全面激发EDA优势
亚马逊云科技对事件驱动架构的拥抱,不仅体现在Amazon S3 服务的持续进化上;如今,几乎所有亚马逊云科技提供的云计算服务,都实现了对于事件的支持。亚马逊云科技的持续创新,就是为了帮助企业客户更加轻松地构建事件驱动架构,最大化发挥其优势与价值。
对于企业客户来说,基于亚马逊云科技构建的事件驱动架构,不仅能够提高开发敏捷性、节省成本,还能大大改善客户体验。而通过将事件驱动架构与多种亚马逊云科技服务相结合,开发者可以自由组合这些服务,从而更好地满足企业应用场景的需求,将架构优势发挥到极致。
目前,亚马逊云科技常见的构建事件驱动架构的服务包括Amazon EventBridge、Amazon Step Functions、Amazon Lambda 等,除此之外,亚马逊云科技还有更多服务可以帮助企业发挥构建事件驱动架构的优势。
事件驱动架构主要由三大关键组件构成:事件生成器、事件路由器和事件使用者。其中,事件生成器主要包括SaaS应用程序、移动应用程序、电商网站等;事件路由器主要包括事件路由器、事件存储等;事件使用者则包括数据库、微服务、SaaS应用程序等。
而亚马逊云科技有超过200种服务都可以成为事件生成器,并提供多种不同的事件路由器服务,适用于不同客户的不同应用场景需要。同时,亚马逊云科技还支持多种服务作为事件使用者,比如,调用Lambda 函数,用于使用无服务器微服务处理事件,或触发Amazon Step Functions 工作流。
为了帮助企业更加简单、高效地构建应用程序,进一步发挥事件驱动架构的优势,日前,亚马逊云科技又发布了一系列新的服务和功能。比如,Amazon EventBridge Pipes 可以帮助企业在事件生产者和使用者之间创建点对点的集成;Amazon Application Composer 可以帮助开发人员简化和加速架构、配置、构建Serverless应用程序。
结束语:在企业数字化转型全面进入“深水区”的今天,越来越多的企业开始加速推动云原生的落地;在这一趋势下,事件驱动架构作为微服务的主流,已经成为企业迈向未来的必然选择。而亚马逊云科技在这一领域的持续创新和行业实践,也将帮助更多企业释放事件驱动架构的价值,更加从容地应对不确定性的未来!
感兴趣的可以点击链接(https://www.awsevents.cn/reInvent2022/innovate.html?s=7982&smid=16132)注册参加亚马逊云科技Innovate在线大会,观看更多re:Invent 2022深度解读