阿里云服务团队根据客户业务特点结合阿里云微服务治理和稳定性治理体系的最佳实践以及客户案例,帮助客户制定了应用无损发布,灰度发布,容量规划,限流降级等方案,并与客户一道完成方案的落地。
应用无损发布可有效避免应用发布时前端异常的问题,提升用户的使用体验,让系统在变更时更加顺滑。为了加快落地并减少工作量,充分利用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进行等待或者快速失败,把不确定的流量变为确定性的流量,保障数据库的稳定从而确保整个业务的稳定。