美文网首页
版本管理

版本管理

作者: 夜月下 | 来源:发表于2018-03-24 13:25 被阅读27次

Project

所有项目在开始时必须添加版本号,版本号格式参考major.minor[.maintenance[.build]],同时将主版本号加入server.path 作为api版本号。在同一主版本号上不会对原有API进行破坏性重构,所有的破坏性重构都要考虑升级一个大的版本号。小版本号可以新增API,API扩展。
版本号需要体现在log,jar,docker image 和docker container上.
如使用gradle可以用下面命令将gradle的变量导入到application.properties

processResources {
    filesMatching('application.properties') {
        expand(project.properties)
    }
}

spring的配置文件里可以

info.build.version=${version}

在同一版本上开发时,需要加上snapshot。
API版本分为两种情况:

  • 开放给外部调用的API
  • 内部系统调用的API
开放给外部调用的API

指会通过gateway直接暴露微服务外部的API。这种API需要自己去检查每次请求的权限信息。通常对暴露给外部调用的API很难进行大版本的升级,所以在这种API设计的时候需要经过再三的review。

内部系统调用的API

内部系统调用的API指在微服务中为其他的微服务调用而设计的API。要求每个API的提供方需要维护调用API的client,client来控制权限校验和数据传输过程中的加密、压缩等处理。而其他消费方只与client进行集成,而消费方并不需要知道client的实现细节。

严禁出现同一API同时提供给内部和外部使用

GIT

每当版本发布时,git上需要打上版本号的tag。在后续针对该版本维护时,checkout出一条对应的branch对其进行维护,从而避免影响到develop分枝的开发。

CI

每一个project的CI都需要集成contract test保证API的稳定性。API的提供方只需编写provider side的contract test,consumer side的contract test由各个调用方编写并集成在提供方的contract test里。
在deploy的时候,需要固化当前版本号下所依赖的第三方API的版本号以及对应的测试代码的版本号。

版本切换

非主版本号的升级,在通过了contract test时,可以直接停止所有老版本服务而发布新的版本。
主版本号升级时,需要在同时部署新版本服务的同时保留老版本服务,后续通过日志监控API的流量情况逐步减少老版本服务的instance数量直到最后完全停掉老版本。

相关文章

  • 第十三章 版本管理

    版本管理指项目整体版本的演变过程管理。 版本控制指借助版本控制工具追踪代码的每个变更。 一、版本管理 版本管理关心...

  • Git三剑客之Git

    一、Git概述 版本管理的演变1)集中式的版本管理(SVN) 有集中的版本管理服务器 具备文件版本管理和分支管理能...

  • SAP 版本管理、传输请求、版本比较

    版本管理 传输请求 版本比较 一、版本管理 版本管理是什么 版本管理是指对软件开发过程中各种程序代码、配置文件及说...

  • Git基础

    1.1 版本管理 1.1.1 什么是版本管理 版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。 ...

  • git和github

    一. git 1 - 版本管理 ① 什么是版本管理 版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内...

  • 9- 快速上手Linux玩转典型应用- git版本管理

    10- git版本管理 推荐使用git进行代码的版本管理。文档管理。 网盘保存等。没有版本管理。每次提交可以进行回...

  • 规范化版本管理实践

    这里说的版本管理,特指发布的版本管理。而不是指代码的版本管理。当然,代码的版本管理也是数据信息来源的一部分。 规范...

  • 如何用 GVM 管理 Go 项目

    使用 Go 版本管理器管理多个版本的 Go 语言环境及其模块。 Go 语言版本管理器(GVM)是管理 Go 语言环...

  • 版本管理

    今天我主要的工作,就是针对自己编写的业务代码,根据昨天代码评审人员的反馈,进行相应的修改,以便提交到UAT环境,进...

  • 版本管理

    第一章目的 本规范详细规定软件项目版本管理的对象、存储目录、分支、权限、维护等内容,使软件项目版本管理流程化并规范...

网友评论

      本文标题:版本管理

      本文链接:https://www.haomeiwen.com/subject/zosqcftx.html