以下总结了中小型团队开发常用的逻辑服务器,这些服务器更偏重于角色,通常一台物理服务器同时兼任多个角色。

  1. 网关(路由)
    1. 用处:团队公用帐号上网,防火墙。
    2. 常用软件:WindowsServer自带的路由服务;Linux的路由服务。文件服务器
    3. 描述:同一个团队分在一个子网内是很有好处的。首先是解决了上网帐号紧张的问题(通常一个团队共用一个帐号或者一个公网IP)。其次,在一个子网内容易管理权限,子网内的信任权限可以预先设置好。
  2. 文件服务器
    1. 用处:文件共享。
    2. 常用软件:文件夹共享,客户端采用映射网络驱动器(Windows)或挂载网络文件夹的方式访问(Linux)。
    3. 描述:文件共享是最基本的团队服务之一,可以用于文件交换,共有文件访问(如安装程序、通讯录等),简单的版本控制等。文件服务器需要的计算资源较少,基本不需要部署在单独的物理服务器上。
  3. 备份服务器
    1. 用处:备份文件。
    2. 常用软件:同文件共享服务器。
    3. 描述:备份服务器和文件服务器实质是一样的,之所以单独列出来是因为其重要性不容忽视。文件服务器上的文件更新通常较为频繁,对于访问的控制也较为宽松,大部分(通常为所有)成员拥有写权限甚至管理员权限。而备份服务器作为团队成果的重要保障,要求严格的管理和更强的稳定性。所以建议在有条件的情况下,设置单独的备份服务器,至少为其设置一块单独的硬盘。
      需要备份的文件的范围通常包括:项目文档,版本控制的数据库,团队网站,项目数据库,共有文件等。
  4. 打印服务器
    1. 用处:共享打印机。
    2. 常用软件:打印机共享。
    3. 描述:作为处于一个办公场所的团队来说,一台激光打印机即可满足所有成员的要求。打印服务器类似文件服务器,需要的计算资源较少,通常和其他服务器一起部署在同一物理服务器上。
  5. Web服务器
    1. 描述:提供Web服务。
    2. 常用软件:IIS、Apache。
    3. 描述:Web服务器也是个用处极为广泛的服务器,通常包含团队的首页(占公网80端口),项目管理软件(ProjectServer、BugFree等),Blog,Wiki,BBS等。
  6. 版本控制服务器
    1. 描述:提供版本控制。
    2. 常用软件:VSS、TFS、SVN、CVS等。
    3. 描述:没有版本控制的项目是不能想象的。一个成熟的团队通常用版本控制工具管理整个项目文件:文档、代码、数据库脚本、页面设计……。版本控制服务器的重要性也就不容置疑了。
  7. 部署服务器
    1. 描述:用于团队项目的部署、发布。
    2. 常用软件:WebServer、FtpServer。
    3. 描述:对于团队、特别是承接项目的团队,快速发布作为敏捷开发的一种方式,已经越来越普遍。部署服务器就是用于团队项目开发过程中所有版本的部署。通常这些发布版本互相之间是独立的,是可以同时访问的。部署服务器作为迭代和增加交付的工具,可以保留项目的开发历程、快速向客户演示以及增进团队成员的信心!

以上服务器可以根据团队的需要和硬件条件进行搭配,以下提供几种以供参考:

  1. 所有的服务器部署在一台机器!
    这种方式没有什么可说的。:)
  2. 网关+部署服务器+Web服务器,文件服务器+打印服务器+版本控制服务器,备份服务器。
    三台服务器以服务的范围进行划分,安全等级由低到高。
  3. 网关, 部署服务器+Web服务器,文件服务器+打印服务器+版本控制服务器, 备份服务器。
    同上一方案。独立的网关更利于安全性。