1 背景概述
贵州酒店集团有限公司于2019年2月28日注册成立,是经贵州省人民政府批准并授权省国资委履行出资人职责的省管大型企业,全资及控股子企业23家,自营及委管酒店(项目)80余家,客房近1.3万间。
2 需求分析
酒店集团的信息系统最初部署在阿里云 ECS 上。系统按照微服务的架构拆分成多个组件,基于 ASP.NET Core 框架开发。在开发运维过程中遇到一系列问题:
组件缺少扩展性:集团的业务有明显的峰谷特性,平台会定期上线一些活动,如土特产秒杀,酒店房间优惠,通过这些活动,用户可以获取抢购“贵州名牌白酒”的资格等。在活动期间访问量巨大,峰值最高能达到十几万 QPS,是平时的几十倍。
多环境建设不完善:线下测试环境与线上生产环境隔离,线下测试中并不能完全覆盖线上生产环境的场景,在上线时会出现需要上线的组件在线上真实环境中出现预期之外的异常,需要快速恢复,这就需要有很好的版本管理。
团队协同效率低:整个系统有多个模块,分散在不同团队,ECS 机器也都是独立维护,发版过程需要上下游链路一起协同,按照依赖关系顺序发布,消耗时间长,协同难度大。监控系统不完善:运行状态没有统一的观测平台,遇到问题也只能子系统分别排查,且缺少问题排查协助工具。
3 解决方案
对 CI/CD 的支持:SAE 支持云效、Jenkins、源代码、Cloud Toolkit 插件、容器镜像服务等多种部署方式,自动完成从代码提交到应用和任务部署的 DevOps 完整流程,高效替代业内部署复杂、迭代缓慢的传统方式,实现了高效的持续交付流程。
高可用和稳定性的支持:SAE 支持批量发布,微服务无损上下线,使组件在发布更新时,不会影响整体链路的可用性,另外 SAE 还支持多可用区的部署,稳定性进一步加强。
权限助手:权限助手可以对 SAE 的权限进行可视化配置,精确到应用、任务的读写操作,并在 SAE 控制台生成对应的权限语句,避免因直接在 RAM 控制台手动编辑权限语句而出现纰漏。
操作审计:SAE 记录了所有应用及资源相关的操作详情,包括操作时间、操作内容、操作人 ID 等信息,在出现问题时可以快速追溯原因。
4 用户价值
结合这些 SAE 的能力,贵州酒店集团信息平台2.0的建设,没有大的改造原来代码逻辑的同时,基本完成了最初定下的目标。新系统上线后,通过 SAE 白屏化的操作界面,运维难度和压力都大大降低。根据 RT 和定时的混合策略,应用有了很好的弹缩表现,不再需要运维人为介入。在团队协作方面,通过阿里云的 RAM 体系,开发,测试,运维都统一在 SAE 控制台各司其职,减少了很多不必要的沟通消耗。
总体来看,系统上线 SAE 之后,开发运效率提升了50%+,机器成本下降了20%,运维人力成本下降了60%,扩容速度更是比之前快了十几倍,很好的完成了之前定下的目标。