3种流行的用于组织连续部署的工具(Continuous Deployment)

图片

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

主要思想是创建一个可靠的自动化流程,该流程允许开发人员快速向用户提供成品。 同时,生产中不断进行更改-这称为连续交付管道(CD管道)。

Skillbox建议:实用课程“ Mobile Developer PRO”

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



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

詹金斯


完全独立的开源自动化服务器。 值得与他合作以使与软件的组装,测试,交付或部署有关的所有类型的任务自动化。

最低PC要求:
  • 256 MB RAM,1 GB文件空间。

最佳:
  • 1 GB的RAM,50 GB的硬盘空间。

为了工作,您还需要其他软件-Java Runtime Environment(JRE)版本8。

体系结构(分布式计算)如下:


Jenkins服务器-一个负责GUI托管以及整个程序集的组织和执行的安装。

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

Linux安装

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

cd / tmp && wget -q -O-pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt键添加-echo'deb pkg.jenkins.io/debian-stable binary /'| sudo tee -a /etc/apt/sources.list.d/je

更新软件包存储库:

sudo apt更新

安装Jenkins:

sudo apt安装詹金斯

之后,默认情况下端口8080将在系统上提供Jenkins。

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

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





詹金斯的优势:
  • 主/从架构提供的可扩展性;
  • REST XML / JSON API的存在;
  • 借助插件可以连接大量扩展;
  • 一个活跃且不断发展的社区。

缺点:
  • 分析单元缺失;
  • 界面不太方便。

团队城市


JetBrains的商业开发。 该服务器非常适合简单的设置和出色的界面。 默认配置中有大量功能;可用插件的数量在不断增加。

此内容需要Java Runtime Environment(JRE)版本8。

服务器对硬件的要求不是关键的:
  • 内存-3.2 GB;
  • 处理器-双核,3.2 GHz;
  • 带宽为1 Gb / s的通信通道。

该服务器使您可以在工作中实现高性能:
  • 具有300个装配配置的60个项目;
  • 向汇编日志分配2 MB;
  • 50名建筑代理商;
  • 能够在Web版本中使用50个用户,在IDE中使用30个用户;
  • 100个外部SLE连接,通常是Perforce和Subversion。 平均更改时间为120秒;
  • 每天超过150次修改;
  • 在一台服务器上使用数据库;
  • JVM服务器进程设置:-Xmx1100m -XX:MaxPermSize = 120m。

代理要求由运行程序集确定。 服务器的主要任务是跟踪所有连接的代理,并根据兼容性要求从这些代理之间的队列中分发程序集,并报告结果。 代理具有各种平台和操作系统,以及预配置的环境。

有关装配结果的所有信息都存储在数据库中。 首先,这是历史记录和其他类似数据,VCS更改,代理,构建队列,帐户和用户权限。 该数据库不只包含程序集日志和工件。



Linux安装

要使用Tomcat Servlet容器手动安装TeamCity,请使用TeamCity归档文件:TeamCity .tar.gz。 您可以从这里下载。

tar -xfz TeamCity.tar.gz

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

首先,您需要选择将要在其中存储装配数据的数据库类型。



默认配置在localhost :8111 /上运行,并且一个注册的构建代理在同一台PC上运行。

TeamCity的优势:
  • 设置简单;
  • 方便的界面;
  • 大量的内置功能;
  • 支持服务;
  • 有一个RESTful API;
  • 好的文件;
  • 安全性好。

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

高德


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

系统要求:
  • 内存-最小1 GB,更好;
  • 处理器-双核,核心频率为2 GHz;
  • 硬盘-至少1 GB的可用空间。

代理商:
  • RAM-至少128 MB,最好是更多;
  • 处理器-至少2 GHz。

服务器提供代理并为用户提供方便的界面:



阶段/工作/任务:



Linux安装

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

curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt键添加-
Add-apt-Repository PPA:openjdk-r / ppa

apt-get更新

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

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

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

默认情况下,GoCd在localhost上运行:8153。

GoCd优势:
  • 开源
  • 简单的安装和设置;
  • 好的文件;

  • 出色的用户界面:



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



  • 输送机结构的出色展示:



  • GoCD在包括Docker,AWS等最流行的云环境中优化了CD工作流程。
  • 该工具使纠正管道中的故障成为可能,为此,可以实时跟踪从提交到部署的每个更改。

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

结论


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

该工具的开源代码使您可以了解它的含义,并且添加新功能的速度更快。 但是,如果某些事情不起作用,那么您就只能依靠自己和社区的帮助。 付费工具提供的支持有时可能很关键。

如果安全是最重要的,则应使用本地工具。 如果不是,那么选择SaaS解决方案是一个不错的选择。

最后:为了确保真正有效的连续部署过程,有必要制定标准,其标准的特异性将有可能缩小可用工具的选择范围。

Skillbox建议:

Source: https://habr.com/ru/post/zh-CN455130/


All Articles