代码之家  ›  专栏  ›  技术社区  ›  Fragsworth

如何组织用于web开发的服务器?

  •  2
  • Fragsworth  · 技术社区  · 6 年前

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

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

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

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

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

    4. 测试在哪里进行?

    3 回复  |  直到 15 年前
        1
  •  1
  •   rajax    15 年前

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

    • 单片机服务器 例如svn,git,cvs-中央资源库,通常 仅限内部访问。
    • CI服务器(S) 例如CruiseControl、Hudson-持续集成 用于自动生成/测试的服务器。
    • 文件服务器 例如samba,共享windows目录-用于存储构建的 工件,在 开发团队
    • 测试/准备/生产 服务器-根据相同规格的 运行实际的 应用。

    您的主源代码存储库在哪里?

    通常仅限内部访问,可以将此计算机与其他用途(如CI)共享。

    开发工作在哪里完成?

    在每个开发人员中,最好使用本地计算机,然后通过scm和ci集成更改。

    测试在哪里进行?

    通常是在一台服务器上进行测试。通常有一组环境和生成在通过测试时在每个阶段进行升级:

    • 测试机器-用于签出生成,通常反映开发人员机器的设置。
    • 登台计算机-对于通过基本测试的生成-此服务器将更像是实时生产系统的镜像。
    • pre-live-一个可选的服务器,在服务器完全启动之前,它将提供给业务用户进行测试。
    • live/production-当测试人员和业务部门接受构建时,它们将被提升到此服务器。
        2
  •  1
  •   osij2is    15 年前

    1)开发过程中存在哪些不同的服务器? 他们的目的是什么?

    以我的经验,唯一 概念/观念 重要的是,所有环境(服务器=>开发、登台、生产)如果不完全相同,则应该与操作系统、Web服务器版本、服务包、修补程序、修补程序等相似。现在,至少有3个(或更多)不同的envir可能是可行的,也可能是不可行的。环境,但是这个 倾向于 从我的经验来看,这是正常的。在硬件方面,只要 非常 类似或相同的情况下,它不应该造成任何问题的道路上。

    2)你的主要来源在哪里 仓库?

    与互联网连接和 沉重地 守卫的许多防火墙规则来保护它不受不希望的访问尝试的影响。只有内部开发人员才能访问存储库。

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

    在大型项目或组织中,开发往往在程序员的计算机上本地完成,或借助于源代码存储库(svn、cvs、vss等)。 复制 这项工作是在当地完成的。

    4)测试在哪里进行?

    有些人在他们的“开发”环境中测试,有些人在“阶段”中测试,这对我来说更有意义。从两个中选一个坚持到底。我个人认为,如果开发人员正在对开发进行更改,staging是避免版本更改的测试场所。

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

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

    通常,这些更改会发布到其开发环境中,供所有开发人员使用。当开发人员到达某个里程碑/检查点并希望开始测试时,他们会将其站点的版本“升级”到staging环境中,以便测试人员在开发人员可以继续在dev中工作时进行反复测试。

    一旦每个人都满足于staging中的所有内容,他们就会将staging中的版本升级为prod。 只有 单向流动:dev->stage->prod。如果要更改生产,请从dev开始,然后在staging中测试,然后升级到生产。这是一种疼痛,但它保持了事物的一致性,并防止了许多头痛。你会惊奇地发现,有多少公司只是在生产上做了一些改变,几个月/几年后,他们在同步环境时遇到了问题,而仅仅遵循协议就可以减轻他们的许多痛苦。

    如果你说你的工作是“小”的,就像在一些动态页面和一些数据库调用之外的简单或不复杂的环境中,我会说试着去3个环境,但你可能会“逃脱”2个环境(登台和生产)。你可以让你自己的电脑成为所谓的开发环境。

        3
  •  1
  •   Steve Wortham    15 年前

    在工作中,我们偶尔会有两个人在同一个网站上工作,所以情况如下:

    • 每个站点都处于源代码管理(Microsoft Source Safe)中,我们大部分时间都在自己的计算机上使用和测试本地副本。幸运的是,visual studio 2008通过其内置的web服务器简化了这一过程。

    • 当我们想用多个用户进行内部测试时,我们会部署到我们的内部开发服务器。(在部署到生产环境之前,我们会一直这样做。)

    • 当我们希望一些外部聘请的顾问在投入生产之前检查站点时,我们可能会将其部署到生产服务器上,但会使用一个特殊的主机头将其与活动站点分离,例如staging.yourdomain.com(通常会跳过此步骤)。

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

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