阿里巴巴|阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系

阿里巴巴|阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系



阿里巴巴|阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系




随着阿里巴巴多元化业务 20 多年的高速发展 , 技术体系经历了 web 时代、移动化时代、数据智能时代、云计算时代等多个重大变革 。 在这些变革中 , 开发者面对的技术体系、工具体系、知识体系也在不断进化 。 研发工具在其中起到了技术规模化和降本提效的关键作用 。
工具体系总览 通常企业中技术人员会按照技术工种分为前端、移动端、服务端、数据、算法、测试、运维等多个角色 , 这也代表着当前软件工程领域的几大技术分工 。 每种技术栈都有自己独有的技术发展路径和配套工具集 , 在阿里巴巴除了这种纵向的技术维度切分以外 , 还存在按照用户感知路径从前往后的横向切分 。 比如偏向业务侧的 no-code/low-code 编程 , 偏向通用侧的 pro-code 编程等 。

研发工具体系发展大体分为:技术栈标准化、工具流程平台一体化、细分场景技术多样化三个主要阶段 。
在一种特定技术领域发展初期或者公司刚成立之时 , 会出现技术框架百家争鸣 , 多种研发流程并行的情况 , 通常主流技术栈收敛是提升研发效率的第一选择 。 比如阿里开发中 Java 技术栈人员占比超过 50% , 基于 Java 技术栈演进出的中间件、编程框架、配套工具 , 以及研发流程会高度耦合 , 形成统一研发解决方案 。
解决方案的产品化会诞生一体化的工具流程平台 , 而此平台对企业的核心收益在于将固有流程标准化和自动化 , 抬升了所有技术员工的技能底线 , 从而提升平均人效 。 另一方面工具平台可以帮助企业积累可用资产 , 并将过程数据进行汇总分析 , 为管理者提供决策依据 。
研发工具发展的第三阶段是与企业业务深度耦合和定制后的场景化 , 实现特定领域的效能突破 。 比如 OA 领域的无代码编程、前端智能化 P2C、服务端函数编程等 。
阿里巴巴 DevOps 平台 我们通常所说的 DevOps 是计划、代码、开发、测试、发布、运维、监控的全流程 , 分为三大阶段:需求分析阶段、代码开发阶段、交付运维阶段 , 分别对应以需求为中心、以代码为中心、及以应用为中心的三个工具平台 。
平台首先需要解决的是如何管理企业研发类资产的问题 , 通常分为知识类资产(需求、文档、设计图等)、代码类资产(程序、配置、数据等)、应用与资源类资产(实现对外服务的逻辑单元以及背后的物理资产) 。 其次需要记录研发过程所产生的数据 , 用于分析寻找提升效率的路径 。
工具平台会将资产数据和过程数据沉淀到统一的数据中台之上 。 而串联数据的正是 DevOps 从计划到监控的标准化流程 。 在阿里我们称之为价值流 , 代表着一个业务价值从定义到实现的全过程 , 而这种价值交付的速度正是研发效能 。

基于“云”的 DevOps 体系 当前企业上云几乎成为必选 , 建立 DevOps 体系的时候必须要考虑“用好云”的问题 。 从阿里巴巴的经验来看 , “用好云”的关键是给开发和运维两种角色分别建立用云的工具切面 。
【阿里巴巴|阿里巴巴DevOps实践指南(二十五)| 阿里巴巴 DevOps 工具体系】运维或者 SRE 这个角色是基础设施的创建和维护者 , 他所关注的是大量零散的 IT 资产 , 如何管理这些资产 , 控制其生产和运维流程是最重要的 。 我们会选择一个基于 ITIL 或者 ITSM 的“云资源管理平台”来帮助运维人员提升管理效率 , 因此称之为面向“资源”的管云界面 。