7招,实现安全高效的流水线管理

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7招,实现安全高效的流水线管理相关的知识,希望对你有一定的参考价值。

简介:云效团队多年来为阿里巴巴内部(Aone)和云上企业用户(云效)分别提供研发运维工具,并致力于打造企业级一站式的 DevOps 平台,更多关注不同类型的企业用户在使用过程中的管理与协作场景,本文将重点介绍高效安全管理云效流水线的7招。

概述

传统流水线 Pipeline 工具,包括 Jenkins、Teamcity、Travis CI 等产品,作为企业 DevOps 中持续集成/持续交付的核心工具,从核心功能上来说通常可以概括为以下4点:

1、自动化测试:提供代码扫描、安全扫描、单元测试等自动化测试工具,确保代码在集成前已经经过充分测试验证。

2、集成构建:提供各种语言、框架的应用编译打包功能,将源码自动化转化为可以运行的实际代码,比如安装依赖、配置资源等。

3、发布部署:支持多种资源(虚拟主机、K8S等)的发布方式,支持通过灰度发布、分批发布等各种策略,保障业务交付的稳定。随着各种云计算的逐渐普及,出现各种各样的 Iaas/Paas 产品,CI/CD 工具如何支持各种形式的发布场景成为了一大核心价值。

4、流程编排:通过对不同工具和任务的流程编排能力,实现不同 CI/CD 流程把控。通常来说,流水线工具不但支持串联自身提供的测试、构建、部署功能,还会支持企业打通自有的其他工具(比如 git 仓库、自动化测试系统等)。

以上几点,作为 CI/CD 提供的基础功能,本文不做赘述。

云效团队多年来为阿里巴巴内部(Aone)和云上企业用户(云效)分别提供研发运维工具,并致力于打造企业级一站式的 DevOps 平台,更多关注不同类型的企业用户在使用过程中的管理与协作场景,本文将重点介绍高效安全管理云效流水线的7招:

第1招:基于业务特性分组管理流水线
第2招:预置流水线模板/任务组/步骤
第3招:一键批量升级流水线
第4招:设置通用变量组,随调随用
第5招:精细管理主机/集群资源
第6招:灵活管理私有构建集群
第7招:自定义企业maven配置

第1招:基于业务特性分组管理流水线

随着企业业务规模和团队规模的逐步发展,流水线和企业成员的数量越来越多。如何让成员快速定位到自己的流水线,避免成员淹没在一堆与自己无关的内容中,同时保障业务发展的安全性,成为了企业的共同诉求。

云效支持企业管理员可以在单条流水线上设置不同成员的查看、运行、编辑等流水线权限。同时也支持对流水线进行分组,并基于分组对多条流水线批量授权。

在云效上进行流水线分组操作

分组支持直接按照部门设置权限,这样的好处是部门成员发生变动后,流水线权限也自动发生变化。企业成员入职、离职的变动导致的权限变更可以做到自动化处理。

基于分组批量设置权限

第2招:预置流水线模板/任务组/步骤

在云效流水线 Flow 中,流水线是按照 流水线 -> 任务组 -> 步骤组成的,流水线可以由多个任务组编排组成,而每个任务组可以由多个步骤编排而成。

为了方便用户快速创建流水线,云效流水线 Flow 预置了部分流水线模板、任务组、步骤。

预置的模板可以直接调用

为了支持企业用户更加个性化地配置自己的流水线,云效流水线 Flow 中的流水线模板、任务组、步骤均支持企业自定义创建。可在企业设置中的流水线模板管理-任务组管理-步骤管理中,创建属于企业个性化的内容,企业成员可以在编辑流水线的过程中使用此部分自定义内容。

此外,在流水线模板管理-任务组管理-步骤管理中,企业管理员可以关闭企业不需要的内容以避免造成干扰。

可在任务组设置中关闭不需要的步骤

第3招:一键批量升级流水线

虽然随着业务规模的增长,企业内部流水线任务越来越多,但由于企业内技术栈基本统一,会出现不同流水线之间只有部分配置(如代码源、虚拟主机组等)存在差异,而大部分配置基本相同的情况。

当企业流水线的某些配置(比如构建脚本、人工卡点的审核人员)需要更改时,修改流水线会导致大量的重复工作。

因此,云效提供了通过任务组实现流水线批量升级的功能。

支持在企业设置中添加任务组时,开启“支持批量升级”功能。

在任务组中开启「支持批量升级」

企业成员在配置流水线过程中,可以选择已经创建的任务组。此后,企业管理员编辑修改任务组后,会对关联流水线中的任务节点进行升级。

修改可以同步升级关联流水线

第4招:设置通用变量组,随调随用

定义环境变量是实现流水线过程定制化的一种常见方法,可以在执行过程的任何阶段使用这些变量,云效流水线支持在每条流水线中设置其独有的环境变量。

在云效流水线中设置环境变量

但是有些变量其实是非常通用的变量,企业内大部分流水线都会用到,这时如果单独在流水线中进行设置,可导致大量重复工作。因此,云效提供了企业级管理变量的通用变量组功能。

支持在企业设置中添加变量组,每个变量组可设置多个变量,且变量均可设置为私密变量,部分敏感参数,如 username、password 等,设置成私密变量后,可以大幅降低安全风险。

在企业设置中设置通用变量

流水线管理者,只需要在流水线中关联变量组,就可在流水线任务中使用该变量。

在单独流水线中可以直接配置通用变量

第5招:精细管理主机/集群资源

云效流水线 Flow 支持将你的应用构建发布至虚拟主机或 Kubernetes 集群,同时云效的发布能力并不局限于阿里云服务器(ECS)和阿里云容器服务 Kubernetes(ACK),其他云厂商或者企业自建的虚拟主机或 Kubernetes 集群也可以通过云效实现部署。

在实际生产应用过程中,主机和集群资源作为企业的基础设施,其使用权限需要严格把控,以确保线上业务的安全性。

因此,云效提供了主机组/Kubernetes 集群管理功能,并支持在主机组和集群设置权限。

支持在企业设置中添加主机组,主机组可选择阿里云 ECS 和自有主机两种类型。每个主机组下均可添加多台主机资源,同时可将企业成员设置为主机组成员,拥有权限的成员才可以在流水线中选择该主机组资源。

在主机组中添加主机资源

同样,支持在企业设置中添加 Kubernetes 集群,主机组可选择阿里云容器服务 Kubernetes(ACK) 和自定义集群两种类型。可将企业成员设置为集群成员,拥有权限的成员才可以在流水线中选择该集群资源。

自定义 Kubernetes 集群

第6招:灵活管理私有构建集群

云效流水线 Flow 为企业提供了稳定、可靠的构建资源,并提供了北京和香港两个 region 构建集群,企业用户无需再自行创建并维护构建机,降低了企业整体的上云成本。

然而,云效提供的构建统一的免费资源并无法解决部分企业特性问题:

  • 特殊的网络环境,无法直接从公网和云效打通。
  • 特殊的构建机环境,云效无法直接提供。

因此,云效提供了构建集群管理功能,如果有特殊的构建环境需求,用户可在 Flow 中创建并使用私有的构建集群。

云效流水线 Flow 支持使用阿里云 ECS 或者自有主机作为构建集群。

在流水线的任务节点中,可以选择企业自定义的构建集群执行构建任务。

第7招:自定义企业maven配置

在云效流水线 Flow 中使用 Java 构建任务,云效流水线 Flow 会自动帮你代理阿里云 Maven 公库和云效企业私库 Packages,企业用户可以将企业依赖文件上传至 Packages 仓库,完成构建依赖下载的打通。

然而,对于使用 Java 技术栈的企业,通常都会有属于企业内部特有的 Maven 配置。

因此,云效提供了企业 Maven 配置功能,支持在企业设置中上传自定义 settings.xml 文件,Flow 会根据你的配置执行 Java 构建任务。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

以上是关于7招,实现安全高效的流水线管理的主要内容,如果未能解决你的问题,请参考以下文章

7招!实现安全高效的流水线管理

保护客户代码和应用安全,CodeArts有7招

秋招一个半月流水账+招银网路科技offer

秋招一个半月流水账+招银网路科技offer

秋招一个半月流水账+招银网路科技offer

如何通过云效流水线扩展代码检测