我试图避免做假设和问错问题。 我要描述我所处的情况以及问题所在。
我目前有一个运行开发和testing数据库的开发服务器。 开发人员在本地运行Apache,但连接到testing服务器数据库,以便每个人都在同一页面上。 随着时间的推移,这个服务器的职责已经增长。 它经常被用作客户签署变更的中转区域。 同时,客户和数据库的数量也在增长。 今天,开发服务器地面停下来。 这对今天开发团队的工作stream程是一个真正的破坏。
testing期间设置的活动开发和CRON任务混合在一起,最终使服务器变得无法使用。 我相信服务器的磁盘访问是瓶颈。
我以前曾要求过硬件升级,可惜的是他们还没有从pipe理层那里获得。 硬件升级也只会做很多。 我想知道是否有更好的方法来实现我们想要的,并希望在到达时以正确的方式设置新的服务器。
理想情况下,我希望有一个系统可以很容易“停止”网站,包括他们的cron广告,当他们没有进行积极的开发时,他们的登台URL就无法访问。 同样重要的是,我需要一个简单的方法来再次“启动”它们,最好通过一个用户界面,这样我们的非技术人员就可以做到这一点。
我喜欢基于docker / vm的解决scheme,但我不能100%确定如何维护。 使用类似这样的最大障碍可能是我不知道如何能够将它们设置为临时环境。
您可以为每个testing项目分配自己的高端口而不是普通的SQL端口,并将这些端口转发到1433(或任何位置)的真正的SQL服务器。 那么你可以控制端口转发。 你可以用HTTP端口做同样的事情。
他们可以在服务器本身(使用iptables或firewalld)或客户端(使用防火墙,SSH隧道,或任何他们可以在他们的平台上使用)转发。
如果这是在客户端完成的,则不必在服务器上为所有开发人员提供root权限以重新打开其端口。 另一个好处是,如果服务器由于负载过重而变得完全不可用,则仍然可以closures客户端上的端口转发,直到负载变得更易于pipe理,并且可以再次访问服务器。
从用户验收testing中分离开发将是有用的。 一些方法来做到这一点。
将资源拆分成独立的dev和uat虚拟机。 只有当另一个开发人员签字时,才能从开发人员转移到使用Uat,这样做不会导致性能下降,或者造成其他问题。
让开发人员在自己的工作站上运行自己的更改。 有部署工具可以使用临时数据库的本地副本及其代码版本来启动虚拟机。 在分支合并之后,继续对分段/ uat系统进行集成testing。