2009-09-25 66 views
2

我正在为网站开发设置一些服务器。我希望它以一种相当标准的方式组织起来。你如何组织你的服务器来开发相对较小的网站,每个网站都有一些独特的代码?如何组织您的服务器以进行Web开发?

一些细节我关心的包括(但不限于):

  1. 相对于发展过程中存在哪些不同的服务器?他们的目的是什么?

  2. 您的主源代码库在哪里?

  3. 开发工作在哪里完成?

  4. 测试在哪里完成?

+1

这是一个非常广泛的问题。 – 2009-09-25 21:27:50

+0

@George Stocker:这个问题没有价值吗? – Fragsworth 2009-09-25 21:50:27

+0

@George Stocker:当他要求提供关于网站开发环境的具体细节时,这是一个广泛的问题吗? – osij2is 2009-09-25 21:59:19

回答

1

关于开发过程,存在哪些不同的服务器?他们的目的是什么?

  • SCM服务器例如, SVN,Git,CVS - 中央源代码库,通常只有内部访问 。
  • CI服务器例如, CruiseControl,Hudson - 持续集成 服务器用于自动构建/测试。
  • 文件服务器例如桑巴,共享Windows目录 - 存储内置 文物, 之间共享下载的开发团队
  • 测试/开发/生产服务器 - 建成的 硬/软件的同一规格的机器运行您的实际应用 。

您的主源代码库在哪里?

通常只有内部存取,可以与另一个目的共享本机,例如, CI。

开发工作在哪里完成?

在每个开发人员本地机器上最好,然后通过SCM和CI集成更改。

测试在哪里完成?

通常在一台服务器上进行测试。通常,在通过测试时,通过每个阶段都会推出一组环境和版本:

  • 测试机器 - 用于检出构建,通常反映devlopers机器的设置。
  • 分段机 - 用于通过基本测试的构建 - 此服务器将更多地是现场制作系统的一面镜子。
  • Pre-live - 一个可选的服务器,在服务器完全运行之前,它将被提供给业务用户进行测试。
  • Live/Production - 当测试人员和业务部门接受构建时,升级到此服务器。
+2

你忘了游戏服务器 - 不要让开发者主持游戏,不公平的优势! – RedFilter 2009-09-25 21:38:06

1

在工作中,我们偶尔有两个人在同一地点工作,所以它是这样的:

  • 每一个网站是在源代码控制(微软源安全),并与我们合作,并测试本地大部分时间都在我们自己的电脑上复制。幸运的是Visual Studio 2008通过其内置的Web服务器使这一切变得简单。

  • 当我们想要在多个用户的内部进行测试时,我们将部署到我们的内部开发服务器。 (我们将在部署到生产前始终执行此操作。)

  • 当我们希望一些外部聘请的顾问在投入生产之前审查网站时,我们可能会将其部署到我们的生产服务器,但会有一个特殊的主机头将其与实况网站,例如staging.yourdomain.com(这一步经常被跳过)。

  • 作为我们部署到数据中心生产服务器的最后一步。

我已经尝试过这些年来的变化。但这样做只需要2台物理服务器和开发人员的工作站。但它的结构足够完善,这对我们来说是一个可靠的过程。

1

1)关于开发过程有什么不同的服务器? 他们的用途是什么?

以我的经验,唯一的概念/想法是应该的问题是,所有的环境(服务器=>开发,分期,生产)应该是如果不完全一样,关于OS类似,Web服务器版本,服务包,补丁程序,修补程序等。现在,至少有3个(或更多)不同的环境可能可行也可能不可行,但此趋于是我的经验。在硬件方面,只要他们的非常类似或相同,它不应该带来任何问题。

2)您的主源 存储库在哪里?

隔离互联网访问和沉重守卫。许多防火墙规则可以保护其免受访问不合要求的企图。只有内部开发人员应该能够访问存储库。

3)开发工作在哪里完成?

在较大的项目或组织,发展往往是一个程序员的电脑工作的副本或与源库(SVN,CVS,VSS等)的辅助下本地做的是在本地完成。

4)测试在哪里完成?

有些人在他们的“发展”环境中测试,有些人在“分级”测试,这让我更有意义。选择其中一个,并坚持下去。就我个人而言,如果开发人员正在对开发进行更改,我认为分期测试是为了避免版本更改。

你如何组织你的服务器的 发展相对小 网站,每一个都具有 唯一代码一点点?

基本上,网络商店组织他们的环境为:development => dev,staging => stage,production => prod。开发人员在他们自己的机器上本地工作,一旦他们的添加/更改完成,他们将更改提交到源存储库。某些商店做一些称为CI(持续集成)的东西,因此在开发人员进行每次提交之后,CI服务器会自动重建到该站点。这有助于开发人员/测试人员查看开发人员是否有任何改变。

通常,这些更改会发布到他们的开发环境中供所有开发人员使用。当开发人员到达某个里程碑/检查点并想要开始测试时,他们会将他们的网站版本“升级”到临时环境中,以供测试人员在开发人员继续在开发中工作的时候使用。

一旦所有人都满足于升级中的所有内容,他们会在升级过程中升级版本。变化应该只有单向流动:dev-> stage-> prod。如果您想对生产进行更改,请从dev开始,然后进行测试,然后升级到生产。这是一个痛苦,但它保持一致,并防止许多头痛。你会惊讶地发现,有多少公司只是在生产中做出改变,而在几个月/几年后,他们在同步环境时遇到问题,因为只有遵循以下协议才能为他们节省很多痛苦。

如果您将工作称为“小型”,就像在一些动态页面和一些数据库调用之外的简单或不复杂的情况一样,我会说要尝试去3个环境,但您可能会“ 2环境(舞台和制作)。你可以让自己的电脑成为所谓的开发环境。

相关问题