Apollo
https://github.com/ctripcorp/apollo/wiki
1、简介
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
2、特征
- 统一管理不同环境、不同集群的配置
- 配置修改实时生效(热发布)
- 版本发布管理
- 灰度发布
- 权限管理、发布审核、操作审计
- 客户端配置信息监控
- 提供Java和.Net原生客户端
- 提供开放平台API
- 部署简单
3、使用
3.1创建项目
(1)打开apollo-portal主页
(2)点击“创建项目”
(3)输入项目信息
部门:选择应用所在的部门
应用Appld:用来标识应用身份的唯一id,格式为string,需要和客户端app.properties中配置的app.id对应
应用名称:应用名,仅用于界面展示
应用负责人:选择的人默认会成为该项目的管理员,具备项目权限管理、集群创建、Namespace创建等权限
(4)点击提交
3.2项目权限分配
项目管理员权限设置:点击”管理项目”--->搜索需要添加的成员并添加
配置编辑、发布权限:点击“授权”--->分配修改权限|分配发布权限
3.3添加配置项
通过表格添加配置项:点击“新增配置”--->添加配置--->点击“提交”
通过文本模式编辑:点击“文本--->点击“修改配置”--->修改配置项--->点击“提交”
3.4发布配置
3.5应用读取配置
3.6回滚以发布配置
4、提问
Q1:Apollo的作用是什么?
A: Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
Apollo支持4个维度管理Key-Value格式的配置:
1.application(应用)
2.environment(环境)
3.cluster(集群)
4.namespace(命名空间)
Q2:使用了Apollo产品之后带来了哪些好处?
A: 配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
(统一管理不同环境、不同集群的配置配置修改;实时生效(热发布)版本发布管理;
灰度发布;权限管理;发布审核;操作审计客户端配置信息监控;提供Java和.Net原生客户端;提供开放平台;API部署简单)
Q3:业界类似或者更好的产品?
A: 类似产品:Spring Cloud Config | Netflix archaius | disconf
https://zhuanlan.zhihu.com/p/62191330?utm_source=com.alibaba.android.rimet&utm_medium=social&utm_oi=56689856348160(对比链接)
Spring Cloud Config的精妙之处在于它的配置存储于Git,这就天然的把配置的修改、权限、版本等问题隔离在外。通过这个设计使得Spring Cloud Config整体很简单,不过也带来了一些不便之处,个人目前再用Apollo。