|Serverless 对研发效能的变革和创新( 四 )


本文插图

敏捷的应用角度流程
下图展示了应用交付的流程 , 代码通过统一管理的代码库存储和管理起来 , 再通过持续集成将其变成一个交付物 , 再将其存储到交付物仓库里面 。 交付物可以是容器镜像 , 也可以是代码包的模式 。 产出了交付物之后 , 可以自动地将其部署到测试、生产环境中去做版本部署 , 最后实现到生产环境的自动部署 。 因此这样应用交付流程的关键点在于实现高度自动化 , 而自动化的关键环节有两点:分别是基础设施即代码和环节间的自动化串联 。
|Serverless 对研发效能的变革和创新
本文插图

自动化应用交付流水线
下图展现的是自动化应用交付流水线 , 可以看到在下面的每一个环节都需要实现很多的功能 , 而很多都是重复性工作 , 因此需要做到基础设施即代码 。
|Serverless 对研发效能的变革和创新
本文插图

基础设施即代码
下图是基础设施即代码的展示 。 Serverless 应用模型通过声明来定义应用资源 , 能够实现标准化、自动化和可视化 。
|Serverless 对研发效能的变革和创新
本文插图

可以为模板传入不同参数 , 可以动态生成应用运行环境 。
|Serverless 对研发效能的变革和创新
本文插图

服务版本和灰度发布
在函数计算里面 , 应用有版本的概念 , 版本是一个不可变实体 , 因此杜绝了版本因为非预期的修改造成线上应用受损 , 阿里云通过服务版本和灰度发布避免了这样的问题 , 客户端访问应用通过别名来访问 。
|Serverless 对研发效能的变革和创新
本文插图

Serverless 工作流
阿里云提供了 Serverless 工作流方便用户将 DevOps 串联起来 , 用户可以通过配套的服务能力、工具能力快速地创建工作流 , 并且以可视化的方式展现出来 , 能够清楚地看到工作流的效果 。
|Serverless 对研发效能的变革和创新
本文插图

自动化应用交付流水线
回顾一下当有了这些能力之后 , 如何实现自动化应用交付流水线 。 在源码阶段 , 可以实现代码质量静态检查 , 保证 CheckIn 的代码质量 。 当 CheckIn 到代码库之后 , 会自动运行单元测试 , 并且产出交付物 。 在测试的环节 , 通过与阿里云 ROS 的无缝集成能够实现自动化部署到测试环境 , 并且运行测试用例 。 这些完成之后 , 通过 ReleaseManager 可以确认部署 , 通过工作流将这些任务串联起来 , 发布到预发布环境中 , 并且进一步部署到生产环境中 , 每一个步骤都实现了自动化 , 研发效能得到了极大提升 。
|Serverless 对研发效能的变革和创新
本文插图

日志收集和查询
在 Serverless 计算平台之上 , 原生提供了很多的日志收集和 Metric 收集能力 , 比如简单日志查询以及高级日志查询 , 能够通过日志方式为用户提供高级数据分析能力 。
|Serverless 对研发效能的变革和创新
本文插图

指标收集和可视化能力
Serverless 计算平台除了提供了基本的指标视图之外 , 还支持自定义指标视图 , 用户可以通过自定义的关键词指标搜索实现与业务相关的数据分析 。
|Serverless 对研发效能的变革和创新
本文插图

当 Serverless 和 DevOps 结合之后 , 能够大大提升研发效能 , 一方面大大降低了开发团队的心智负担;另外一方面 , 通过工具使得整个 DevOps 流水线能够实现高度自动化 。


推荐阅读