开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计:云效携手 SAE 助力掌讯科技降本提效】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/82/detail/1303
云效携手 SAE 助力掌讯科技降本提效
内容介绍
一、本章概述
二、企业背景
三、曾经面对的挑战
四、使用云效、SAE&掌迅后的解决方案
五、掌讯提效成果
一、本章概述
本章内容从企业研发效能实践出发,阐述如何使用云效加阿里云 SAE 服务解决方案帮助企业提升研发效率,提高交付质量,如何在效率提升的同时又能做到有效的成本控制。
1. 企业背景介绍
2. 曾经面对的挑战
3. 云效、SAE&掌迅解决方案
4. 掌迅提效成果展示
二、企业背景
掌讯基本情况和业务背景如下:
1. 企业概况:
掌讯信息技术有限公司创立于2009年,服务对象包括,一产、二产和企业经销商客户,发展至今由一条产品线到六条产品线并行,是一家提供企业信息化咨询、创新型软件产品、电商代运营服务,标准化管理、快速发展的高新技术企业。
2.团队规模:60+
3.主要产品:
企业互联网应用(麦哥-经销商、觅云加-供应链、智慧工厂解决方案解决大型化改造)
4.服务客户:
大型企业、零售服务等领域的公司和实体。
三、曾经面对的挑战
1. 组织管理权限复杂:
研发过程使用的第三方平台增多,导致研发人员权限分散,造成人员维护成本上升。钉钉,阿里云平台,Jenkins的权限管理独立一套,与其它系统不能很好的对接。
2. 质量管理落地困难:
公司组织管理使用网格化管理模式,产品组织相对独立,在推行质量管理中落地困难,代码质量管理人工介入往往执行不到位,代码质量很难保证。
如:使用了阿里巴巴 java 中使用代码的规范,但是落地开发中只是约束开发者人员本地使用工具校验,或是提供单一的代码检查平台,因为过程中人为约束过多,无法有效做到在流程中执行规范。
3. 流水线、微服务架构管理低效:
①自动化部署虽使用 jenkins 自动化部署工具,但 jenkins 的流水线脚本编写维护繁琐。
②技术架构层面随着业务不断发展,微服务的架构演进提上日程,微服务架构采用自建微服务架构,技术门槛限制和人力不足问题导致落地困难。
4. 计算资源浪费严重:
微服务建设初期,单一使用阿里云 ECS 部署多环境应用,导致资源利用率低,存在较多的闲置浪费。
四、使用云效、SAE&掌迅后的解决方案
1.解决方案图:
图形由上至下分为四层:
最上一层的代码管理平台,此由原有的自建 git 代码库改为了阿里云云效的 codeup产品,主要因为 codeup 自带的代码质量管控功能;第二层自动化流水线,这一层由原来的平台迁移到云效的 float 产品上,主要考虑float的应用性和超低的维护成本;第三层应用管理层,将自建的微服架构迁移到阿里云的 SAE,主要考虑 SAE 的精益成本,不被闲置浪费,更加安全,极速弹性,与阿里云其他产品高度集成的特点;最后一层由于使用了 SAE 解决方案,在 LAAS 方面并不需要花费太多精力,在SA 中定义多环境的命令空间,剩下的资源分配工作完全可以由 SAE 进行按需分配。最后,反馈机制方面,云效和SAE都提供钉钉等多种反馈方式,由于公司组织管理使用钉钉,所有的形式方式都采用钉钉进行信息接收。
2.方案落地
以下为方案落地的具体步骤,方案落地分为三个步骤。第一步,统一平台用户;第二步,完善质量管理;第三步,整合资源优化流水线。
l 方案落地分为三步:
(1)第一步:云效企业级成员权限管理,做到三级安全防控
思路:将从前第三方平台用户统一到阿里云,将原有自建代码库迁移到阿里云云像Codeup。将原有的 Jenkins 平台迁移至云像产品。代码管理部分,由于 Codeup 自身集成控制,因而采取摒弃之前代码质量管理工具,摒弃之前代码库、持续集成平台(jenkins)、质量管理平台,多平台多用户的方式,迁移至阿里云平台后,在阿里云平台上构建用户和相应的决策权限,统一在阿里云平台完成用户管理。通过如下三层权限管理做到安全防控:
①阿里云企业成员、角色权限管理设置
②云效 Flow 及 Codeup 角色权限管理
③云效 Flow 及 Codeup 成员权限管理
(2)第二步:完善代码质量检查,做到质量可控
l 三个阶段的代码检查、代码提交自动触发:
开发阶段云效 Codeup 代码提交(push)自动代码检查,减少人工检查环节的不确定性;
测试环境通过部署阶段云效流水线(Flow)添加自动代码检查环节,提高测试环节代码质量;
生产环境部署阶段云效流水线(Flow)发布任务执行前添加安全检查任务,提高产品交付的安全性。整个持续交付过程使用 Codeup 和 Flow 产品,针对三个环境的安全检查,提高了整个产品交付的安全质量,做到安全质量可控。
(3)第三步:完善测试、正式二条自动化流水线实现持续交付
①分布式开发环境使用阿里云 SAE(Serverless 应用引擎)。
②云效流水线 FLOW 产品无缝结合SAE。
在该步对原有的分布式架构进行改造,采用阿里云 SAE 产品,极大降低在 nas 资源的投入。友好的弹性伸缩解决方案,使得面对突发场景更加从容。SAE 降低了分布式应用对运维的繁琐工作。使得团队可专注拓展和业务创新。
SAE 还可与云效流水线 FLOW 产品进行无缝对接,减轻在无缝交互环节的末端投入。在云效 Flow 中轻松构建正式、测试等多条流水线,实现持续交付,图为:实际构建的多环境流水线 Flow 任务。
完成以上三步后就成功构建了一个以 SAE 为分布式架构为基础,整合云像 Codeup和流水线 Flow 产品方案,此方案为一套低效、高成本分布式研发解决方案,以该方案为依托,今年来的产品开发效率大大提升。
五、掌讯提效成果
l 整个解决方案,带来的成果如表:
对比项维度包括:代码规范评审、代码安全评审、发布方式和分布式环境建设和分布式环境运维。
对比项 |
改进前 |
改进后 |
代码规范评审 |
代码评审环节滞后,人为控制环节多。 |
云效commit自动化评审 |
代码安全评审 |
缺失安全评审工作 |
云效commit自动化安全评审 |
发布方式 |
1.jenkins手工编写流水线脚本 2.jenkins通过API方式集成阿里云产品(SAE) |
1.云效流水线高度可视化操作--简单 2.高度集成阿里云产品(SAE)--便捷 |
分布式环境建设 |
购买ECS设备构建环境 |
SAE无需购买ECS,按资源使用量弹性付费 |
分布式环境运维 |
自建运维环境,集成多种运维工具 |
SAF提供统一运维平台,高度集成阿里云运维相关产品 |
以上即通过阿里云效对 SAE 对团队的改进帮助,简言概括为:降本提效。