当前位置: 首页 > 科技观察

GithubActions还是Jenkins?我该如何选择?

时间:2023-03-18 00:43:38 科技观察

在过去的几年里,DevOps已经成为软件生命周期的重要组成部分,它推动了许多领先的DevOps工具和实践的发展。您可以找到一系列工具来支持CI/CD过程,其中Jenkins和GitHubActions最为突出。在本文中,我将比较GitHubActions和Jenkins,并为您提供见解以做出正确的选择。Jenkins和GitHubAction简介Jenkins是一个免费的开源自动化服务器。它有助于自动化与构建、测试和部署相关的软件开发部分,促进持续集成和持续交付。同样,GitHubActions是GitHub作为SaaS产品提供的两种产品中的最新产品。GitHubActions现在可以更轻松地在任何平台(包括Linux、MacOS和Windows)上自动构建、测试和部署项目。在容器或虚拟机中运行您的工作流程。在决定它是否值得改变之前,让我们了解谁应该考虑这一点。你应该考虑离开詹金斯吗?如果使用Jenkins一切顺利,您对自己的设置有信心,可以完全控制并且成本不是问题,我建议坚持使用Jenkins。对于那些使用GitHub作为他们的源代码控制平台并且已经对他们的Jenkins设置感到不安全并且正在寻找更好的替代方案的人来说,GitHubActions将是考虑的首选。由于GitHubActions是GitHub的一项完全托管服务,因此您无需了解如何扩展和操作基础架构即可运行它。这是我选择离开Jenkins的主要原因,在Jenkins中我无法完全控制我的CI/CD管道发生的事情。我不得不面对的一些挑战:使插件保持最新。即使我没有运行任何构建,我的单个Jenkins服务器构建也要花钱。并发构建中的不一致等。我不得不依赖几个插件,这些插件会有我不得不不时处理的更新。我知道有一些Jenkins解决方案可以解决其中一些问题,但我已经受够了并转移到托管平台。我希望我已经树立了正确的心态,如果GitHubActions适用于您,那么请转到GitHubActions。让我们通过查看GitHubActions提供的内容来考虑这一举措。易于设置——全部由GitHub管理在我看来,GitHubActions相对于Jenkins的第一大优势是易于在GitHubActions上进行设置。GitHubActions在云端运行,也可以选择在本地运行,称为运行器。相比之下,Jenkins不提供官方的管理服务。而且我可能不会选择任何第3方Jenkin托管产品。我觉得将源代码和敏感信息的访问权交给第三方供应商太冒险了。为此,需要安装Jenkins服务器,而GitHubActions则不需要。因此,在GitHubActions中,设置过程要方便得多。此外,GitHubActions是一系列docker运行。只需要dockerbuild和dockerrun,运行调试非常简单。与GitHub紧密集成——无缝体验最初,Jenkins似乎比GitHubActions更灵活。Jenkins主要基于帐户和触发器并以构建为中心。这些不符合GitHub活动的条件。相比之下,GitHub的动作涵盖范围很广。因此,每个GitHub事件都有一个GitHub操作。GitHubActions支持多种语言和框架,它们也是用YAML编写的。因此,它们可以像代码一样被编辑、重用、共享和分叉。与GitHub一起使用很简单,因为当您分叉存储库时,操作会自动分叉。这使您可以非常有效地测试和构建项目,甚至可以更接近开发人员来运行项目。此外,您可以随时访问GitHubAPI,使其在开发人员中更受欢迎。使用Bit(Github)时可以看到这种紧密集成的一个流行用例。Bit是一个工具和平台,可以轻松地将JS组件(Node、React、Vue、Angular等)从任何存储库共享到Bit的云服务,然后再从那里共享到其他存储库。Bit的云服务可以自动向受共享组件更改影响的所有Github存储库生成拉取请求。这些自动生成的PR可以用作GithubActions的触发器。这意味着对单个(共享)组件的更改可以传播到所有使用它的存储库,触发CI,验证所有项目都没有被破坏。GitHubActions的另一个很棒的“特性”是它们可以通过GitHubMarketplace相互共享。您可以重用其他开发人员编写的Action,这可以为您节省大量时间并避免重写现有代码。协调器和构建节点-扩展构建GitHubActions默认遵循主从(协调器和构建节点)模式,而不是Jenkins为我们提供的顺序管道。但是,请务必注意,在Jenkins中可以进行类似的设置,但需要额外的努力和知识才能使其运行。JenkinsGithubActionsserver需要安装不需要安装,因为在云端Tasksorjobs会同步,会消耗更多时间将产品部署到市场基于accounts和trigger实现异步CI/CD不符合构建Githubevents以提供每个Github事件为中心,支持多种语言和框架。需要运行在Docker镜像上,保证环境的兼容性。它适用于任何环境。有支持缓存机制的插件。如果你需要缓存,你必须自己做。写缓存机制不具备共享能力。它可以通过GithubMarketpalce共享。如果您使用Jenkins,默认设置将同步运行部署管道中的每个步骤。例如,如果您需要运行单元测试、集成测试和一些Sonar验证,它们必须在服务器环境中运行。根据服务器中可用的资源,这可能会延迟。此外,您不需要付出额外的努力来使管道可靠。通过使用GitHubActions,可以将这些作业并行化,如上图所示,例如作业1可以做单元测试和集成测试,作业2可以做Sonar验证。总结我们仔细研究了GitHubActions在优势方面优于Jenkins的几个领域。此外,GitHubActions的增长速度比Jenkins快,有数千个GitHubActions被发布到GitHub市场。围绕它的社区也在不断完善,并且有专门的GitHubActions存储库。这是什么意思?但是,对于您的项目使用GitHubActions还是Jenkins取决于您。目前,GitHubActions对公共存储库是免费的。对于私有存储库,它具有按需付费的机制。我希望您已经意识到GitHubActions是优于Jenkins的选择,主要是因为它的灵活性。对于那些开始新项目或使用GitHub作为源代码控制平台的人来说,迁移到GitHubActions是一个不错的选择。原文:https://blog.bitsrc.io/github-actions-or-jenkins-making-the-right-choice-for-you-9ac774684c8译文:张张”,可通过以下二维码关注。转载本文请联系前端全栈开发公众号。