2021 10 26足够的管道

必威国际有限公司Jenkins管道(或简单地带有首都P)是一套支持,支持实施和将连续送货管道的连续交付管道集成到Jenkins中。这允许您自动化从版本控制到用户和客户的软件的过程。

管道代码适用于自动构建,测试,部署和管理任务的预期作用。但是,由于它被压入更复杂的角色和意外用途,因此有些用户遇到了障碍。使用最佳实践 - 避免常见错误 - 可以帮助您设计一个更强大,可扩展性和高性能的管道。

我们看到很多用户犯了一些基本的错误,从而破坏了他们的管道。(是的,当你在建立管道时,你可能会破坏自己。)事实上,我们很容易发现一些人正在沿着这条危险的道路走下去——通常是因为他们不了解有关Pipeline的一些关键技术概念。这必然会导致可伸缩性错误,您将为此付出沉重的代价。

不要犯这个错误!

也许人们犯的最大的错误是决定他们需要用编程语言来编写他们的整个管道。毕竟,Pipeline是一种特定于领域的语言(DSL)。然而,这并不意味着它是一种通用编程语言。

如果您将DSL视为通用编程语言,则通过在错误的地方进行错误的工作,您正在制作一个严肃的建筑错误。请记住,管道代码的核心在控制器上运行。因此,您应该注意到您以管道域特定语言(DSL)表达的所有内容将与在控制器上运行的其他Jenkins作业竞争。必威国际有限公司

例如,很容易在管道作业中使用脚本语法包含大量条件、流控制逻辑和请求。经验告诉我们,这不是一个好主意,可能会导致严重损害管道性能。实际上,我们已经看到一些编写得很差的Pipeline作业让控制器崩溃,而只运行了几个并发构建。

等一下,你可能会问,“没有处理代码控制器在那里有什么?”是的,控制器肯定是在那里执行管道。但是,要为在代理上执行的命令行调用来分配管道的单个步骤更好。因此,而不是在管道DSL内运行大量条件,最好将这些条件放在shell脚本或批处理文件中,并从管道调用该脚本。

但是,这提出了另一个问题:“如果我没有连接到我的控制器的代理商怎么办?”如果是这种情况,那么你就在缩放Jenkins管道时刚刚犯了另一个糟糕的错误。必威国际有限公司为什么?因为建立有效管道的第一个规则是确保您使用代理商。如果您使用Jenkins Contr必威国际有限公司oller并没有定义任何代理,则您的第一步应该是定义至少一个代理并使用该代理而不是在控制器上执行。

为了维持管道中的可扩展性,通常规则是避免在控制器上处理任何工作负载。如果您在控制器上运行Jenkins作必威国际有限公司业,则牺牲控制器性能。因此,尽量避免使用Jenkins控制器容量,以必威国际有限公司便应将其传递给代理商。然后,随着您的发展和发展,您的所有工作都应该运行代理商。这就是为什么我们始终建议将主设备上的执行器数量设置为零。

使用足够的管道来保持管道可扩展

所有这些都突出了我们“使用足够的管道”的主题。简单地说,您希望使用足够的代码来连接管道步骤和集成工具—但仅此而已。限制在Pipeline本身(类似于shell脚本)中嵌入的复杂逻辑的数量,并避免将其视为通用编程语言。这使得管道更容易维护,防止出现bug,并减少了控制器的负载。

保持管道精简、快速和可伸缩的另一个最佳实践是对管道使用声明式语法而不是脚本化语法。陈述性自然会让你远离我们刚才描述的错误。它是一种更简单的代码表达方式,也是一种定义工作的更简单方法。它是在管道启动时计算的,而不是在管道运行期间连续执行。

因此,在创建管道时,从声明式开始,并尽可能保持简单。每当一个脚本块出现在声明式管道中,您都应该提取该块并将其放入共享库步骤中。这使声明性管道保持干净。通过将声明式与共享库结合,它将处理您将遇到的绝大多数用例。

也就是说,说声明加上一个共享库将解决每个问题并不准确。有脚本是正确的解决方案的情况。但是,声明性是一个很棒的起点,直到你发现你绝对必须使用脚本。

请记住,在一天结束时,您将遵循谚语:“仅使用足够的管道,而且不再使用。”

感谢我们的赞助商

标记和达林都在工作CloudBees.CloudBees帮助财富1000强企业管理和扩展Jenkins。必威国际有限公司感谢CloudBees对这篇博文的赞助。

Mark和Darin Joined Lynch和Joost Van der Griendt在CloudBees按需录制中分享其他主题,“为企业优化Jenkin必威国际有限公司s”.注册按需录制,以收到有关代码,插件管理和管道配置的更多信息。

关于作者
马克韦特

马克是必威国际有限公司詹金斯文件官员,长期的Jenkins用户和必威国际有限公司贡献者,并维护git插件git客户端插件.他活跃了必威国际有限公司Jenkins特殊兴趣团体包括Docs Sig平台SIG., 和倡导团体

达林教皇

达林是开发商倡导者CloudBees.他是《周报》的联合主持人Devops Paradox.播客。他还在持续整合和连续交付时举办定期的Livestream会话。必威体育app下载他的直播会议的录音可供选择CloudBees电视YouTube频道

讨论