IT环境管理规范

1 概述

1.1 目的和背景

为加强项目在开发与管理过程中对公司的一些资源申请使用,提供规范的指导流程,便于大家知道有哪些资源,如何来使用这些资源。对于这些内容制定公司IT环境管理规范。

1.2 适用范围

所有软件开发(含研发)、运维、咨询服务、技术服务类项目。

2 总体原则与要求

1.公司所有非涉密项目的项目过程资料、代码都应当在其产生之后即提交到公司统一的配置库(GitLab库);

2.软件产品或技术组件,必须确保源代码与构建成果的一致性;

3.对于日常的工作通过WPM完成(周报、报销、请假等)

4.对于技术研发的成果需通过GitLab源码构建发布在公司K8S平台

5.对于资源的申请(虚拟机、K8S资源)需要按相关文档填写申请表,邮件审批后才进行资源开放。

3 角色与职责

1)公司配置管理员:

  • 负责公司统一配置库的技术平台搭建与维护、数据备份、人员权限控制、技术支持;

  • 负责统一配置标准要求的编制,统一文档库目录结构的维护;

  • 负责项目开发所需资源权限开发(如Maven、K8S)

  • 定期协同项目管理部对配置库进行检查。

2)项目经理:

  • 全面负责项目配置管理,对配置管理的一致性,及时性负总体责任;

  • 负责配置库的创建与项目组参与人员、角色的维护;

  • 督促项目资料与代码的及时提交;

  • 接受项目管理部与公司配置管理员的配置库检查,组织对不规范项的整改。

  • 对开发所需的资源申请(Maven、K8S、虚拟机等)

3)项目管理部:

  • 负责对项目配置管理的定期检查,作为项目经理绩效评价参考;

  • 结项时负责对项目配置库的内容进行全面检查。

4)技术部门经理:

  • 负责督促各项目组的配置管理规范落实,对项目组的配置管理规范工作负领导责任;

  • 负责部门级文档资料共享库的创建与维护。

  • 负责部门研发成果管控

4 Gitlab管理规范

Gitlab的项目配置参考工程项目配置管理规范,这里对Gitlab中的项目使用更细化的操作进行管理,包括权限的控制,大文件的管理,配置管理员添加。

5 开发资源管理规范

开发资源用于在整个项目实施中,对于公司所提供的资源权限提供一套申请规范,这里主要包括Maven私服权限(公司自有Java后端公共组件与通用Maven代理)、Npm私服权限(公司自有Npm前端公共组件与通用Npm代理)、K8S资源(承载项目的部署运行)、Jenkins构建(承载项目的构建发布到K8S)

5.1 Maven权限申请

Maven的资源用户默认的权限是未开放的,对于需要开发使用,可以进行权限申请,Maven权限分为“普通角色”、“Maven管理员”。

普通角色:所有查询权限

Maven管理员:管理maven(可上传自定义jar、pom文件)

# 申请规范:
xxx申请Maven “普通角色/Maven管理员”权限

5.2 Npm权限申请

在前端应用根节点里添加一个.npmrc文件,之后在进行前端npm install时就可以通过公司nexus进行npm的仓库代理,内容配置如下:

# npm私服地址
registry = http://wpm.wiseda.com.cn/nexus/repository/npm-public/
# npm nexus授权信息
_auth=cmFuY2hlci1waXBlbGluZTp3aXNlZGFAcmFuY2hlcjIwMjA=

在大型的项目或一个项目中拆分成多个模块,多个模块之间在前端也会出现相互的引用,共享前端的功能,这时也可以将前端提取成一个组件发布到公司的npm仓库,在其他模块进行npm的包安装。

5.3 K8S资源申请

公司中的K8S是基于Rancher进行管理,在项目基于DevOPS的开发模式,需要进行持续的构建、迭代、构建。对于K8S的资源将以项目为单位进行申请,申请的资源主要为CPU、内存、开通的人员权限名单。

# 申请规范:
“项目编码-项目名称”因xxx原因,申请公司K8S资源使用,项目负责人xxx。
申请资源:
CPU:xx C
内存:xx G
人员权限名称:xxx、xxx
是否开通Jenkins:否/是
资源使用期限:2022-11-26至2023-11-25

K8S与Rancher的使用通过:http://git.spm.wiseda.com.cn:2080/k8s 进行参考学习,资源的申请是需要指定使用期限,随着项目的不断增加,有些项目可能已经结项归档了,不再需要进行维护开发,这时就需要对资源进行回收,在进行资源回收前会跟项目负责人进行确认,做好项目备份。

5.4 DB2资源申请

DB2因资源有限,不会像mysql可以直接在k8s开出单独的实例,针对于项目中需要使用DB2数据库的,按如下格式进行申请:

# 申请规范:
“项目编码-项目名称”因xxx原因,申请DB2数据库进行开发测试,项目负责人xxx。
数据库配置信息:
database:xxx
用户/密码:xxx/xxx
使用期限:2023-10-13至2024-10-22

注意: 数据库仅用于开发使用,因公共的数据库服务,不要进行大量的业务数据存储或进行压测。

6 虚拟机管理规范

在公司K8S环境搭建后,严格意义来说不再提供虚拟机的申请要求,但因某些项目所需要使用的数据库(DB2、Oracle)、操作系统(国产操作系统:KylinOS麒麟、openEuler欧拉)等相关组件在K8S上提供不了的,才允许进行虚拟机申请。后续慢慢完善这些公共组件,统一进行数据库、操作系统的管理后,也就不再提供这类虚拟机的申请要求。

申请规范:

# 申请规范:
“项目编码-项目名称”因xxx原因,需要申请x台虚拟机,项目负责人xxx。
申请资源(单台配置):
CPU:xx C
内存:xx G
硬盘:xxx G
资源使用期限:2022-11-26至2023-11-25

虚拟机资源的申请同样需要先预估一个使用期限,达到期限后将联系负责人是否还需要继续保留,如需要保留再发送续期邮件进行虚拟机的延续使用。如不再需要使用请项目组做好备份后,将进行虚拟机的回收。

7 知识库(KM)

知识库用于管理公司文档资料、视频资料等大文件的管理、分享。对于项目实施过程中可能会存在一些第三方的培训,如阿里、华为的现场培训视频、培训资料等,这些资料往往会比较大,少说几百M,大的可能好几个G,这些内容不适合放到gitlab中的项目文档中,一是增加了gitlab的负担,另一个每个用户去下载这些内容花费的时间也是非常长,针对这些内容就统一归到知识库进行管理、分享。

另一块内容是在gitlab归档(Archive)后的项目将变成只读,不可再提交与变更。这时将项目的文档库以zip压缩文件下载,上传到知识库,后续如需要查阅,可从知识库进行查询,gitlab只保留项目的源代码与相关的issue。对于归档后的文档在备份到知识库后,将进行文档项目删除。因gitlab每天需要进行备份,在项目不断的新增,容量会越来越大,备份时间也会拉得很长,所以减少归档项目的文档占用的空间。

上次更新:
编辑者: 李贤伟