jenkins与关键应用程序在同一虚拟机上,这明智吗?

jenkins与关键应用程序在同一虚拟机上,这明智吗?,jenkins,Jenkins,我想使用Jenkins自动化属于在同一服务器上的tomcat上运行的web应用程序的任务 由于应用程序非常关键,在同一台虚拟机上安装Jenkins明智吗? 将有2个JVM运行在同一个虚拟机上,这可能是内存、cpu、稳定性等方面的问题吗 我应该特别注意一些事情,还是最好在另一个虚拟服务器上安装Jenkins 由于应用程序非常关键,在同一台虚拟机上安装Jenkins明智吗 不,这不明智。如果您已经在虚拟化环境中,请为Jenkins创建一个新的VM(但至少要将其分开,例如,在两个不同的docker容器

我想使用Jenkins自动化属于在同一服务器上的tomcat上运行的web应用程序的任务

由于应用程序非常关键,在同一台虚拟机上安装Jenkins明智吗? 将有2个JVM运行在同一个虚拟机上,这可能是内存、cpu、稳定性等方面的问题吗

我应该特别注意一些事情,还是最好在另一个虚拟服务器上安装Jenkins

由于应用程序非常关键,在同一台虚拟机上安装Jenkins明智吗

不,这不明智。如果您已经在虚拟化环境中,请为Jenkins创建一个新的VM(但至少要将其分开,例如,在两个不同的docker容器中运行prod和Jenkins)。除了表现,为什么不明智?如果您运气不好,您的测试甚至可能使VM崩溃。或者,它们会吃掉您的资源(文件锁、网络端口等)。或者,如果您没有正确设置,Jenkins可能会覆盖您的生产代码(例如,部署到prod所在的同一文件夹中)

将有2个JVM运行在同一个虚拟机上,这可能是内存、cpu、稳定性等方面的问题吗

当然,这将是一个性能问题,但不是因为两个JVM,而是因为测试本身(如果您有一个包含大量测试的更大项目,那么很可能会影响性能)

我应该特别注意一些事情,还是最好在另一个虚拟服务器上安装Jenkins

只需在另一个虚拟机中运行它;更好的是另一台物理机器(如果您在托管环境中,例如AWS,则忽略最后一点)

编辑:添加关键信息“它将取代cron”

是的,在这种情况下应该没问题。Jenkins本身并没有使用太多资源(否则它就不能很好地用于构建服务器/调度程序),并且担心额外的JVM:我看到许多生产环境中有几十个JVM并行运行。这一切都归结于个人场景:这些产品在做什么?(繁重的I/O?繁重的网络?只是偶尔监听一个REST资源?无所事事地从以太收集随机性?)再说一遍:你对VM和运行它的硬件有什么要求。。。这是一个非常复杂的问题,取决于:

  • 软件/服务

  • 操作系统(是的,不管它是Ubuntu、RedHat、SUSE等都很重要)

  • VM参数(它有多少VCPU?有多少VRAM?它是基于KVM还是基于VMWare,其他什么?)

  • 下面的硬件(是否足够狡猾?您的过度/不足配置比率是多少?您的网络是否承受负载?)


这是一个所有部门(Infra、DevOps、SE等)必须协同工作的问题

事实上,詹金斯将取代克朗。应用程序服务器上没有由于任务而产生的额外负载,这将是正常负载。但是Jenkins会给VM增加自己的开销。我不确定会是多少。Jenkins本身的资源使用率非常低(例如,建议的最小RAM为200 MB)。这一切归结为:你用它干什么?如果您使用maven构建巨大的Java项目,并对其进行单元/集成测试,那么它可能会产生巨大的负载(不是Jenkins本身,而是您使用它运行的内容)。如果您只是想将其用作调度程序。。。还是要看你会怎么处理它?每24小时一次apt更新/升级?应该没问题。每10分钟一次rm-rf/tmp?可能会出错,具体取决于生产环境的
tmp
。。。