CDS

CDS是一款自动化软件,您可以在软件上建立多种自动化作业方式,有效提升企业工作效率,优化复杂的工作流程,您可以在软件上配置多种管道,将项目计划节点和流程设置为管道,可以建立各种管道之间的连接,可以按照工作顺序连接管道,可以执行多线程、多并发的工作流程,充分发挥能,解决平台访问人数很多导致延迟、奔溃的问题;软件提供很多组件内容,支持CDSCTL组件,部署该组件可以通过命令行执行程序,支持引擎组件,引擎是CDS的核心组件,支持CDN组件,CDN是专门用于接收和检索志的服!

CDS功能

CDS是企业级连续交付和DevOps自动化开源平台。

CDS是OVH的第三代CI / CD工具。这是在CI / CD领域12年经验的最终结果。熟悉该行业的大多数标准工具,我们发现对于我们确定的四个关键方面,没有一个完全符合我们的期望。这就是CDS试图解决的问题。

CDSCTL

CI / CD平台最强大的命令行。cdsctl是CDS命令行-您可以使用它编写脚本,cdsctl还提供一些很酷的命令,例如cdsctl shell,无需打开浏览器即可浏览您的项目和工作流程。

CDS工人

管道是按顺序构造的,包含一个或多个并发作业。作业将由工人执行。二进制工作程序可从CDS Job获得

项目

CDS项目汇集了多个实体,例如管道,应用程序,工作流,环境。一个项目还允许链接一个或多个存储库管理器,例如github,bitbucket,gitlab…

一个项目通常与一个或多个具有不同ACL的组相关联。

整合方式

集成启用了CDS上的某些功能。

它可能涉及工件的存储,存储库管理器,可用于触发工作流的钩子,用于生成工作程序的基结构。

管道配置

管道是按顺序构造的,包含一个或多个并发作业。

工作流程配置

CDS工作流程允许您使用条件分支将管道与手动或自动门进行链接。

工人模型

CDS的目标是在需要时启动,该应完全符合您的所有要求。为了自动按需缩放,可以注册一个工人模型。

模型的目标是根据体系结构,预安装的二进制文件或库来描述给定Docker / ISO映像的功能。

管道

管道描述了如何执行一些事情才能获得预期的结果。在CDS中,管道属于单个项目,并且可以与该项目的应用程序一起使用。

管道是在连续的结构化阶段包含一个或多个并发作业。

可以对CDS管道进行参数设置。这样,当您具有类似的工作负载时,您就可以重用相同的管道。例如,您可以使用相同的管道先在生产前环境中部署,再部署到生产环境中。

一个 阶段是一组将并行运行的作业。如果上一个阶段成功,则按顺序执行各个阶段。

让我们来看一个真实的用例:构建CDS的管道。该管道包括四个阶段:

在构建最小阶段是推出所有的Git分支。此阶段的主要目标是编译Linux版本的CDS二进制文件。

在构建其他OS /拱阶段只推出在主分支。此阶段编译os / arch支持的所有二进制文件:linux,openbsd,freebsd,darwin,windows – 386,amd和arm。

该包装阶段推出了针对所有的Git分支。此阶段准备docker映像和Debian软件包。

最后,无论Git分支是什么,都将启动Publish阶段。

只要有可能,大多数任务将并行执行。这样会产生非常快速的反馈,因此我们将很快知道编译是否正确。

阶段

通常,在CDS中,构建管道由以下阶段构成:

编译阶段:构建二进制文件

分析和单元测试阶段:运行所有单元测试并分析代码质量

打包阶段:构建最终的软件包,虚拟机映像或Docker映像。

一个阶段 是一组将并行运行的作业。如果上一个阶段成功,则按顺序执行各个阶段。

您可以在舞台上定义触发条件,以在给定条件下启用/禁用它。例如,您可能要在所有分支上运行“编译阶段”和“分析与单元测试”阶段,但要专门在“打包阶段”master和dlop分支上运行。

CDS软件特色

CDS的资源/工作是按需启动的,以保证用户的低等待时间,不会过度消耗闲置的资源。

可扩展的

在CDS中,任何类型的行动(Kubernetes和OpenStack部署,推送到Kafka,测试CVE……)都可以在高级插件中捕获,作为用户的构建模块使用。这些插件的编写和使用都很简单,所以很容易以有效和无压力的方式满足最奇特的需求。

灵活,但简单

CDS可以运行复杂的工作流程,有各种中间步骤,包括构建、测试、部署1/10/100、手动或自动门、回、条件分支……这些工作流程可以作为代码存储在git仓库中。CDS为Core团队最常见的场景提供了基本的工作流程模板,以便于采用过程。这样一来,从无到有建立一个功能的CI/CD链就会变得快速而简单。

自助服务

最后,一个关键的方面是自助服务的想法。一旦用户创建了CDS项目,他们就可以在这个空间里完全自主,可以自由地管理管道,委托访问权限等。所有用户都可以根据自己的需要自由地定制他们的空间,并在开箱即用的基上进行建设。个化工作流程模板、插件、在自定义虚拟机口味或自定义硬件上运行构建和测试……所有这些都可以在没有CDS管理员的任何干预下完成。

CDS教程

从存储库导入CDS工作流

在本教程中,您将从现有的git存储库创建CDS工作流。

该存储库必须添加.cds/目录。

使用Web UI时,将“按代码”创建CDS工作流。

先决条件

在您的CDS实例上拥有一个帐户

在您的CDS实例上设置一个GitHub,Bitbucket Server或GitLab之类的存储库管理器。

准备你的git仓库

初始化存储库中的cds文件的最简单方法是遵循第一个教程

创建管道文件 .cds/build.pip.yml

创建应用程序文件 .cds/cdsdemo.app.yml

创建工作流程文件 .cds/cdsdemo.yml

从UI创建工作流程

在您的CDS项目-高级选项卡上附加存储库管理器

转到“工作流程”标签,单击“创建工作流程”

单击“来自存储库”,选择一个存储库管理器

选择一个git存储库,描述如何克隆它,单击“存储库”

显示找到的文件,单击“创建工作流程”按钮

显示简历页面,单击“查看工作流程”

查看工作流程

构建和部署标准应用程序

在本教程中,您将使用Web UI创建CDS工作流。

使用两个管道创建工作流:一个用于构建,另一个用于部署

发现应用程序和环境概念。

发现运行条件。

本教程似乎很长,请放心,它非常详细,需要10到15分钟的时间才能尝试。

您将使用许多CDS概念,发现管道的重用,以及如何使用CDS变量。

1-创建您的CDS项目

让我们创建一个项目。在顶部导航栏上,单击“创建项目”。

输入项目名称

当您要使用cdsctl时,项目密钥将非常有用。

点击“创建”按钮。

2-在您的项目上添加存储库管理器

现在创建了项目,您必须链接存储库管理器。确保在您的CDS实例上设置了GitHub,Bitbucket Server或GitLab这样的存储库管理器。

选择“高级”部分

在“链接到资源库管理器”部分中,选择“ github”,单击“连接”

显示一个弹出窗口,单击“单击此处”以最终确定与GitHub的链接。这样,您就可以允许CDS在GitHub上创建钩子。

在这里,GitHub与您的CDS项目建立了良好的链接。

3-创建一个应用程序,将其链接到一个Git仓库

您有一个项目,已链接到GitHub。让我们创建一个应用程序。

CDS应用程序对于链接到Git存储库很有用。

转到“项目”->“应用程序”选项卡,单击“创建新应用程序”

输入应用程序名称,此处为“ my-java-app”

转到高级选项卡,选择一个存储库

展开配置,选择“ https”。如果您的存储库是公开的,则可以保留空白字段,单击“保存”

4-在您的应用程序上添加变量

您已经有了一个应用程序,让我们创建一个应用程序变量。我们将在Job中进一步使用它。

选择变量选项卡,名称为“ my-vaable”,键入“ stng”,值为“ my-value”

点击“保存”

5-创建工作流程

我们开始吧,您将创建您的第一个工作流程。

转到项目->工作流程选项卡

输入工作流程名称,单击下一步

现在,您必须选择第一个管道。由于您还没有管道,因此您将创建一个新管道,名为“ build-pipeline”。点击下一步

现在,您必须选择一个应用程序。选择您的应用程序“ my-java-app”,单击“下一步”。

我们不需要构建管道的环境,请点击“完成”

6-编辑用于构建应用程序的第一个管道

使用名为“ build-pipeline”的空管道初始化工作流。您现在必须创建自己的第一份工作。

在您的工作流程中,选择管道“ build-pipeline”,单击“编辑管道”。

点击“添加工作”

添加第一步“ CheckoutApplication”

添加第二步“脚本”。脚本的内容是`mvn package`

第三步是“工件上传”,以上传构建的二进制文件

最后一步是“ JUnit”。此步骤“始终执行”,使您可以在UI上查看测试结果。

关于“ build-pipeline”的最后一件事:当您使用mvn时,您可能想要添加mvn和java。单击需求链接,添加二进制文件的前提条件。

7-在工作流程中添加一个钩

在此示例中,我们创建了一个工作流来构建和部署应用程序。这是标准的持续集成和持续交付工作流程。

因此,我们必须在每个git分支的每次提交时触发此工作流。如果构建正常,这对于从所有开发人员编译代码和部署master分支将很有用。

该应用程序链接到GitHub Git存储库,我们有两种选择来自动触发工作流程:

添加一个Git仓库Webhook

或添加一个Git仓库询器。

两者之间的区别很简单:如果无法从GitHub访问您的CDS实例,则Git存储库Webhook不起作用。因此,我们必须添加一个Git存储库询器

选择管道根,单击“添加钩子”

选择一个Git仓库询器

询器已添加并链接到您的第一个管道

8-运行您的工作流程

现在该启动您的工作流程了,单击绿色按钮“运行工作流程”。

在弹出窗口中,您可以选择git分支,单击绿色按钮“确定”

正在构建的第一个管道(您可以双击它,这是一个快捷方式),可以看到志。

管道完成了,这是成功的。

单击“测试”选项卡,可以看到单元测试。

单击“工件”,您将看到已构建的工件。

9-添加用于在登台中部署应用程序的管道

好的,我们有一个要部署的工件。让我们创建一个部署管道,并在构建管道之后触发它。

选择“构建管道”

创建一个“部署管道”,单击“下一步”

选择应用程序“ my-java-app”,单击“下一步”

创建一个名为“ staging”的新环境,单击“ Finish”

工作流现在包含两个管道

10-添加用于在生产中部署应用程序的管道

与之前相同,我们将添加一个管道以在生产环境中进行部署。

选择“部署管道”

选择“部署管道”,单击“下一步”

选择应用程序“ my-java-app”,单击“下一步”

创建一个名为“生产”的新环境,单击“完成”

工作流现在包含两个管道

11-在部署之前添加运行条件

因此,现在,您有了工作流来构建应用程序并将其部署在登台环境中。但是,我们不想部署所有分支中的所有内部版本,我们只希望部署master分支。让我们在上创建一个“运行条件” git.branch,以在git branch等于时自动触发登台部署master。

选择“部署管道”,单击“编辑运行条件”

添加一个运行条件“ git.branch”,其值为“ master”,单击“加号”按钮

点击“保存”

12-在生产环境中部署之前添加运行条件

与登台上的“部署管道”相同,我们将在部署在“生产”中的管道上添加条件。

选择“ deploy-pipeline_2”,单击“编辑运行条件”

添加一个运行条件“ cds.manual”,其值为“ true”,单击“加号”按钮

13-编辑工作流程中管道的名称

在您的项目中,您有两个管道:“ build-pipeline”和“ deploy-pipeline”。“部署管道”使用了两次:一次用于“登台”部署,另一次用于“生产”。

让我们重命名工作流程上的管道。

选择“部署管道”,在左上方,单击“编辑”按钮。重命名为“自动部署管道”

对第二个“部署管道”执行相同的作,将其重命名为“ manual-deploy-pipeline”

14-编辑“部署管道”

“部署管道”目前为空。让我们添加一些东西来模拟部署。我们将从应用程序中使用CDS变量。

选择“自动部署管道”,单击侧栏上的“编辑管道”

添加步骤“工件下载”和步骤“脚本”。

该脚本包含 echo “deploying {{.cds.application}} with vaable {{.cds.app.my-vaable}} on envinment {{.cds.envinment}}”

15-运行您的工作流程

让我们运行工作流程。

管道“自动部署管道”将自动启动。

该管道上的脚本步骤包含 deploying my-java-app with vaable my-value on envinment staging没有按预期启动生产中的管道部署。

16-在生产中运行部署

使用,在“手动部署管道”上添加运行条件时cds.manual = true,必须单击“运行”以在生产环境中启动部署。

选择“手动部署管道”,单击左上方的“播放”按钮

脚本步骤显示 deploying my-java-app with vaable my-value on envinment pduction

上一篇 2022-11-28

相关推荐

  • CDS

    CDS是一款自动化软件,您可以在软件上建立多种自动化作业方式,有效提升企业工作效率,优化复杂的工作流程,您可以在软件上配置多种管道,将项目计划节点和流程设置为管道,可以建立各种...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)