微服务架构下介质管理规范
传统的介质管理,主要是以jar、war为主,但是随着微服务的畅行及容器技术的成熟,介质的管理不仅包括jar、war而且包括zip、tar、bin等各种各样的安装包及构建包,随着这些介质类型的丰富,数量的增多,如何进行管控介质,则显得非常重要。微服务体系下,介质的管理,主要从介质的规范、介质的存储以及介质的使用方面进行规范化。
1. 介质构建规范
微服务体系下介质的种类及数量异常庞大,如果仅采用手工构建完全不仅效率上存在一定问题,而且质量方面也存在一定的问题。因此,在介质构建方面规范如下:
构建工具:采用市场上的成熟产品进行构建,例如:maven、ant、grade、npm以及DockerFile进行构建。
版本信息:建议采用四阶段进行命名版本,例如:V1.2.1_180806R,版本说明:V1为主版本号,2为子版本号,1位修正版本号,180806R为编译版本号。其中:
字母V为固定编号;
主版本号,初始编号为1,当有重大升级或变更时,编号+1;
子版本号,初始编号为0,应用有新功能或需求上线时,子版本号+1,若主版本号发生变更时,子版本号自动归零;
修正版本号,初始编号为0,当无新功能上线,仅修改bug时,修正版本号+1,主版本或子版本号发生变更时,修正版本号自动归零;
编译版本号,6位数字+字母R或B,其中R表示Release,B表示Build,6位数字为当前日期yyMMdd,R和B一般对应测试版本和正式投产版本。
1.1.1.2. 介质存储规范
介质的存储,一般建议采用Nexus进行存储,在存储方面,建议对存储介质进行分类,分为开发库、测试库、投产库,原则上开发库建议实现每日构建存储,并保留近期的5~10个版本即可,测试库是通过开发验证后,用于部署测试环境的版本库,而生产库则用于部署准生产环境或生产环境用的库。
在企业内,一般nexus为公共介质存储仓库,因此,在介质仓库的分类方面,因遵循以下规范:
公共介质仓库组:XXX-repo-public(maven2(group)类型);
公共介质release仓库:XXX-repo-release(maven2(hosts)类型);
公共介质snapshot仓库:XXX-repo-snapshot (maven2(hosts)类型);
将共介质releases仓库和公共介质snapshot仓库加入到公共介质仓库组;
私有介质releases仓库:XXX-repo-releases (maven2(hosts)类型);
私有介质snapshot仓库:XXX-repo-snapshot (maven2(hosts)类型);
其中:XXX为企业/公司英文简称缩写;
1.1.1.3. 介质使用规范
微服务体系下,系统介质的使用,主要有以下几个方面建议:
应用的构建,依赖的介质,建议从介质库中进行拉取,而非采用手动进行复制粘贴方式;
应用的部署,需要的介质,建议从介质库中进行拉取,而非采用本地缓存文件部署;