联华华商旗下的世纪联华超市近期迎来了一年一度的 “双11” 大促活动。
时光回到 2014 年的 双12,支付宝联合杭州多家线下品牌和商场门店,推出五折优惠促销活动。在这一次消费狂欢中,滨江区世纪联华店所有的柜员 POS 机前排起了长队,队伍移动速度异常缓慢,商场工作人员表示,服务器出现异常导致支付出了问题。
6 年后的今天,视线再次回到世纪联华超市 双11 大促现场,人潮涌动,却井然有序。参与大促的人数是 6 年前的几倍,但现场支付却稳定又顺滑,这种天壤之别的转变,源于世纪联华对云原生技术的大胆尝试。
世纪联华大促现场
技术架构演进之路
我们有幸采访到世纪联华的技术人员,了解到世纪联华在技术架构演进一路走来的不容易。
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,在开启预留模式调整好单实例多并发的模式后,顺利地扛过了是平时数十倍的洪峰流量请求。
比较上述的“时间-流量图”及“时间-延迟”两图可以看到,急剧上升的突发流量对用户造成的延迟变化影响非常小,从实际用户反馈来看确实也证实了用户体验非常顺滑。
所有的数据和业务上云,减轻的不只是研发人员的心理压力,还有工作量。联华华商技术负责人楼杰表示,“阿里云函数计算省了我们技术人员好多工作,我们不用管理服务器这些基础设施,只要编写代码上传,系统就会准备好计算资源,还提供日志查询、性能监控、报警等功能。这要是放在以前,超市搞 双11 大促,我们技术团队都睡不着觉,只靠扩展机器支撑大体量的流量和业务,谁心里都没谱。现在扩容的问题交给阿里云,水位远远高于我们储备能力的极限。”
站在风口上超车:传统企业何以更需关注 Serverless?
2020 年是国内 Serverless 的技术元年,为了降低技术研发成本、提升运维效率,越来越多的企业开始选择使用 Serverless 作为基础研发底座,大力发展业务。
在近期 CNCF Serverless 研究报告中,阿里云函数计算以 46% 的占比占据国内榜首。报告同时显示,大量的国内开发人员正在将传统架构往 Serverless 上做迁移。Serverless 的出现给传统企业数字化转型带了更多机遇。
在今年的疫情当中,线上教育已经成为广大学生群体不可或缺的基础设施,阿里云函数计算也为企业提供了强大的计算力,助力企业实现视频转码成为国内在线教育 TOP 级企业。
除了新浪微博、芒果 TV、石墨文档等互联网企业,在过去的一年里,越来越多的传统企业正在以意想不到的速度接触、尝试、大规模使用函数计算。
传统企业何以更关注 Serverless 呢?现如今,大量尖端技术人才更偏向在互联网公司就业,但传统企业又面对着大量技术升级和重构技术架构的刚需,人才缺口和技术升级之间产生了对云原生技术的需求。Serverless 的出现抹平了研发人员在预算、运维经验上的不足。在帮助企业对抗业务洪峰的情况下,研发人员能轻易掌控处理,不仅极大地降低了研发技术门槛,而且大规模提升了研发效率。对于开发者而言,线上预警、流量观测等工具一应俱全,关键是免去了运维负担,切实为广大开发者提供了普惠技术红利。对传统企业而言,Serverless 缩短了互联网公司与传统企业之间技术竞争力的距离。
由于业务场景、用户习惯迅速变化,许多行业数字化业务出现急速增长,加快数字化业务发展成为传统企业的必然选择。云原生是企业数字化最短路径,越来越多的传统企业正在拥抱云原生,借助更加快速、灵活的开发和交付模式,满足市场快速变化的需求,进而加速业务创新。世纪联华借助 Serverless 保证了一次次大促的成功,正是这一趋势的最好证明。
作者:朱鹏
文章来源:阿里巴巴云原生 微信公众号
原文链接:https://mp.weixin.qq.com/s/o6wpc4i4o5dGNOpz9VgB3g