现状:
- 容器云平台在能力输出的范围中,运维主管需要将更多的目光聚焦于基于容器部署运营的服务或微服务。业务应用的容器化、微服务化、分布式化下的应用服务的配置是介于支撑层和服务层中间最关键的一环;
- 实现服务配置的解耦合、独立部署,是构建服务、微服务生态的重要基础。容器云服务配置中心根据业务和场景的不同也有不同的需求;
- 本题中的服务配置,指的是应用服务的参数配置。服务参数配置是容器云服务化管理中重要的内容之一;
- 目前的痛点,目前大多数使用配置文件,部署时上传到容器中的文件目录下,再由容器中的服务读去这个配置文件。这种方式简单,但无法实现运行时配置参数的动态更新。
需求:
- 解耦需求:容器云平台是一个基础设施,其上部署运行的应用和服务是独立的个体,他们之间不能耦合在一起。所以配置中心最好把容器云平台配置和其上部署运行的应用服务配置隔离;
- 平台化需求:应用服务的参数配置中心是独立于容器云平台的一个独立组件,不仅可以服务于容器云平台,也可以服务于其他服务化甚至是非服务化平台;
- 去中心化需求:采用容器化,一个服务的服务实例可能有几个、几十个、甚至几百个,同一服务的所有服务实例应该共享一套配置数据。这个配置数据需要做到唯一来源。不管是通过配置文件,或者通过etcd,或者JMS,或者其他,必须有一个中心化的管理终端,比如提供一个UI,由这个配置管理UI来统一配置管理下发配置参数数据给所有的服务实例;
- 延迟需求:支持运行时动态更新,涉及到更新的延迟下发问题。支持不同业务需求对延迟时间的长短的可配置;
- 多环境多版本需求:能够区分版本和环境,可以实现应用和服务的灰度,回滚,历史基线的查询。
方案要求: