服务及开发规范

服务及开发规范

一,基本规范

Git规范

    1、master必须跟线上代码同步;

    2、每次发布必须同步生成一个tag,说明需包含完整日期和具体需求描述;

    3、过程分支在发布合并入master后,进行删除;

    4、commit描述力求准确,严禁含糊不清,出现:合并、优化、bug修复等不明所以的描述,以功能完成为基本提交单元;

    5、工作步骤:

        5.1、从master创建分支,前缀必须是:release/xxxx;

        5.2、如多人工作,从分支创建feature/xxxx;

        5.3、合并feature到release分支,进行测试;

        5.4、测试无问题后,release分支合并入master,发布线上服务;;

        5.5、以master版本创建tag,详细记录本次功能和改动情况;

        5.6、删除无用分支;

    6、严禁直接在master上进行开发;

二,编码规范

一、readme要求

1.1、放置在项目根目录,名称全小写:readme.txt;

1.2、开头第一行创建日期;

1.3、项目部署前置条件,逐一列举描述;

1.4、模块说明,共有多少个模块,各个模块的功能说明;

例:

创建日期:2019-04-01

*********************************************

部署前置条件:

1、安装ImageMagick 5.4.1,用于图片编辑功能;

2、加入融信的IP白名单,发邮件给xxxxx;

3、通知CMS系统,xxxxx;

各模块说明:(共5个)

1、FinancingMallAssembly:提供XXXX服务;

二、Dubbo API规范

1、禁止jar内加入任何第三方SDK,如必须可以在readme.txt里面进行依赖描述;

2、接口一经发布,名称、参数禁止修改,可通过新增新接口来升级发布;

3、废弃接口添加注解@Deprecated,最少保留一个季度才可做下线处理并必须在readme.txt中说明具体下线日期;

4、接口调用方必须进行登记后方可使用;

readme.txt样例:

*****************************************

风控查询API

*****************************************

依赖说明:

1、spring-common;

2、xxxxxxxxxxxxxxx

@Deprecated:

1、com.edianzu.ecm.Xxxxx,2019-10-02下线,替代接口:com.edianzu.ecm.Xxxxxxx;

 

三、对外接口规范

1、定义:所有提供给非本项目工程调用的接口都属于对外接口,包括dubbo接口和http接口;

2、对外接口在每个项目要有独立项目进行维护;

3、http接口必须对参数进行混淆MD5校验,涉及到钱、用户信息等重要接口加入来源IP校验;

4、项目根目录必须包含readme.txt,必须包含以下信息:

a、调用系统名称

b、开始调用时间

c、调用IP信息

d、作用描述

三、服务规范

一、软件安装在:/data/software/(视硬盘大小进行选择,但software固定),通过软链ln -s  /data/software/xxx_2.x   /usr/local/xxx;

二、项目部署在:

1、service部署在:/data/deploy-service;

2、web部署在:/data/deploy-web;

三、日志最少保存最近7天,必须要有自动清理配置;

1、Nginx日志保存路径:/data/logs/nginx/xxx.log;

2、Tomcat日志保存路径:/data/logs/tomcat-xxx/xxx.log;

3、Service日志保存路径:/data/logs/service/xxxx/xxx.log;

四、Tomcat配置要求:

1、统一使用版本:Apache Tomcat/7.0.xx

2、修改日志配置文件:logging.properties,关停以下日志输出:host-manager、localhost_access_log、localhost、manager;

3、修改server.xml,按需调整监听端口,注释AJP监听:

4、修改server.xml,禁用autoDeploy功能,设置autoDeploy=false;

5、根据需要调整JVM参数;

6、清空webapps下所有目录和文件;

五、所有线上服务争取拥有四级,最少需具备:2和4,时项目大小启用1和3;

1、dev-xxx.edianzu.cn:开发环境,用于开发人员使用,可以随时重启、调试;

2、test-xxx.edianzu.cn:测试环境,用于测试人员使用,更新和重启知会测试童鞋;

3、gray-xxx.edianzu.cn:灰度环境,用于线上服务备份、无感知更新切换和线上更新后确认;

4、xxx.edianzu.cn:线上环境,用于正式对外响应服务;

五、服务上线:

1、所有SQL通过效率和安全自检;

2、所有提供给测试的接口、权限进行剔除;

3、定时任务全部接入分布式任务调度平台;

4、日志接入ELK服务;

5、通过安全小组的安全审查;

6、接入服务监控平台;

7、部署服务:

a、群发短信、邮件上线,必须第一次空转输出日志,进行确认;

b、群发类上线应用,必须有小范围灰度使用确认;

c、APP发布更新,必须先版本更新确认后再放开更新提醒;

d、有备机服务更新,更新备机确认正常,流量切换到备机,然后更新另外一台并且设定为备机;

你可能感兴趣的:(规范)