系统中变更、依赖和密钥的处理
1. 系统依赖协调与回滚机制
在复杂系统中,完整的系统特性可能涉及多个服务和团队。为了协调系统的依赖关系,我们需要明确某个服务依赖何时部署并准备就绪。一种有效的编程方式是让服务 API 明确描述所部署服务的版本。
若新部署的版本出现问题,可以通过回滚操作快速恢复到上一个版本。回滚是将某个微服务迅速回退到前一个版本的过程。当新版本发布后出现严重错误时,可触发此过程,由于之前的版本已经兼容,因此能在短时间内自信地完成回滚。借助 GitOps 原则,可以使用 git revert 命令创建一个撤销提交,将旧版本恢复回来。
# git revert 示例
git revert <commit_hash>
不过,回滚只是一种临时措施,在此期间,微服务将停止新的部署。应尽快创建一个修复了导致严重部署问题的新版本,以保持正常的发布流程。随着部署频率的增加和检查机制的完善,回滚操作会越来越少。
2. 服务依赖处理
为了让服务能够检查其依赖项是否为正确版本,我们可以让服务通过 RESTful 端点暴露其版本信息。以下是详细步骤:
2.1 服务版本定义
为了清晰了解软件的进展,我们需要为要部署的不同版本命名。由于使用 Git 来跟踪更改,系统中的每个提交都有一个唯一的提交 ID,但它没有特定的模式。因此,我们需要开发一个版本方案,常见的有按发布日期(如 Ubuntu)或采用 major.minor.patch 的方式。
超级会员免费看
订阅专栏 解锁全文
4031

被折叠的 条评论
为什么被折叠?



