回到主页

UWin Release | CI流水线正式上线 补齐DevOps重要能力环节

持续集成(Continuous Integration, CI) 本质上是一种开发模式的最佳实践,它要求开发者在统一的代码库中维护代码项目;并且每一次的代码提交,都会触发自动集成,让开发团队快速发现问题并且马上修复。

· 平台发布

通常来说,持续集成是一个代码提交,触发构建和测试的循环:开发者在本地提交代码到统一的代码库,代码库会产生提交事件,这些事件会触发 CI Server 对提交的代码进行集成,而 CI Server 对代码集成的过程通常称之为 CI 流水线。

broken image

为什么需要CI流水线?

更高的代码质量

合并到主干的代码会经过 CI 流水线的校验,在流水线中进行代码检查、编译、单元测试和打包、甚至会有基本的接口集成测试验收和安全漏洞扫描;如果 CI 流水线集成失败,那么代码将不允许合并到主干,主干会保持极高的代码质量。

更好的测试代码

在 CI 流水线里面,单元测试、端到端测试、代码覆盖率都会自动运行和生成报告,降低测试人员的负担,又无需担心会有遗漏,他们将会有更多的时间去做更有价值的事情,例如改进测试用例,进行难以自动化执行的探索性测试等等。

更早地发现问题

CI 流水线可以帮助研发和测试人员更早地发现代码中可能存在的问题,避免将错误带入生产环境,交付到用户手上;持续集成如项目的一面镜子,通过这面镜子能够快速了解项目目前的状况、存在的问题,如果由用户反馈问题后再去修复,牺牲的不止是用户体验,甚至是公司的产品未来的市场。

提高团队的信心

持续集成带来的诸多好处,会提高项目团队成员对自己产品的信心,帮助我们有效地决策,关注项目进展的趋势;而高质量的产品和服务则会提高客户的信心,形成一个正向循环。

EasyOps 持续集成的特性介绍

区别于传统的 CI Server,EasyOps 的 CI Server 提供了业界最为先进的技术方案,为各个企业的 CI 管理员和项目开发团队排忧解难。

Feature 1:Pipeline As Code

EasyOps 的 Pipeline Workflow 可以使用配置文件进行描述,然后存放在代码库中,像代码一样管理流水线,业界称之为:Pipeline As Code, Workflow 由若干个串行执行的 Stage 组成,而 Stage 内部又可以执行多个 Step,这些 Step 之间可以以串行或者并行的方式执行。

broken image

Pipeline As Code 可以为项目开发团队带来极大的好处:

1. Versioning Pipeline Workflow

Pipeline Workflow 的定义文件存放在代码库中,可跟随项目版本一同管理,提高维护效率,例如 1.0 的代码运行的流水线,可以和 2.0 版本的代码不一致。

broken image

2. Multi-Branch Pipeline

由于 CI 流水线的定义文件维护在代码库,EasyOps 的 CI Pipeline 天然就支持多分支流水线,流水线可以随着代码分支进行无缝的切换,例如我们希望 Develop 分支运行开发流水线,Release 分支运行测试流水线等等。

broken image

3. Structured Pipeline Definition

结构化定义流水线,CI 流水线支持使用业界主流的结构化语言 YAML 进行描述,使用更为便捷友好,即使是普通的开发人员也能快速上手。

broken image

Feature 2:Step As Docker Container

Pipeline 在运行期间,会为每一个 Step启动一个容器,执行 Step 中的指令, 和传统的持续集成服务器的普通工作流引擎相比,EasyOps 的 CI Pipeline 采用了 Docker Engine,让 EasyOps 的 Pipeline 具备以下的强大优势:

1. Integration With Kubernetes:

EasyOps 的 Pipeline构建任务可以直接在 Kubernetes 集群中运行,使用 Kubernetes 集群来解决构建集群的管理问题,例如动态扩缩容,项目团队构建资源调配等等。

broken image

2. Build Step With Dockerfile:

EasyOps 的 Pipeline构建任务可以直接在 Kubernetes 集群中运行,使用 Pipeline 中的 Step 可以使用 Dockerfile 进行快速的构建,和传统的集成工具不一样,Step 本身已经包含了运行环境(容器镜像),一次编写,多处运行,而且可以通过 Docker Register 维护的镜像版本来维护 Step 的版本。

broken image

Feature 3:EasyOps Pipeline Step Store

EasyOps Pipeline 的插件中心,已出厂内置包含代码拉取、编译构建、制品打包、制品注册、集成测试、制品部署、人工审批等类型的各种插件,覆盖业界主流的数十种语言和依赖管理框架;同时,用户也可快速自定义自己的插件,打造适合企业需求的流水线。

*插件中心

broken image

Feature4:代码仓库授权管理

与传统的集成服务器区别,EasyOps 的 CI Server进行集成前,先注册登记企业内部的统一代码仓库,从而在该仓库中的代码项目进行持续集成时,无需重复授权。

broken image

EasyOps 持续集成的版本预告

  1. 集成制品的识别和临时存储

  2. 集成制品的版本注册和持久化存储

  3. 集成 SonarQube 的静态分析报告

  4. 集成业界主流 TestRunner 以及测试报告

……

EasyOps 的 CI 流水线的核心目标是尽可能地为客户提供企业级持续集成的落地解决方案,让持续集成变得触手可及。

最后,CI流水线对于版本高速迭代的公司而言是极其重要的,其可以有效推进应用架构转型,适应科技创新的研发管理,提升IT开发、测试、交付一体化能力,快速响应客户需求,快速交付产品,降低人工操作风险和投产风险,助力企业实现一条支撑敏捷发展的数字化生产线。

如果您需要了解更多EasyOps产品具体能力、功能实现细节,请通过我们的商务销售渠道建立沟通哦!