新一代开源配置中心 - Apollo

Introduction

Apollo(Github主页)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有额外支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

更多产品介绍参见Apollo配置中心介绍

本地快速部署请参见Quick Start

Screenshots

Features

  • 统一管理不同环境、不同集群的配置

    • Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
    • 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等
    • 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖
  • 配置修改实时生效(热发布)
    • 用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
  • 版本发布管理
    • 所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。
  • 灰度发布
    • 支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。
  • 权限管理、发布审核、操作审计
    • 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
    • 所有的操作都有审计日志,可以方便的追踪问题。
  • 客户端配置信息监控
    • 可以方便的看到配置在被哪些实例使用
  • 提供Java和.Net原生客户端
    • 提供了Java和.Net的原生客户端,方便应用集成
    • 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)
    • 同时提供了Http接口,非Java和.Net应用也可以方便的使用
  • 提供开放平台API
    • Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。
    • 不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。
    • 在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,如xml, json,需要对格式做校验。
    • 还有一些使用方如DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。
    • 对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制
  • 部署简单
    • 配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少
    • 目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来
    • Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

Usage

  1. 应用接入指南
  2. Java客户端使用指南
  3. .Net客户端使用指南
  4. 其它语言客户端接入指南
  5. Apollo开放平台接入指南

Design

Development

Deployment

FAQ

Support

Contribution

License

The project is licensed under the Apache 2 license.

时间: 2024-11-08 18:35:11

新一代开源配置中心 - Apollo的相关文章

开源全局配置中心XDiamond

项目地址: https://github.com/hengyunabc/xdiamond 简介 全局配置中心,存储应用的配置项,解决配置混乱分散的问题.名字来源于淘宝的开源项目diamond,前面加上一个字母X以示区别. wiki 设计思路 在线演示 地址:xdiamond.coding.io,登陆选择standard,用户名密码:admin/admin 特性 所见即所得,在管理界面上看到的所有配置即项目运行时的配置 支持groupId,artifactId,version,profile四个维

springcloud(六):配置中心git示例

随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多.某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错.配置中心便是解决此类问题的灵丹妙药. 市面上开源的配置中心有很多,BAT每家都出过,360的QConf.淘宝的diamond.百度的disconf都是解决这类问题.国外也有很多开源的配置中心Apache的Apache Commons Configuration.owner.cfg4j等等.这些开源的软件

我的架构之路 — 配置中心(一)—简单实用的配置中心

离开淘宝,我没有去处于风口的摩拜,而是加入了铁甲网,可能也是一种中庸之道吧.不过铁甲竟然也搬家到了亮马桥河畔,不远处就是摩拜.到铁甲第一个项目就是搭建一个配置中心,实现配置的统一管理,实现配置的动态更新,初步要求就是尽快出来,简单.稳定. 淘宝有diamond,但没有开源(内部绑定太多,很早之前有个开源版本),否决了:百度有disconf,但需要mysql.redis.zookeper.nginx 一堆东西,好吧,经过讨论,咱是要一个简单好用的配置管理,那就pass掉吧. 于是又到GitHub找

配置中心选型

     随着线上项目变的日益庞大,每个项目都散落着各种配置文件:因为采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理.   希望可以满足一下的条件: 1.集中配置,所以的配置文件集中到一个管理平台来治理 2.配置中心修改配置后,可以及时推送到客户端 3.支持大的并发查询   技术调研,配置中心目前有一些开源软件,如下: 1.Qihoo360/QConf 地址:https://github.c

Linux环境部署轻量化配置中心

在使用EDAS开发系统时,需要阶段性进行集成测试.而在单元部署时可以选择windows或linux系统.本文以Linux环境为例,给大家讲解一下如何搭建配置中心环境,并进行应用部署和联调测试. 1.环境准备 虚拟化一台centos7.4系统. 下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso 安装java 1.8 下载地址:http://www.oracle.com/techn

springcloud config 分布式配置中心

一.介绍 1.场景: 微服务系统中,系统多.实例多,如果每个系统都有自己一套配置加载.维护的机制,会导致在生产过程中因为配置问题引发的不必要的沟通成本.故障风险.需要采用分布式配置中心统一管理.统一实现方式. 2.Spring cloud config特性 服务端:存储方式(git.svn.本地文件).配置读取方式(环境化.多项目仓库).安全性(访问密码.加密存储).自动刷新. 客户端:加载远程配置.刷新配置.@refreshscope作用域刷新.集成消息总线. 二.docker中运行gitla

springcloud(九):配置中心和消息总线(配置中心终结版)

我们在springcloud(七):配置中心svn示例和refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了.使用Spring Cloud Bus可以完美解决这一问题. Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点.这会用在广播状态的变化(例如配置变化)或者其他的消息指令.Spr

Rafy 开源贡献中心 - 组织成立,并试运行一月小结

背景 最近两年,工作中虽然大量使用了 Rafy 框架作为各个产品.项目的开发框架.我是 2015 年的年中加入现在这家公司的,由于我个人工作太忙的缘故,一直没怎么编码,Rafy 框架底层的核心成长也比较慢.这两年只是在必须更新时,安排了一些开发者做了很少的一些代码更新. 这几年,Rafy 框架 2.0 版本没怎么大力推广.目标客户不精确.产品的设计有些问题.框架本身的价值也没有被大众认可,这些都需要对框架本身不断地进行更新.由于最近两年编码较少,我也停下来在更高的维度思考了框架 3.0 版本应该

H3C新一代智能管理中心iMC V7上市

近日,H3C发布了新一代智能管理中心iMC V7版本.全新iMC 在管理功能.技术架构.产品性能上实现了全面提升,将帮助用户全面应对云计算.BYOD.大数据等互联网新技术带来的挑战.iMC 是H3C 系列解决方案的统一管控平台,V7的发布是H3C"云网融合"理念的又一次落地.在云时代,IT管理面临着信息共享.资源整合.业务快速部署和业务有效保障的挑战,新一代IT管理必须实现全面融合.业务协同和架构开放.基于此,H3C以"无界管理,深价契合"的理念导向,推出了全 新的