在这篇文章中,我们将探讨开发人员是否应该访问生产以及在现实生活中使用的解决方案。
注意:生产指的是生产服务器,而不仅仅是代码库:
Production Server = Production Hardware + Codebase + Server logs +
Database
开发人员需要访问吗?
一方面,开发人员需要访问生产服务器,以便能够对可能出现的问题进行调试。他们还需要能够部署代码变化,并在生产中监控其性能。如果没有对生产服务器的访问,开发人员就会在一个孤岛上工作,无法有效地完成他们的工作。
另一方面,让开发人员访问生产服务器可能是有风险的。如果他们对代码或配置进行修改,有可能会破坏其他人的工作。此外,让太多的人访问生产服务器,会使跟踪什么变化和什么时候做的更难。
什么是最好的解决方案?
最好的解决方案是:
- 维护2个或更多的生产服务器的镜像
- 如果生产失败,用户会被重定向到其中一个镜像站点,这样你的业务就会照常进行,与此同时,你的开发团队会对问题进行调试。让镜像成为你的永久站点,并将之前的生产站点作为镜像。
- 开发人员可以访问其中一个镜像站点的服务器,并可以在这个服务器上尝试他们的变化。
- 开发人员可能需要服务器日志,但不需要真正的数据库。
- 更多的开发人员可以访问,更多的是信息泄漏的风险。
- 始终保持一个自动备份的服务器。
最好的解决方案是有代价的,它以冗余和低访问量为原则,工作起来非常完美。不是每个人都能承担这个费用,所以至少要保持一个自动备份服务器。
答案取决于你的组织的规模、文化和结构。如果你有一个由开发人员组成的小团队**(主要是联合创始人**)在同一个代码库工作,让他们访问生产服务器可能是有意义的。这样一来,他们可以快速地做出改变,并实时看到结果。
如果你有一个庞大的开发者团队,或者你的开发者在不同的代码库上工作,让一个单独的小组负责将代码部署到生产服务器上可能更有意义。这样,你就可以避免有太多的人可以访问生产服务器,并且更容易跟踪谁在什么时候做了什么改动。
要记住的主要一点是,没有一个正确的方法来做事情。这取决于你的具体情况以及什么对你的团队最有效。因此,花些时间思考什么对你最有效,然后再作出相应的决定。