![]() |
1
1
开发过程中存在哪些不同的服务器?他们的目的是什么?
您的主源代码存储库在哪里? 通常仅限内部访问,可以将此计算机与其他用途(如CI)共享。 开发工作在哪里完成? 在每个开发人员中,最好使用本地计算机,然后通过scm和ci集成更改。 测试在哪里进行? 通常是在一台服务器上进行测试。通常有一组环境和生成在通过测试时在每个阶段进行升级:
|
![]() |
2
1
以我的经验,唯一 概念/观念 重要的是,所有环境(服务器=>开发、登台、生产)如果不完全相同,则应该与操作系统、Web服务器版本、服务包、修补程序、修补程序等相似。现在,至少有3个(或更多)不同的envir可能是可行的,也可能是不可行的。环境,但是这个 倾向于 从我的经验来看,这是正常的。在硬件方面,只要 非常 类似或相同的情况下,它不应该造成任何问题的道路上。
与互联网连接和 沉重地 守卫的许多防火墙规则来保护它不受不希望的访问尝试的影响。只有内部开发人员才能访问存储库。
在大型项目或组织中,开发往往在程序员的计算机上本地完成,或借助于源代码存储库(svn、cvs、vss等)。 复制 这项工作是在当地完成的。
有些人在他们的“开发”环境中测试,有些人在“阶段”中测试,这对我来说更有意义。从两个中选一个坚持到底。我个人认为,如果开发人员正在对开发进行更改,staging是避免版本更改的测试场所。
基本上,web商店将其环境组织为:development=>dev,staging=>stage,production=>prod。开发人员在本地自己的计算机上工作,一旦完成添加/更改,他们就会将更改提交到源存储库。某些商店会做一些称为ci(持续集成)的事情,因此在开发人员每次提交之后,ci服务器都会自动重建到站点。这有助于开发人员/测试人员查看开发人员是否有任何变化。 通常,这些更改会发布到其开发环境中,供所有开发人员使用。当开发人员到达某个里程碑/检查点并希望开始测试时,他们会将其站点的版本“升级”到staging环境中,以便测试人员在开发人员可以继续在dev中工作时进行反复测试。 一旦每个人都满足于staging中的所有内容,他们就会将staging中的版本升级为prod。 只有 单向流动:dev->stage->prod。如果要更改生产,请从dev开始,然后在staging中测试,然后升级到生产。这是一种疼痛,但它保持了事物的一致性,并防止了许多头痛。你会惊奇地发现,有多少公司只是在生产上做了一些改变,几个月/几年后,他们在同步环境时遇到了问题,而仅仅遵循协议就可以减轻他们的许多痛苦。 如果你说你的工作是“小”的,就像在一些动态页面和一些数据库调用之外的简单或不复杂的环境中,我会说试着去3个环境,但你可能会“逃脱”2个环境(登台和生产)。你可以让你自己的电脑成为所谓的开发环境。 |
![]() |
3
1
在工作中,我们偶尔会有两个人在同一个网站上工作,所以情况如下:
这些年来我尝试过这种变化。但是这样做只需要2台物理服务器和开发人员的工作站。但它的结构已经足够让我们相信它是一个可靠的过程。 |