2023-07-25
在过去几年中,电商市场逐年增长明显,消费者趋向转移至线上购买商品,甚至开始盛行线上下单、线下提货的新趋势。美国人口普查局的数据显示,2022 年美国零售电商销售额估算超过 1 万亿美元,同比增长 7.7%。
零售商已在数字商务方面投入大量资金,但仍难以维持非常高的电商流量,尤其是在“黑色星期五”这样的销售高峰期。为迎合消费者行为习惯的不断变化,零售商须将其单体式应用程式迁移至云端,还要充分利用各种云原生技术。
本博文将探讨如何重构或重建零售订单管理系统,使用无服务器服务的异步事件驱动法帮助零售商提高弹性和可扩展性,以及专注创新。
在经历黑色星期五销售活动期间的严重故障后,乐高(LEGO)重构了单体电商平台,随后,在一次具有代表性的销售活动中,乐高的在线交易峰值增长高达 200 倍,用户流量增长高达 9.5 倍,而使用无服务器事件驱动法重构的平台帮助其成功应对流量高峰,同时未发生任何故障。
美国的奢侈品零售商尼曼(Neiman Marcus)通过将 Strangler Fig 迁移模式转换为无服务器模式,应用程序启动时间成功缩短 50%,同时提高了开发人员的灵活性,降低了成本。
Werner Vogels 博士在 2022 年亚马逊云科技 re:Invent 全球大会主题演讲中指出,世界由事件驱动,本质上的异步的。在零售订单管理系统中,消费者于电商网站下订单就是一个事件,消费者几乎能够立即收到订单已接收的通知,同时,订单的其余环节均可通过解耦服务进行异步处理。
例如,支付服务可独立处理付款,并反馈处理结果;库存服务可用于查看产品是否有库存,并通知系统。各类服务通过名为事件代理的中央集线器相互联通,该集线器可接收并传递事件。
既然我们已探讨了事件驱动型架构的意义,那么现在我们来谈一下无服务器。无服务器和事件驱动型架构相辅相成,因构建无服务器服务(如 Amazon Lambda)可触发事件,仅在处理事件时才需付费。
无服务器事件驱动型架构的优势总结如下:
下图展示的概念视图说明了事件在示例零售订单管理系统中如何流转,以及如何利用事件构建松耦合电商系统。
示例零售订单管理系统中的事件流
该示例展示了以下服务:结账服务、订单服务、物流服务、仓储服务和通知服务。这些服务均为独立的微服务,可独立扩展和独立故障,并不影响其他组件。各服务间并不直接相连,而是经由事件代理进行联通。服务完成任务后,会向事件代理发布事件,其他服务(关注该特定事件)将会接收该事件。我们一起看下从消费者下单订购商品至商品发货的事件流程:
利用事件驱动型架构构建松耦合系统的解决方案可应用于多个行业用例,包括银行和保险业(例如贷款处理和保险处理)、客户服务、制造业等。
使用可组合商务法(使用 MACH 联盟的规定性指南,在该联盟组织中亚马逊云科技为技术推动者)的零售商也可采用无服务器的事件驱动模式构建其电商订单管理系统。MACH(Microservices-based,API-first,Cloud-native SaaS and Headless)能够使零售商选择最佳解决方案,将平台的各个部分组合在一起(或自建),构建面向未来的可插拔解决方案。
本博文描述了用于零售订单处理的无服务器事件驱动型架构。使用无服务器等微服务和云原生技术构建的电商系统,通过增加上市时间、弹性和可扩展性,以及降低成本,帮助零售商在竞争中保持领先地位。