Serverless 应用引擎 SAE(Serverless App Engine)能帮助企业极速上云,将应用平滑地迁移到SAE平台上,不涉及任何代码和业务逻辑的修改,并能通过灵活的应用启停来降低资源使用成本。本文以石家庄掌讯为例,介绍SAE在支持企业应用上云方面的成功案例。
背景信息
石家庄掌讯信息技术有限公司是一家提供企业信息化咨询、创新型软件产品、电商代运营服务,标准化管理、快速发展的高新技术企业。公司处于企业互联网市场突破转型重要阶段,希望将更多精力转移到业务创新,以提升开发和交付效率,降低试错成本。因此,选择一个支持低门槛开箱即用,能够持续交付、快速部署的运维平台尤为重要。
业务痛点
石家庄掌讯信息技术有限公司的痛点如下。针对这些痛点,SAE逐一攻破。
业务痛点 | 为什么选择SAE |
组织、人员权限管理复杂。独立一套的Jenkins权限管理,无法与其他系统高效对接,维护成本非常高。 | SAE采用阿里云完善的权限管理机制,按需分配权限,降低企业信息安全风险。 |
工程实践、流程规范不容易复用,代码质量无法保证。 | SAE采用Serverless架构,屏蔽了底层IaaS运维和K8s细节,与FaaS形态的Serverless产品不同,无需修改编程模型和改造代码即可直接使用。 |
FTP手工发布效率慢,Jenkins需要编写大量的脚本。 | SAE支持多种部署应用的方式,支持微服务以及多语言应用快速上云,且无需自建监控系统,提供了开箱即用的应用监控能力,极大提升了交付效率。 |
缺少专职运维人员和微服务改造实战经验,研发运维效率低。 | SAE提供丰富的功能和服务,包括应用发布、应用管理、服务治理、自动弹性、一键启停应用和应用监控等,并且与阿里云其他产品高度集成。 |
测试开发环境和生产环境的闲置计算资源较多。 | SAE既支持基于CPU、内存使用率等监控指标自动触发扩缩容,又支持定时弹性,灵活的弹性策略能够轻松应对流量高峰,真正做到按需使用,节省了非打卡时段的闲置成本。 |
解决方案
石家庄掌讯解决方案逻辑图如下。
第一层的代码管理平台方面,将原先的自建Git代码库改为自带代码质量管控的阿里云云效Codeup。第二层的自动化流水线方面,将原先的平台迁移到可视化的云效流水线Flow。第三层的应用管理方面,将自建的微服务架构迁移到SAE,一站式全托管的管理界面,为应用提供开箱即用的生命周期管理、可观测等功能,降本增效。第四层的底层资源方面,因为使用了SAE,石家庄掌讯无需运维IaaS层和K8s集群等底层细节,只需以命名空间定义多种环境,例如测试、预发和生产环境,聚焦核心业务。
使用效果
降低成本
零成本投入提高质量管理能力和持续交付能力
免费使用的Codeup代码库节省了自建Git代码库的成本,Codeup集成的代码审查和安全审查模块节省了质量管理的投入成本,免费的流水线Flow节省了原本在Jenkins中投入的环境成本。除了以上节省的有形成本,平台整合后,又有效降低了更多的成本。
低成本高质量玩转微服务架构
SAE节省了自建微服务架构的ECS成本。基于秒级弹性能力,无需长期保有固定资源,按需启停和自动弹性、按分钟计费,极大提升了资源利用率。使用SAE后,公司在硬件成本方面节省了50%。
提高效率
从零到一的高效体验(SAE)
SAE提供了开箱即用的应用托管和应用监控的体验,帮助石家庄掌讯信息技术有限公司关注业务开发,而非底层资源的运维,为其节省了大量的人力成本。目前,该公司已上线5个核心业务:商品中心、用户中心、销售中心、采购中心和库存中心。
零改造使用Serverless技术(SAE)
SAE实现了微服务应用的无缝迁移,WAR、JAR无需容器化改造,支持直接部署。这是SAE区别于其他Serverless产品的重要优势,能够平滑迁移企业在线应用。
加速代码评审Code Review(云效Codeup代码库)
在Codeup代码库中,代码评审会在每一次提交后自动审查,和之前集中时间与人力实施代码评审工作相比,分散在提交后的自动审查模式更节约时间,并且自动化的触发模式减少了人为参与产生误判的可能性。
高易用性,高集成性(云效Flow)
可视化的流水线配置替代了繁琐的脚本编写工作。Flow高度集成阿里云产品线,轻松集成公司所需的SAE环境。
提升质量,减少故障
针对流量增长,以往公司会提前预估峰值,按峰值保有ECS资源,但经常出现容量预估不准的情况(例如资源浪费或资源不足),更甚者会影响系统的SLA。通过SAE的秒级自动弹性,公司可以轻松动态扩容应对峰值大考,峰谷时按需自动缩容。
以前团队中的代码评审工作,只能指定专人在合并代码后,执行审查任务,并根据生成的审查报告,统一修订问题。在使用云效Codeup代码库后,代码审查工作被分配在每次提交后自动执行。以前统一的审核时间被分配在团队中每个人提交代码后自动执行,不但减少了人员参与的人力成本,而且减少了代码评审工作的时间成本,有效提高工作效率。整个代码评审工作提前到了代码提交阶段,将发现并解决代码潜在问题的阶段提前到了代码合并之前,因此减少了在后续环节中出现遗漏问题的可能性。