代码资产清单与版本管理:保障系统可观测性与稳定性
在软件开发与部署的过程中,对代码资产的有效管理以及版本的合理控制至关重要。这不仅有助于我们了解系统的当前状态,还能在出现问题时快速定位和解决。下面将详细介绍状态化资产清单和版本管理的相关内容。
状态化资产清单
状态化资产清单是一个可查询的清单,涵盖了从代码到已部署资产的所有信息,它能帮助我们回答关于系统当前状态的问题。构建这个清单的首要目标是拥有一个可查询的系统记录,用于详细列出已部署的资源,包括生产环境和非生产测试环境。
构建难度取决于代码的部署位置和类型。对于一些数据中心使用虚拟化硬件的组织,如果虚拟机名称固定且变化不大,可手动维护一个静态列表,记录应用程序名称和对应的虚拟机。而在 IaaS 或 CaaS 环境中,由于资源弹性供应,需要向云提供商查询当前已部署资产的列表。
GitOps 的局限性
GitOps 是一种将期望状态存储在 Git 中的方法,但它无法准确反映已部署环境的真实状态。以 Kubernetes 为例,当在 Git 中提交清单并触发部署操作时,Kubernetes 控制器会对清单进行修改,导致实际部署的内容与 Git 中的清单不同,而且不同的 Kubernetes 集群可能会有不同的结果。因此,即使通过 Git 控制所有意图操作,也无法在 Git 中获得已部署环境的真实全貌。
Spinnaker 的优势
Spinnaker 系统通过主动轮询实时环境来获取已部署基础设施的状态,支持多个云提供商。通过一次 API 调用,就能获取跨多个云平台的已部署基础设施的一致表示,实现了资产清单的单窗体验。其优势主要体现在以下两个方面: <
超级会员免费看
订阅专栏 解锁全文
627

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



