bash - 为什么 Jenkins 胜过简单的 bash 脚本?

标签 bash git jenkins devops

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

2年前关闭。




Improve this question




如果你能让我理解这个简单的话题,我会非常高兴。

我知道 Jenkins 是什么以及它的作用。现在让我们进行比较。

我们使用 jenkins,因此一旦代码被推送到存储库,通过 git Hook ,我们运行 jenkins 作业,该作业会 pull 该代码,进行构建,运行测试,然后如果需要,将其上传到代码实际运行的远程机器。

现在,我可以做的是,当 git hook 发生时,我将运行 bash 脚本,而该 bash 脚本将执行这些操作(例如从存储库中提取代码、运行构建、进行测试,然后通过 ssh 将其上传到远程机器)。

所以,我可以通过 bash 脚本做同样的事情。

问题是 : 我看不出有多大优势。

那么,您能否尽力并用非常简单的术语解释为什么这有很大的优势?我知道 Jenkins 有很多插件,但这不是进行比较的最佳方式。

最佳答案

这解释了为什么我们应该避免使用脚本并寻找工具。此外,Jenkins 和类似工具提供了处理此类部署问题的标准方法。

当一个新的软件项目开始开发时,编写持续集成 (CI) 过程的许多步骤的脚本通常是一种流行的选择。随着项目发展到需要更复杂的基础设施、单元和端到端测试以及强大、可重复的部署过程,简单的脚本不再是最佳解决方案。

为了大大降低生产力,更好的选择是用 Jenkins 构建服务器和管道配置替换这些脚本。

何时需要替换脚本

有一些明显的迹象表明,可能是时候用更健壮的方式替换脚本化部署方法了。

当它无法扩展时:对于添加到应用程序的每个新部分,都必须更新脚本。无论您使用的是 bash、python 还是其他东西,这都会很快失控。为将新文件放置在不同位置、更新权限和重新启动过程而添加的每一行代码都会增加复杂性并增加出错的风险。

当它变得不可维护时:从添加条件逻辑到根据系统状态更改部署等不断增加的复杂性,不可避免地导致一组只有少数开发人员可以解释的脚本。像这样一个有机地增长以快速满足部署应用程序的即时需求的过程会产生一个大问题。

当它变得昂贵时:在这种情况下,费用以开发人员的时间和生产力的形式出现。准备和执行发布所涉及的手动流程所需的开销将开始对新功能开发产生重大负面影响。

来源:https://www.bandwidth.com/blog/replacing-scripted-software-deployments-jenkins-pipeline/

关于bash - 为什么 Jenkins 胜过简单的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56056665/

相关文章:

bash - 在 K8s Lifecycle hook 中转义单引号和双引号

linux - 在 bash 中列出大于 100K 的文件

bash - 将目录中的最后一个数字加 1?

android - 使用 git 进行可复制的 Android 构建,并进行快进 merge

python - 如何通过pygit2获取当前 checkout 的Git分支名称?

xcode - 选择要在 Jenkins 中构建的分支

git - 当提交到子模块的更改时如何在 jenkins 中触发构建?

Bash:杀死具有指定名称的所有 screen

git - 在我已经提交更改后,如何将提交一分为二

bash - 如何使凭据可用于 jenkins 中的 shell 脚本