订单峰值激增 230%,Serverless 如何为世纪联华降本超 40%?|双11 云原生实践

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 导读:2020 年 双11,世纪联华基于阿里云函数计算 (FC) 弹性扩容,应用于大促会场 SSR、线上商品秒杀、优惠券定点发放、行业导购、数据中台计算等多个场景,业务峰值 QPS 较去年提升 230%,研发效率交付提效超过 30%,弹性资源成本减少 40% 以上。当 双11 走过 11 个年头,传统企业正在凭借云原生技术悄然逆势崛起,参与到这场全球购物狂欢节中。

联华华商旗下的世纪联华超市近期迎来了一年一度的 “双11” 大促活动。

时光回到 2014 年的 双12,支付宝联合杭州多家线下品牌和商场门店,推出五折优惠促销活动。在这一次消费狂欢中,滨江区世纪联华店所有的柜员 POS 机前排起了长队,队伍移动速度异常缓慢,商场工作人员表示,服务器出现异常导致支付出了问题。

6 年后的今天,视线再次回到世纪联华超市 双11 大促现场,人潮涌动,却井然有序。参与大促的人数是 6 年前的几倍,但现场支付却稳定又顺滑,这种天壤之别的转变,源于世纪联华对云原生技术的大胆尝试。

image.png

世纪联华大促现场

技术架构演进之路

我们有幸采访到世纪联华的技术人员,了解到世纪联华在技术架构演进一路走来的不容易。

2014 年及以前:物理单机架构的灾难

过去所有 POS 机及会员卡支付机器全部部署在各个门店,这套架构持续了近十年之久。

这套架构的最大好处是不受网络影响,在当年网络基础建设还不完善的情况下,商家可以尽最大可能地保障单个门店的交易稳定性不受外界影响。这套架构的最大问题是:当门店机器出现故障时,专业的技术管理员很难第一时间赶到现场及时修复,系统维护工作变得十分困难。

2014 年世纪联华的 双12 活动中,因为业务遭遇爆炸性流量,多个门店支付时好时坏,短时间也无法维护,导致用户体验差,这让世纪联华的技术人决心改进这套使用了十多年的老系统。

2014~2018 年:中央机房部署架构的演进

在 2014 年经历了 双12 大促活动的问题后,联华技术人决心改进各项系统,于是将交易系统和会员系统陆续迁移到自建的中央物理机房,商品系统也改迁为中央下发机器,在浙江省各个门店的 POS 机,通过互联网连接至中央机房。

相比 2014 年以前的架构,新架构主要解决了三个问题:

  • 问题修复可集中维护处理
  • 商品调整价格下发全走网络
  • 数据可以集中查询统计

然而新架构遗留的最大的问题是:

  • 管理人员需要掌握所有机器细节
  • 运维过程中可能出现宕机、断网等事件,调查相对困难,应急处理方案薄弱

2018 年~2019 年年中:全面上云

随着国内公共云建设的进一步发展,世纪联华也开始全面使用阿里云产品,将本地业务包括 MySQL 等全部迁移到了阿里云 ECS 上。

全面上云很好地应对了宕机、计算节点断网等事件的发生,这也坚定了世纪联华使用阿里云的决心。

然而业务急剧的扩展,数据库的查询写入越来越多,全面上云的架构在 2019 年中促销活动中,某台 16 核 32G 的 MySQL 数据库所在的 ECS ,因为会员查询业务实现未做好弹性扩容准备,定时业务陡增导致请求延迟巨大,严重影响了用户体验。

世纪联华开始探索新的业务架构方式,琢磨如何使用简洁的架构实现出更高可用的业务系统。

2019 年年中至 2019 年 双11:Serverless 的探索和尝试

随着线上业务不断发展,世纪联华的业务量不断扩大。在经历了 2019 年中数据库事件后,世纪联华经过尝试探索后,发现阿里云的表格存储服务比较适合自己的弹性业务:陡升陡降的业务不需要提前做预算来准备购买多少台存储服务器。这让联华的技术人很兴奋,因为很难算准突发的定时抢购业务量,这就导致很难预估准备多少机器来应付相应的业务量。表格存储的出现让联华技术人了解到一个词:Serverless!

在探索 Serverless 的道路上,联华的技术人偶然接触到了阿里云的函数计算,在紧张的测试验证后,技术人员发现函数计算的优异表现很契合联华的业务高度弹性的会员查询系统。

从 2019 年 7 月开始,联华技术人在不到 3 个月的时间里,将原有的会员数据全部副本镜像迁移到表格存储,并将所有渠道商的 API 全面迁移到阿里云 API 网关做分发,会员查询业务的计算业务也全面迁移到阿里云函数计算。

2019 年的 双11,函数计算作为计算模块,表格存储作为存储模块,顺利地帮助世纪联华渡过大促,扛住高峰流量的同时确保了应对业务的弹性。而未使用 Serverless 的业务因为预估不足,出现了一些异常。

Serverless 给世纪联华带来新的曙光:

  • 无需人工干预,瞬时弹性扩容很好地解决了流量的爆发带来的服务全面不可用;
  • 运维管理简单,一键部署更新函数,不需要了解网络分发架构,部署流程变得更简单,无需特聘运维人员,普通研发即可操作;
  • 不再需要提前做费用预算,用多少资源是多少钱,极大解决了技术和财务的沟通烦恼;
  • 因为定时秒杀场景请求波峰波谷明显,不需要预留大量机器,从而节省了大量费用。

遗留的问题:

  • 部分请求因为冷启动延时高导致用户体感不好,这也是当时 Serverless 开发人员普遍遇到的问题。

双11 中 Serverless 的表现让联华技术人很振奋。在顺利渡过大促活动后,世纪联华很快宣布:将在所有业务中全面使用函数计算及表格存储!

2020 年的 双11:函数计算 2.0 及全面拥抱 Serverless

2019 年下半年,阿里云函数计算宣布推出 2.0,支持预留模式,全面解决冷启动延迟大的问题;推出单实例多请求问题,较少实例支持重 IO 高并发类型请求调用;支持自定义运行时,支持一键迁移传统 Web 架构服务器。2.0 的出现让函数计算在业务和规模上实现了巨大升级。

在经历了过去的线下场景考验后,世纪联华将各渠道商的业务及旗下的“联华鲸选 APP”,以及线上交易、定时抢优惠券、秒杀业务也全部从 ECS 迁移到了函数计算 2.0,在开启预留模式调整好单实例多并发的模式后,顺利地扛过了是平时数十倍的洪峰流量请求。

image.png

比较上述的“时间-流量图”及“时间-延迟”两图可以看到,急剧上升的突发流量对用户造成的延迟变化影响非常小,从实际用户反馈来看确实也证实了用户体验非常顺滑。

所有的数据和业务上云,减轻的不只是研发人员的心理压力,还有工作量。联华华商技术负责人楼杰表示,“阿里云函数计算省了我们技术人员好多工作,我们不用管理服务器这些基础设施,只要编写代码上传,系统就会准备好计算资源,还提供日志查询、性能监控、报警等功能。这要是放在以前,超市搞 双11 大促,我们技术团队都睡不着觉,只靠扩展机器支撑大体量的流量和业务,谁心里都没谱。现在扩容的问题交给阿里云,水位远远高于我们储备能力的极限。”

站在风口上超车:传统企业何以更需关注 Serverless?

2020 年是国内 Serverless 的技术元年,为了降低技术研发成本、提升运维效率,越来越多的企业开始选择使用 Serverless 作为基础研发底座,大力发展业务。

在近期 CNCF Serverless 研究报告中,阿里云函数计算以 46% 的占比占据国内榜首。报告同时显示,大量的国内开发人员正在将传统架构往 Serverless 上做迁移。Serverless 的出现给传统企业数字化转型带了更多机遇。

在今年的疫情当中,线上教育已经成为广大学生群体不可或缺的基础设施,阿里云函数计算也为企业提供了强大的计算力,助力企业实现视频转码成为国内在线教育 TOP 级企业。

除了新浪微博、芒果 TV、石墨文档等互联网企业,在过去的一年里,越来越多的传统企业正在以意想不到的速度接触、尝试、大规模使用函数计算。

传统企业何以更关注 Serverless 呢?现如今,大量尖端技术人才更偏向在互联网公司就业,但传统企业又面对着大量技术升级和重构技术架构的刚需,人才缺口和技术升级之间产生了对云原生技术的需求。Serverless 的出现抹平了研发人员在预算、运维经验上的不足。在帮助企业对抗业务洪峰的情况下,研发人员能轻易掌控处理,不仅极大地降低了研发技术门槛,而且大规模提升了研发效率。对于开发者而言,线上预警、流量观测等工具一应俱全,关键是免去了运维负担,切实为广大开发者提供了普惠技术红利。对传统企业而言,Serverless 缩短了互联网公司与传统企业之间技术竞争力的距离。

由于业务场景、用户习惯迅速变化,许多行业数字化业务出现急速增长,加快数字化业务发展成为传统企业的必然选择。云原生是企业数字化最短路径,越来越多的传统企业正在拥抱云原生,借助更加快速、灵活的开发和交付模式,满足市场快速变化的需求,进而加速业务创新。世纪联华借助 Serverless 保证了一次次大促的成功,正是这一趋势的最好证明。

作者:朱鹏
文章来源:阿里巴巴云原生 微信公众号
原文链接:https://mp.weixin.qq.com/s/o6wpc4i4o5dGNOpz9VgB3g

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
23 2
|
8天前
|
监控 Kubernetes Cloud Native
云原生之旅:从理论到实践的探索
【10月更文挑战第34天】本文将引导你走进云原生的世界,从基础概念出发,逐步深入到实际的应用部署。我们将探讨云原生技术如何改变现代软件开发和运维的方式,并展示通过一个简单应用的部署过程来具体理解服务编排、容器化以及自动化管理的实践意义。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的视角和知识。
24 3
|
14天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
3天前
|
运维 Kubernetes Cloud Native
云原生技术入门及实践
【10月更文挑战第39天】在数字化浪潮的推动下,云原生技术应运而生,它不仅仅是一种技术趋势,更是企业数字化转型的关键。本文将带你走进云原生的世界,从基础概念到实际操作,一步步揭示云原生的魅力和价值。通过实例分析,我们将深入探讨如何利用云原生技术提升业务灵活性、降低成本并加速创新。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
3天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
20 5
|
5天前
|
运维 Cloud Native 安全
云原生技术在现代软件开发中的实践与挑战####
【10月更文挑战第21天】 本文将深入探讨云原生技术在现代软件开发中的应用,分析其带来的优势及面临的挑战。通过案例分析和数据支持,揭示云原生化转型的关键因素,并展望未来发展趋势。 ####
21 7
|
4天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
4天前
|
消息中间件 缓存 Cloud Native
云原生架构下的性能优化实践与挑战####
随着企业数字化转型的加速,云原生架构以其高度解耦、弹性伸缩和快速迭代的特性,成为现代软件开发的首选模式。本文深入探讨了云原生环境下性能优化的关键策略与面临的主要挑战,通过案例分析,揭示了如何有效利用容器化、微服务、动态调度等技术手段提升应用性能,同时指出了在复杂云环境中确保系统稳定性和高效性的难题,为开发者和架构师提供了实战指南。 ####
18 3
|
4天前
|
运维 Kubernetes Cloud Native
深入理解云原生架构:从理论到实践
【10月更文挑战第38天】本文将引导读者深入探索云原生技术的核心概念,以及如何将这些概念应用于实际的软件开发和运维中。我们将从云原生的基本定义出发,逐步展开其背后的设计哲学、关键技术组件,并以一个具体的代码示例来演示云原生应用的构建过程。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和实操指南。
|
5天前
|
Cloud Native 持续交付 云计算
云原生技术入门与实践
【10月更文挑战第37天】本文旨在为初学者提供云原生技术的基础知识和实践指南。我们将从云原生的概念出发,探讨其在现代软件开发中的重要性,并介绍相关的核心技术。通过实际的代码示例,我们展示了如何在云平台上部署和管理应用,以及如何利用云原生架构提高系统的可伸缩性、弹性和可靠性。无论你是云原生领域的新手,还是希望深化理解的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。

热门文章

最新文章

相关产品

  • 函数计算