设置项目开发环境

设置项目开发环境

不确定这对于这个网站来说是否合适,但是还是要说一下!

寻找一名熟练/有经验的 Linux 系统管理员,我可以与其讨论如何为远程人员设置一个项目使用的开发环境。(或者有人可以给我推荐一个好的网站/文章)

我有 10-15 台服务器,想要将它们设置为创建几个应用程序/项目的开发环境。我设想我将拥有测试/备份/用户目录/生产/应用服务器/等等...

我希望通过电话/电子邮件与某人讨论将这件事情整合在一起的最佳方法。还想确保系统尽可能的安全,因为项目的开发人员将远程登录。这是一个可能会变成开源项目的项目,但我不想使用 sourceforge 并且只是将项目挂给每个人,直到它经过几次迭代......

提前感谢任何指点/想法/等等...

汤姆……

答案1

根据你的 StackOverflow 帐户,我猜你是一家 Python 商店。

我建议使用巴兹尔作为您的 VCS,但这并不重要。使用您和您的开发人员最喜欢的任何版本。

你应该至少有一个集中式开发服务器。
它应该保存你的存储库的主副本以及开发人员的主目录。

定期备份此服务器的。
使用快照对数据进行快照。可能是每小时快照一次,也可能是每晚异地备份一次(Amazon S3 在这方面物有所值!)。每周备份一次离线介质(磁带、DVD、外部硬盘),每月轮换一次。

不要忘记测试恢复!

如果你有 2 个开发服务器,那么最好使用类似 ubuntu 的东西来构建它们预播种或 RHEL/Centos Kickstart。然后使用以下工具构建服务器环境木偶。从长远来看,这将节省您的时间,尤其是在进行扩展时。

你可以在多个开发服务器之间使用 rsync 设置文件系统级复制,但我个人建议使用共享块级存储系统,例如集群文件系统

尽早养成编写单元测试的习惯。即使只是针对项目的核心模块。将它们与单元测试运行器集成,例如单元测试. 获取代码覆盖率分析器来帮助您开发有效的测试。使用类似以下工具将您的测试环境与源代码控制集成哈德森或者建造机器人。现在您可以收到哪位开发人员提交了破坏构建的代码的通知。

您应该拥有一个单独的测试服务器,以反映您的实际环境。理想情况下,您有 2 个这样的服务器,一个在办公室用于本地测试,另一个在公共服务器所在的同一数据中心。

之所以有 2 个,是因为您可以在本地进行快速部署和测试,但测试与实时服务器相同的环境,例如网络差异、防火墙、路由等。

一旦设置并运行了几台服务器,您就应该考虑某种集中式备份系统。将服务器的所有重要部分备份到中央位置,然后将这些数据复制到单独的服务器。例如,一台在办公室,一台在数据中心。
以及每周进行异地/离线备份和灾难恢复测试。

再次强调,其中很多都是“理想解决方案”,但对于小型初创公司来说,在经济上并不可行。早期对良好实践的投资确实会在未来带来回报。尤其是当你试图快速扩展时,那些可以限制停机时间的东西。
良好的源代码控制和高效的开发工作流程也大有裨益。

答案2

真的“几个应用程序/项目”需要那么多服务器吗?我觉得这太过分了。
举个例子,我在一家拥有约 130 名员工的公司工作,负责管理 11 台服务器。

有一件事是肯定的,你最好在流程的早期就设置好你最喜欢的版本控制服务器。

相关内容