我想使用Jenkins自动执行属于同一服务器上运行在tomcat上的Web应用程序的任务。
由于应用程序非常关键,在同一个虚拟机上安装Jenkins是否明智? 在同一个虚拟机上运行2个JVM,在内存,CPU,稳定性等方面可能会出现问题吗?
我应该特别注意某些事情,还是最好在另一台虚拟服务器上安装Jenkins?
答案 0 :(得分:1)
不,这不明智。如果您已经处于虚拟化环境中,请为Jenkins创建一个新VM(但至少将其分开,例如,在两个不同的docker容器中运行prod和jenkins)。除了表演之外,为什么不明智?如果您运气不好,您的测试甚至可能会导致VM崩溃。或者他们可以吃掉你的资源(文件锁,网络端口等)。或者,如果您没有正确设置,Jenkins可以覆盖您的高效代码(例如,部署到您的产品所在的同一文件夹中)。由于应用程序非常关键,在同一个虚拟机上安装Jenkins是否明智?
在同一个虚拟机上运行2个JVM,在内存,CPU,稳定性等方面可能会出现问题吗?
当然这将是一个性能问题,但不是因为2个JVM,而是因为测试本身(如果你有一个更大的项目有很多测试,那么最有可能消耗性能)。
我应该特别注意某些事情,还是最好在另一台虚拟服务器上安装Jenkins?
只需在另一个VM中运行它;更好的是另一台物理机器(如果您在托管环境中,例如AWS,则忽略最后一点)。
编辑:添加关键信息"它只会取代cron"
是的,在这种情况下应该没问题。 Jenkins本身不会使用太多资源(否则它不能用于构建服务器/ 调度程序),以及对额外JVM的担忧:我见过许多生产环境那里有几十个并行运行的JVM。这一切都归结为个人的风景:这些生产的东西在做什么? (繁重的I / O?重型网络?只是倾听偶尔提供REST资源的服务?从以太中收集随机性?)并再次说明:VM的规格是什么以及它运行的硬件......这是一个非常复杂的问题,取决于:
软件/服务
操作系统(是的,无论是Ubuntu,RedHat,SUSE等都很重要)
VM参数(它有多少VCPU?VRAM多少?是基于KVM还是VMWare,还有什么?)
下面的硬件(它足够狡猾吗?你的过度/欠配置比率是多少?你的网络承受负载吗?)
这是一个所有部门(Infra,DevOps,SE等)必须协同工作的问题。