5个用于持续集成和交付的本地选择

5个用于持续集成和交付的本地选择

当团队一起开发软件时,对持续集成(CI)以及持续交付(CD)的需求很少会出现争议。 中央持续集成服务器通过在测试和重新测试之前不断构建和重建软件,充当裁判和质量控制管理器。一旦CI服务器发现问题,就可以马上修复它们。真正的争议在于是自主持续集成过程还是将工作卸载到已经蓬勃发展的众多基于云的CI / CD服务上。 让其他人完成工作总是很有吸引力,而且服务通常可以更快,因为他们共享一组功能强大的机器,可以并行地运行CI流程中的不同任务。但是这种方式缺点也很大,如果你的团队特别担心对代码和数据的访问,那么将内容保存在锁定的服务器机房的计算机中或许会更好一些。如果你的代码库很大或者你生成了大量的二进制文件容器,那么在开放的Internet上移动这些位可能会很慢。 许多云爱好者倾向于忽略延迟问题和运送大数据块的成本。 如果你只是将它们推到大厅的服务器机房,你可以构建一个快速的网络,以确保它们能够快速到达。它可以极大地改善交付时间。最大的优势之一可能是添加自定义构建。云服务可以很好地处理标准代码块,其配置方式与其他方式一样,并且它们尝试提供所有插件和可选项,但没有什么能够控制对计算机的root访问权限。 毫无疑问,许多云选项的预配置管道可以节省时间, 能够做任何你想做的事情使得本地部署成为一个非常有吸引力选择。

以下有5种持续集成的服务可供您选择:

Jenkins

第一个是Jenkins,这是最初的持续集成工具, 它始于Sun Microsystems的Java开发人员。 Sun工程师非常聪明,不会将架构限制为Java代码,而今天有成千上万的插件可以处理所有主要堆栈和大多数次要堆栈的许多原始业务。选择一些随机的东西并不常见,例如Lisp,并发现有人为它编写了一个插件。Jenkins是用Java编写的,这意味着下载JAR文件并在Windows,Mac或Linux机器上运行它通常很容易。Jenkins项目持续引起关注和重建。 Blue Ocean子项目旨在通过浏览器轻松配置和优化Jenkins管道。 减少配置文件的文本编辑和更多点击。Jenkins团队一直致力于通过降低配置和更新工具所需的工作量,更轻松地在任何地方运行CI服务器。 Evergreen版本将从Docker容器中配置,构建和更新自身。

JetBrainsTeamCity

和IntelliJ IDE 同一家公司还提供了TeamCity,它是持续集成服务器和许多附加功能的组合,如代码质量指标等,JetBrains通过将TeamCity与所有主要版本控制系统集成并创建大量插件来支持不同语言,从而最大限度地提高了兼容性。 TeamCity的核心是Java,但它很容易与其他语言一起使用。该代码构建为可在各种本地计算机上运行。当然,还有一个Docker容器和一个在servlet容器中运行的Java JAR文件,但是还有一个Windows .exe文件。 其中一个更有趣的选项是“预测试提交”,它不会在您的桌面上发生,但在官方认为已提交代码之前仍会运行所有CI步骤。 一个更好的名字可能是“两阶段提交”。专业版据称“永远免费”,具有所有功能,对用户或构建时间没有限制。 购买企业版的人可以获得并行运行的额外构建代理,这些代理可以在AWS等公共云中展开。 它是一种混合解决方案,可让您在本地托管主服务器,但是需要额外的花销来启动云计算机。

GitLabCI/CD

许多团队在GitLab服务器上的云中使用GitLab,但是堆栈是开源的,可以安装在你选择的服务器机房中。社区版可以直接从GitLab检出并构建,但是为你的机器获取软件包安装程序并让它完成工作可能更容易。还有一个带有更多功能的付费企业版。GitLab的CI工作在很大程度上依赖于Docker进行配置和测试,这比基本工具更快更简单。大部分工作由一个名为GitLab Runner的程序处理,该程序是一个用于执行管道中各阶段的自动缩放工具,可以安装在多个服务器中。还有一个很好的功能叫做AutoDevOps,它可以查看你的代码,注意标准make文件的存在,然后配置管道来构建,测试和部署你的软件。整个GitLab堆栈不仅仅是持续集成。它还提供版本控制和协作工具,用于规划,问题跟踪和代码审查,这些都是创建运行代码的重要部分。

AzureDevOps Server

Microsoft一直在努力向任何想要或需要在自己的服务器上托管它的人开放Azure堆栈,devops也不例外。 最简单的解决方案是添加更多构建代理以加速工作。 基本的AzureDevOps帐户附带一个免费的构建代理。 你可以通过支付Microsoft(最简单的解决方案)或在你自己的计算机上安装构建代理来添加更多代理,其中包含适用于MacOS,Linux,当然还有Windows的软件包。你还可以使用Visual Studio等其他Microsoft产品获得额外的构建代理。如果你需要更多控制或隔离,则可以在你的计算机上安装完整Azure DevOps Server的第一个候选版本。 它与本地版本的AzureSQL一起使用,以提供完整的包。

OracleContainer Pipelines

前创业公司Wercker现在是Oracle的一部分,它通过简单但非常有用的Oracle Container Pipelines名称来调用获得的CI / CD产品。这是有道理的,因为该工具专注于使用一系列完成任务的管道构建,测试和部署Docker容器。 如果您可以将其拼写为Bash脚本,那么它可以作为一项任务。Linux系列和Mac都有可安装的版本,因此可以在桌面或服务器场中运行相同的YAML管道代码。如果你需要使用云,那么你需要自己构建它。

原文链接:https://www.infoworld.com/article/3345968/cicd-your-way-11-on-prem-options-for-continuous-integration-and-delivery.html