版本管理

版本控制不是狭义上指开发人员提交svn后的版本信息,而是基于基础设施即代码的思想形成的全套版本管理。包括:使用统一的代码库(将所有源文件、配置文件纳入版本控制系统)、代码的依赖项(库、静态内容)、编译器、创建数据库的脚本、搭建生产环境的工具、自动化测试脚本、源码打包和部署脚本、项目文件(需求文档、部署过程、发布说明)、网络防火墙及ip配置。这样把构建过程中所依赖的一切都纳入版本控制系统,这样的好处是开发人员无论是在任何时间节点都能在统一的环境下进行开发和测试工作,保证了开发环境的统一和代码部署出问题后能及时进行回滚操作,而且加强对其它底层软件版本进行控制,也会推进运维工作的标准化。

1.服务器操作系统

win server 2008 r2 x64 或 win server 2012 r2 x64

2.浏览器

推荐使用Internet Explorer 11(IE11)简体中文版或google chrome 79版及以后;若无法下载chrome,则可以使用360浏览器 10版本及以后,开启极速模式。

3.制图软件

由于制图软件多为离线安装,更新版本较为麻烦,而且更新时费时费力,一个地区或一个单位的制图软件尽量保持版本一致,升级周期长,可一年升级一次,升级前需要做好数据库的备份工作,并在升级前做好功能测试,尽量使用比较新但稳定的版本。由于版本更新时旧版软件必须完全卸载干净,所以请只开启地图服务能浏览但不能编辑,等所有人都确认升级了本机制图软件后,再开启协同服务进行修改,数据库要一天一备份,尽量将版本更新所带来的影响降到最低。

4.svn版本库

开发人员的svn版本尽量做到一天同步一次到生产环境,可以使用自动化构建并部署,svn版本可实时更新到测试环境下,尽早发现可能存在的问题。

5.开发人员的vs版本

开发人员的vs版本尽量保持一致,如vs2013及以下。这样做的好处是不会出现使用高版本vs编写的带有新特性的代码在低版本vs中无法编译通过的情况,保持vs版本一致性,就保证了编译环境的一致,构建和打包时也使用统一的vs版本进行编译。

6.打包工具

持续部署和持续集成可以使用自动化工具,如Jenkins,对构建工具进行版本控制,可对其插件的依赖关系进行管理。源码打包和部署脚本也要有版本号,可以是日期形式的,但不能没有版本信息。

7.项目文件

需求文档、部署过程、发布说明也需要有版本号。
  • 需求文档:在禅道上提交后,若有了内修改,则需要创新新的版本号。
  • 部署过程:不同平台的部署方式不一样,对于部署过程也要有相应的说明。
  • 发布说明:目前只有开发人员进行svn提交时会有备注。

8.服务器ip配置

由运维人员进行服务器ip的配置管理,形成统一的表格,一个地区或项目的服务器ip、用户名、密码要实时更新到该表,并进行更新日期标注。这样同一个项目组人员可共享该表格。

9.监测接口程序和数据库

监测监控类的接口程序需和数据库保持一致,空数据库要和新的接口程序打包在一起。这样做的好处是实现同步升级更新,而且若数据库出了问题,可以使用旧版的数据库进行恢复。