作者:珑乘、锕蛮
业务高速发展,业务敏捷性和稳定性面临挑战
波司登国际控股有限公司(简称波司登) 始于1976年,旗下品牌包括“波司登”、“雪中飞”等,波司登羽绒服畅销美国、法国、意大利等72个国家全球超2亿人次在穿。
作为全国最大的品牌羽绒服生产商,波司登连续26年全国销量领先,在疫情黑天鹅的冲击下,线下销售渠道增长瓶颈,波司登加速推进数智战略。但由于波司登核心业务系统分别由不同的软件开发商开发建设和维护,架构老旧、以传统单体应用为主,且版本迭代很慢,无法满足波司登线上业务的高速增长带来的高并发、弹性扩展、敏捷性等更高的要求,为此波司登迫切需要进行核心业务系统的云原生化改造升级,以支撑业务的高速发展。
全程贴身服务保障,核心系统一次性上线成功
在波司登尝试通过自身技术团队进行云原生化改造过程中,第一套云原生化改造的商品运营IMOS系统上线后系统在订货期间出现链路阻塞,对业务造成了严重影响。此外,陆续还有线上平台订单管理OMS系统和门店收银POS系统以及用户管理CRM系统需要同时改造上线,如何最快速度实现三套核心系统改造和平滑切换上线成为波司登面临的难关。
收到波司登需求后,阿里云服务团队第一时间赶到波司登现场,详细介绍了阿里云云原生改造方案以及波司登案例,帮助波司登量身定制云原生改造所需可观测性体系、全链路压测,系统变更与调优、全链路资源检查等方案、并为波司登建立专属应急保障体系。
在系统上线前,阿里云服务团队深入波司登业务场景,完善云原生架构下的可观测性和云产品监控,全量应用以及对应业务日志接入ARMS和SLS,显著提升了对于分布式系统错误的主动发现和白盒化定位能力。通过PTS产品结合实际业务场景,对11个核心业务场景进行了全链路性能压测和调优,提前发并排除现2个重大风险,结合压测结果和最佳实践对全链路30多个产品以及几百个Pod的资源进行全面巡检和调优,完成Hologres和PostgreSQL等实例容量扩容的同时,通过对200多条SQL的优化,大量慢SQL问题的风险得到了及时收敛。
在系统上线期间,阿里云服务团队全程驻场,第一时间响应处理波司登上线的紧急问题,快速处置了两起突发异常。一是数据库连接池没有控制好,Hologres部分work节点的并发连接数被打满,导致数据迁移失败和应用启动异常,通过现场快速定位连接数暴涨的应用,并优化Hologres侧的空闲链接释放参数帮助波司登快速规避问题。二是PostgreSQL数据库的SQL诊断优化功能触发index_advisor插件的BUG导致对应的PostgreSQL实例异常重启,紧急叫停波司登使用SQL诊断优化功能,并优先确保数据库稳定确保系统正常。
经过波司登技术团队和阿里云服务团队的的集中技术攻坚,圆满完成OMS、POS、CRM三套核心系统的容器化和分布式改造,且一次性上线割接成功,加快推进了数智化战略的进程。
绘就微服务治理大图,完美支撑双11业务洪峰
系统上线之后应用变更变的加频繁,几乎每天都有发版,而且在白天变更时经常会导致前端应用异常,严重影响使用体验,使得变更只能在晚间进行这样极大的增加了研发人员的负担也违背了敏捷开发的初衷。系统上线之后性能不理想,在并发不大的情况下主要应用的POD数量达到20个以上,需要靠堆资源来提升系统的处理能力,而且今年是云原生改造之后的第一个年,离双十一大促只剩下短短的三个月,如何快速完成服务治理改造,提高系统系统的稳定性和性能,保障系统能够顺利扛过双十一流量洪峰,成为了波司登技术人员的重要考量。
了解到波司登的痛点之后,阿里云服务团队根据波司登业务特点结合阿里云微服务治理和稳定性治理体系的最佳实践以及波司登案例,帮助波司登制定了应用无损发布,灰度发布,容量规划,限流降级等方案,并与波司登一道完成方案的落地。
应用无损发布可有效避免应用发布时前端异常的问题,提升用户的使用体验,让系统在变更时更加顺滑。 为了加快落地并减少工作量,充分利用ACK和MSE的能力,通过配置preStop和MSE无损下线实现应用优雅退出,通过配置健康检查并开启MSE上线流量预热功能保护应用安全启动,有效规避应用发布所出现的流量损失。结合波司登现状,为波司登定制云效流水线、ACK和MSE微服务治理能力相结合的应用发布方案,在应用发布的过程中即可实现无损上下线,无需增加额外操作,给技术人员减负。
灰度发布在应用上线之后出现重大异常时能够及时回滚快速切流,可以小流量试错新版本。 利用MSE提供Agent接入的方式,基于HTTP的Header中的某个字段给流量染色,利用Kubernetes的声明式部署对应用版本打入灰度标识,这样就可以限制只有被染过色的流量才会进入打上了灰度标识的版本,实现基于逻辑隔离机制的全链路灰度能力,从而实现新版本发布后业务小规模的流量验证,一旦发现新版本存在任何问题,可以及时回滚,把对业务的影响降至最低。
全链路压测是发现系统瓶颈确定系统容量的最佳手段 。 波司登技术团队和阿里云服务团队针对云上5套核心系统梳理出50余个压测场景,设计全链路压测方案、数据模型与压测脚本。通过Hologres SQL执行优化、表分区键以及shard优化、索引调整,应用日志异步化,JVM参数优化,代码优化,Redis缓存,MQ架构改造等十几项调优手段,在提高系统稳定性的同时系统整体性能提高50倍以上,云上资源利用率也显著提高,整体资源费用降低5%以上。
限流降级能力可以为系统安装一个可靠的保险绳。 由于慢SQL较多且时间紧迫来不及优化,为了避免严重的慢SQL发生后拖垮整个数据库,对线上业务产生阻断性的风险,波司登使用了MSE的数据库治理能力,基于压测结果评估流量峰值,配置SQL限流规则,在数据库流量过大时有选择性的让SQL进行等待或者快速失败,把不确定的流量变为确定性的流量,保障数据库的稳定从而确保整个业务的稳定。
波司登通过阿里云AMS服务,加速各种云原生方案的落地,用一年时间实现核心系统云原生化改造,极大的提升了系统的稳定性和性能,订单处理能力最高达到50万单每小时,顺利扛过双十一流量洪峰,也为线上业务的复杂与多变性提供了强有力的技术保障,线上零售额在疫情冲击下逆势同比增长66%以上 。 在满是「不确定性」的后疫情时代,线上渠道通过数智化升级成功实现高质量增长。
双十一的顺利度过以及线上业务的增长使波司登实现了自证预言,走出了一条自住可控的数字化改革之路,未来波司登将继续拥抱云计算,通过更先进、更高效的技术,更数字化的运营方式,激发创新活力,与各行各业的时代变革者共同成长,继续引领行业潮流。
采用的阿里云服务
阿里云可运维性咨询服务
运维服务
<https://www.aliyun.com/service/ams?spm=5176.27943428.J_6524166250.2.7e4dfdedMOORyt>
云管平台服务
标签:原生,数字化,波司登,上线,系统,业务,应用,SQL From: https://blog.51cto.com/u_13778063/6047346