Serverless应用引擎SAE(Serverless App Engine)能帮助应用极速上云,免运维底层基础设施,降低开发运维成本,白屏化管理应用全生命周期。本文介绍SAE在助力传统大型国企云原生转型,并解决弹性、运维和团队协同等问题的成功案例。

背景信息

贵州酒店集团有限公司于2019年2月28日注册成立,是经贵州省人民政府批准并授权省国资委履行出资人职责的省管大一型企业,全资及控股子企业23家,自营及委管酒店(项目)80余家,客房近1.3万间。

酒店集团组建以来,构建了以酒店运营与管理为核心业务,以旅游商品、教育培训、会议会展、电商科技、黔菜餐饮为支柱业务的“1+N”主营业务架构,正逐步培育打造系列酒店、特色餐饮、教育培训等旅游产业化服务品牌体系。

2020年,贵州乐旅网络科技有限公司成立,肩负着建设酒店集团现代化信息系统的使命。初期,在三四个人的快速迭代下,快速构建起了支撑全集团内外部业务的信息系统。随着公司的发展和市场需求的迅速变化,乐旅网络科技也不断壮大,从最初的三四个人发展到了十几人,系统模块越来越多。集团的信息系统最初部署在阿里云ECS上,系统按照微服务的架构拆分成多个组件,基于ASP.NET Core框架开发。为了更好地对应系统发展的需要,乐旅网络科技同阿里云达成战略合作,基于阿里云打造信息平台2.0。

业务痛点

乐旅网络科技在开发运维过程中遇到了如下痛点。针对这些痛点,SAE逐一攻破。

业务痛点为什么选择SAE
组件缺少扩展性:集团的业务有明显的峰谷特性,平台会定期上线活动,活动到来时有不可预知的流量波峰,现有的预估扩容的方式存在预估不准和扩展困难的问题。SAE具有丰富的弹性策略,不仅支持原生的CPU/Memory,而且支持业务指标的QPS/RT和定时,资源池由云产品维护,用户免操作。SAE提供了精准容量+弹性+限流降级一整套高可用产品化解决方案。通过该方案,SAE能够帮助应用轻松应对流量高峰。
系统缺乏稳定性:因信息系统依旧延续第一代架构,扩展性差,导致无法设置完善的弹性伸缩,面对越来越大的流量,系统稳定性问题愈发凸显。同时,团队需求多,开发任务重,运维人员缺乏。SAE能够免运维底层基础设施,例如IaaS、K8s、微服务组件和APM组件等,无需自建ZooKeeper、Eureka、Consul和Skywalking等,极大降低开发运维成本,最大化利用资源完成应用的生命周期管理,提供商业化稳定性兜底。
多环境建设不完善:线下测试环境与线上生产环境隔离,线下测试中无法完全覆盖线上生产环境的场景。因此,在上线时会出现新上线的组件在线上真实环境中出现预期之外的异常,但因为原有系统缺失版本管理,无法快速恢复指定版本,导致无法保障代码资产。SAE支持通过VPC和命名空间为应用提供逻辑隔离的网络环境。应用创建成功后,可以通过灰度、分批发布不断迭代升级;如果升级的版本出现问题,支持一键回滚至所需的历史版本,保障应用的安全性与稳定性。
团队协同效率低:整个系统有多个模块,由不同团队管理,并且各个团队独立维护ECS机器,主要依靠人为线下沟通。因此,发版过程需要上下游链路协同,按照依赖关系顺序发布,消耗时间长,协同难度大。SAE通过账号体系及基于账号体系的一系列权限管理操作,提供企业级的权限管理系统,对应用、资源和数据进行隔离和权限控制,以保障安全性。
监控系统不完善:运行状态没有统一的观测平台,遇到问题也只能分别排查子系统,且缺少问题排查协助工具。SAE无缝集成的ARMS产品,具有白屏化应用监控和诊断能力,可用定位到慢SQL、慢方法、方法的调用堆栈、为线上问题的分析、排查、预警和解决,提供强有力支持,节省大量的排查时间。

解决方案

贵州酒店集团解决方案逻辑图如下所示。dg_case_studies_guizhou_hotel_group

贵州酒店集团最初的系统基于微服务理念开发,因此迁移时无需在代码层面进行大改动,就可以将ECS上的组件分为不同的应用,并平滑迁移至SAE。由SAE提供底层资源调度、部署、灰度发布、微服务治理和监控诊断等能力,贵州酒店集团可以一键式白屏化地管理应用的全生命周期,简化运维。此外,SAE的秒级自动弹性可以根据流量对应用进行动态扩缩容,以最小化闲置资源为原则,确保在流量高峰期保持业务稳定,在流量低峰期降低资源成本。同时,SAE集成RAM系统,提供命名空间级别和应用级别的权限隔离能力,便于管理应用以及一键启停应用,进一步提高应用安全性与缩减闲置成本。

使用效果

结合以上SAE的能力,本次信息平台2.0的建设,项目组没有大改造原来代码逻辑的同时,基本完成了最初定下的目标,在开发、运维和协作方面建设了自己的流程规范,快速追平了业内的优秀实践。

项目组最终在2022年02月完成了整体的迁移,新系统上线后,通过SAE白屏化的操作界面,大大降低了运维难度和压力。基于RT和定时的混合策略,应用能够实现自动伸缩。无需运维人员介入,减少重复劳动。

在团队协作方面,通过阿里云的访问控制RAM,开发、测试、运维人员在SAE控制台各司其职。总体来看,系统上线SAE之后,开发运维效率提升了50%+,机器成本下降了20%,运维人力成本下降了60%,扩容速度比之前快了十几倍,完成了之前定下的目标。第一期上线后,项目组计划信息平台还会有更多的技术优化点,将和SAE研发团队共同探讨解决。