我正在为网站开发设置一些服务器。我希望它以一种相当标准的方式组织起来。你如何组织服务器来开发相对较小的网站,每个网站都有一些独特的代码?
我关注的一些细节包括(但不限于):
在开发过程中存在哪些不同的服务器?他们的目的是什么?
您的主源代码存储库在哪里?
开发工作在哪里完成?
测试在哪里?
答案 0 :(得分:1)
在开发过程中存在哪些不同的服务器?他们的目的是什么?
您的主源资源库在哪里?
通常只有内部访问,可以与其他目的共享此机器,例如CI
开发工作在哪里完成?
在每个开发人员本地计算机上最好,然后通过SCM和CI集成更改。
测试在哪里?
通常在预留用于测试的服务器上。通常情况下,有一组环境和构建在通过测试时通过每个阶段进行推广:
答案 1 :(得分:1)
在工作中我们偶尔有两个人在同一个网站上工作,所以它是这样的:
每个站点都在源代码管理中(Microsoft Source Safe),我们大多数时间都在自己的计算机上使用和测试本地副本。幸运的是,Visual Studio 2008通过其内置的Web服务器使这一点变得简单。
当我们想要在内部测试多个用户时,我们会部署到我们的内部开发服务器。 (我们将在部署到生产之前始终执行此操作。)
当我们希望一些外部聘请的顾问在投入生产之前审查该网站时,我们可能会部署到我们的生产服务器,但是会有一个特殊的主机标题将其与实际网站分开,例如: staging.yourdomain.com(经常跳过此步骤。)
作为最后一步,我们将部署到数据中心的生产服务器。
答案 2 :(得分:1)
1)在开发过程中存在哪些不同的服务器? 他们的目的是什么?
根据我的经验,唯一应该重要的概念/想法是所有环境(服务器=>开发,登台,生产)应该是完全相同的,类似于操作系统,Web服务器版本,服务包,补丁,修补程序等。现在,至少有3个(或更多)不同的环境可能有也可能不可行,但这个趋于成为常态我的经验。在硬件方面,只要他们的非常类似或相同,它就不会在未来出现任何问题。
2)你的主要来源在哪里? 存储库
与互联网访问隔离,严重保护。许多防火墙规则可以保护它免受不良尝试获取访问权限。只有内部开发人员才能访问存储库。
3)开发工作在哪里完成?
在大型项目或组织中,开发往往是在程序员的计算机上本地完成的,或者借助源代码库(SVN,CVS,VSS等)来完成工作的副本在当地完成。
4)测试在哪里?
有些人在他们的“开发”环境中进行测试,有些人在“升级”中进行测试,这对我来说更有意义。选择其中一个并坚持下去。就个人而言,我认为如果开发人员正在对开发进行更改,那么暂存是测试以避免版本更改的地方。
如何整理服务器 发展比较小 网站,每个都有一点点 唯一代码?
基本上,网上商店将他们的环境组织为:development => dev,staging => stage,production => prod。开发人员在他们自己的机器上本地工作,一旦他们的添加/更改完成,他们就会将更改提交到源存储库。某些商店执行称为CI(持续集成)的操作,因此在开发人员进行每次提交后,CI服务器会自动重建到站点。这有助于开发人员/测试人员查看开发人员更改是否有任何问题。
通常,这些更改将发布到其开发环境,供所有开发人员使用。当开发人员到达某个里程碑/检查点并希望开始测试时,他们会将其网站版本“推广”到临时环境,以便测试人员可以在开发人员继续在开发人员中工作时进行攻击。
一旦每个人都满足于分期中的所有内容,他们就会将分段中的版本提升为prod。更改应仅以一种方式流动:dev-> stage-> prod。如果要对生产进行更改,请从开始,然后在分段中进行测试,然后进行生产。这是一种痛苦,但它可以使事情保持一致,并防止出现无数令人头痛的问题。令人惊讶的是,有多少公司只是在生产方面做出改变,而在数月/数年之后他们遇到同步环境时遇到问题,只要遵循协议就会给他们带来很大的痛苦。
如果你将你的工作称为“小”,除了一些动态页面和一些数据库调用之外的简单或不复杂,我会说尝试去3个环境,但你可能会“逃脱”2环境(分期和生产)。您可以将自己的计算机变成所谓的开发环境。