组织持续部署的 3 个流行工具(Continously Deployment)

组织持续部署的 3 个流行工具(Continously Deployment)

持续部署是软件开发中的一种特殊方法,用于快速、安全、高效地实现软件中的各种功能。

主要思想是创建一个可靠的自动化流程,使开发人员能够快速将成品交付给用户。 与此同时,生产也不断发生变化——这就是所谓的持续交付管道(CD Pipeline)。

技能箱推荐: 实践课程 “移动开发者专业版”.

我们提醒: 对于“Habr”的所有读者 - 使用“Habr”促销代码注册任何 Skillbox 课程可享受 10 卢布的折扣。

组织持续部署的 3 个流行工具(Continously Deployment)

为了控制流量,您可以使用多种工具,包括付费工具和完全免费的工具。 本文介绍了开发人员中最流行的三种解决方案,对每个程序员都有用。

詹金斯

完全独立的开源自动化服务器。 它值得用来自动化与构建、测试、运输或部署软件相关的各种任务。

最低电脑要求:

  • 256 MB RAM,1 GB 文件空间。

最佳:

  • 1 GB 内存,50 GB 硬盘。

要工作,您还需要其他软件 - Java 运行时环境 (JRE) 版本 8。

架构(分布式计算)如下所示:
组织持续部署的 3 个流行工具(Continously Deployment)

Jenkins Server 是一个负责 GUI 托管以及组织和执行整个构建的安装。

Jenkins 节点/从属/构建服务器 - 可以配置为代表主节点(主节点)执行构建工作的设备。

Linux 安装

首先需要将 Jenkins 存储库添加到系统中:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable 二进制/' | sudo tee -a /etc/apt/sources.list.d/je

更新包存储库:

sudo apt update

安装詹金斯:

sudo apt安装詹金斯

此后,Jenkins 将通过默认端口 8080 在系统中可用。

要检查功能,您需要在浏览器中打开该地址 本地:8080。 然后系统会提示您输入root用户的初始密码。 此密码位于文件 /var/lib/jenkins/secrets/initialAdminPassword 中。

现在一切准备就绪,您可以开始创建 CI/CD 流程。 工作台的图形界面如下所示:

组织持续部署的 3 个流行工具(Continously Deployment)

组织持续部署的 3 个流行工具(Continously Deployment)

詹金斯的优势:

  • 主/从架构提供的可扩展性;
  • REST XML/JSON API 的可用性;
  • 通过插件能够连接大量扩展;
  • 活跃且不断发展的社区。

缺点:

  • 没有分析块;
  • 用户界面不是很友好。

团队城市

JetBrains 的商业开发。 该服务器很好,设置简单,界面出色。 默认配置具有大量功能,并且可用插件的数量在不断增加。

需要 Java 运行时环境 (JRE) 版本 8。

服务器硬件要求并不重要:

  • 内存 - 3,2 GB;
  • 处理器 - 双核,3,2 GHz;
  • 容量为 1 Gb/s 的通信通道。

服务器可以让您实现高性能:

  • 60 个项目,300 种构建配置;
  • 2 MB 分配给构建日志;
  • 50 个构建代理;
  • 能够在 Web 版本中与 50 个用户一起工作,在 IDE 中与 30 个用户一起工作;
  • 100 个外部 VCS 连接,通常是 Perforce 和 Subversion。 平均变化时间为120秒;
  • 每天超过150次修改;
  • 在一台服务器上使用数据库;
  • JVM服务器进程设置:-Xmx1100m -XX:MaxPermSize=120m。

代理要求基于正在运行的程序集。 服务器的主要任务是监视所有连接的代理,并根据兼容性要求将排队的程序集分发给这些代理,并报告结果。 代理有多种平台和操作系统,以及预配置的环境。

有关构建结果的所有信息都存储在数据库中。 主要是历史记录和其他类似数据、VCS 更改、代理、构建队列、用户帐户和权限。 该数据库不仅仅包括构建日志和工件。

组织持续部署的 3 个流行工具(Continously Deployment)

Linux 安装

要使用 Tomcat servlet 容器手动安装 TeamCity,您应该使用 TeamCity 存档:TeamCity .tar.gz。 下载 你可以从这里得到它.

tar -xfz TeamCity.tar.gz

/bin/runAll。 sh [开始|停止]

首次启动时,您需要选择存储装配数据的数据库类型。

组织持续部署的 3 个流行工具(Continously Deployment)

默认配置运行于 本地:8111/ 在同一台 PC 上运行一个已注册的构建代理。

TeamCity 的优势:

  • 易于设置;
  • 用户友好的界面;
  • 大量内置功能;
  • 支持服务;
  • 有一个 RESTful API;
  • 良好的文档;
  • 安全性好。

缺点:

  • 有限的整合;
  • 这是一个付费工具;
  • 一个小社区(但是,它正在增长)。

光碟

一个开源项目,需要 Java 运行时环境 (JRE) 版本 8 才能安装和运行。

系统要求:

  • RAM - 最低 1 GB,越大越好;
  • 处理器——双核,核心频率2GHz;
  • 硬盘 - 至少 1 GB 可用空间。

代理:

  • RAM - 至少 128 MB,越大越好;
  • 处理器 - 至少 2 GHz。

服务器保证代理的运行,并为用户提供方便的接口:

组织持续部署的 3 个流行工具(Continously Deployment)

阶段/工作/任务:

组织持续部署的 3 个流行工具(Continously Deployment)

Linux 安装

回声“ deb 下载.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

卷曲 download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key 添加 -
添加 apt-存储库 ppa:openjdk-r/ppa

APT-get的更新

apt-get install -y openjdk-8-jre

apt-get 安装 go-server

apt-get 安装 go-agent

/etc/init.d/go-server [启动|停止|状态|重新启动]

/etc/init.d/go-agent [启动|停止|状态|重新启动]

默认情况下,GoCd 运行于 本地:8153。

GoCd的优势:

  • 开源;
  • 安装配置简单;
  • 良好的文档;

  • 出色的用户界面:

组织持续部署的 3 个流行工具(Continously Deployment)

  • 能够在一个视图中显示逐步的 GoCD 部署路径:

组织持续部署的 3 个流行工具(Continously Deployment)

  • 优秀的管道结构展示:

组织持续部署的 3 个流行工具(Continously Deployment)

  • GoCD 优化了最流行的云环境(包括 Docker、AWS)中的 CD 工作流程;
  • 该工具可以纠正管道中的问题,实时跟踪从提交到部署的每个更改。

缺点:

  • 至少需要一名代理人;
  • 没有控制台显示所有已完成的任务;
  • 执行每条命令,需要为管道配置创建一个任务;
  • 要安装插件,您需要将 .jar 文件移动到/plugins/external 并重新启动服务器;
  • 相对较小的社区。

作为结论

这只是三个工具,实际上还有更多。 选择起来很困难,因此您肯定需要注意其他方面。

该工具的开源代码使人们可以了解它是什么,并且可以更快地添加新功能。 但如果有些事情不起作用,那么你就只能依靠自己和社区的帮助。 付费工具提供的支持有时可能是至关重要的。

如果安全性是您的首要任务,那么值得使用本地工具。 如果没有,那么选择 SaaS 解决方案是一个不错的选择。

最后,为了确保真正有效的持续部署过程,您需要创建标准,其具体细节将允许您缩小可用工具的范围。

技能箱推荐:

来源: habr.com

添加评论