Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shoothzj/apollo

Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
https://github.com/shoothzj/apollo

Last synced: about 2 months ago
JSON representation

Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.

Awesome Lists containing this project

README

        

apollo-logo

English | [中文](https://www.apolloconfig.com/#/zh/README)

# Apollo - A reliable configuration management system

[![Build Status](https://github.com/apolloconfig/apollo/workflows/build/badge.svg)](https://github.com/apolloconfig/apollo/actions)
[![GitHub Release](https://img.shields.io/github/release/apolloconfig/apollo.svg)](https://github.com/apolloconfig/apollo/releases)
[![Maven Central Repo](https://img.shields.io/maven-central/v/com.ctrip.framework.apollo/apollo-client.svg)](https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client)
[![codecov.io](https://codecov.io/github/apolloconfig/apollo/coverage.svg?branch=master)](https://codecov.io/github/apolloconfig/apollo?branch=master)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

Apollo is a reliable configuration management system. It can centrally manage the configurations of different applications and different clusters. It is suitable for microservice configuration management scenarios.

The server side is developed based on Spring Boot and Spring Cloud, which can simply run without the need to install additional application containers such as Tomcat.

The Java SDK does not rely on any framework and can run in all Java runtime environments. It also has good support for Spring/Spring Boot environments.

The .Net SDK does not rely on any framework and can run in all .Net runtime environments.

For more details of the product introduction, please refer [Introduction to Apollo Configuration Center](https://www.apolloconfig.com/#/zh/design/apollo-introduction).

For local demo purpose, please refer [Quick Start](https://www.apolloconfig.com/#/zh/deployment/quick-start).

Demo Environment:
- [http://81.68.181.139](http://81.68.181.139/)
- User/Password: apollo/admin

# Screenshots
![Screenshot](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/docs/en/images/apollo-home-screenshot.jpg)

# Features
* **Unified management of the configurations of different environments and different clusters**
* Apollo provides a unified interface to centrally manage the configurations of different environments, different clusters, and different namespaces
* The same codebase could have different configurations when deployed in different clusters
* With the namespace concept, it is easy to support multiple applications to share the same configurations, while also allowing them to customize the configurations
* Multiple languages is provided in user interface(currently Chinese and English)

* **Configuration changes takes effect in real time (hot release)**
* After the user modified the configuration and released it in Apollo, the sdk will receive the latest configurations in real time (1 second) and notify the application

* **Release version management**
* Every configuration releases are versioned, which is friendly to support configuration rollback

* **Grayscale release**
* Support grayscale configuration release, for example, after clicking release, it will only take effect for some application instances. After a period of observation, we could push the configurations to all application instances if there is no problem

* **Authorization management, release approval and operation audit**
* Great authorization mechanism is designed for applications and configurations management, and the management of configurations is divided into two operations: editing and publishing, therefore greatly reducing human errors
* All operations have audit logs for easy tracking of problems

* **Client side configuration information monitoring**
* It's very easy to see which instances are using the configurations and what versions they are using

* **Rich SDKs available**
* Provides native sdks of Java and .Net to facilitate application integration
* Support Spring Placeholder, Annotation and Spring Boot ConfigurationProperties for easy application use (requires Spring 3.1.1+)
* Http APIs are provided, so non-Java and .Net applications can integrate conveniently
* Rich third party sdks are also available, e.g. Golang, Python, NodeJS, PHP, C, etc

* **Open platform API**
* Apollo itself provides a unified configuration management interface, which supports features such as multi-environment, multi-data center configuration management, permissions, and process governance
* However, for the sake of versatility, Apollo will not put too many restrictions on the modification of the configuration, as long as it conforms to the basic format, it can be saved.
* In our research, we found that for some users, their configurations may have more complicated formats, such as xml, json, and the format needs to be verified
* There are also some users such as DAL, which not only have a specific format, but also need to verify the entered value before saving, such as checking whether the database, username and password match
* For this type of application, Apollo allows the application to modify and release configurations through open APIs, which has great authorization and permission control mechanism built in

* **Simple deployment**
* As an infrastructure service, the configuration center has very high availability requirements, which forces Apollo to rely on external dependencies as little as possible
* Currently, the only external dependency is MySQL, so the deployment is very simple. Apollo can run as long as Java and MySQL are installed
* Apollo also provides a packaging script, which can generate all required installation packages with just one click, and supports customization of runtime parameters

# Usage
1. [Apollo User Guide](https://www.apolloconfig.com/#/zh/usage/apollo-user-guide)
2. [Java SDK User Guide](https://www.apolloconfig.com/#/zh/usage/java-sdk-user-guide)
3. [.Net SDK user Guide](https://www.apolloconfig.com/#/zh/usage/dotnet-sdk-user-guide)
4. [Third Party SDK User Guide](https://www.apolloconfig.com/#/zh/usage/third-party-sdks-user-guide)
5. [Other Language Client User Guide](https://www.apolloconfig.com/#/zh/usage/other-language-client-user-guide)
6. [Apollo Open APIs](https://www.apolloconfig.com/#/zh/usage/apollo-open-api-platform)
7. [Apollo Use Cases](https://github.com/apolloconfig/apollo-use-cases)
8. [Apollo User Practices](https://www.apolloconfig.com/#/zh/usage/apollo-user-practices)
9. [Apollo Security Best Practices](https://www.apolloconfig.com/#/zh/usage/apollo-user-guide?id=_71-%e5%ae%89%e5%85%a8%e7%9b%b8%e5%85%b3)

# Design
* [Apollo Design](https://www.apolloconfig.com/#/zh/design/apollo-design)
* [Apollo Core Concept - Namespace](https://www.apolloconfig.com/#/zh/design/apollo-core-concept-namespace)
* [Apollo Architecture Analysis](https://mp.weixin.qq.com/s/-hUaQPzfsl9Lm3IqQW3VDQ)
* [Apollo Source Code Explanation](http://www.iocoder.cn/categories/Apollo/)

# Development
* [Apollo Development Guide](https://www.apolloconfig.com/#/zh/development/apollo-development-guide)
* Code Styles
* [Eclipse Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml)
* [Intellij Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml)

# Deployment
* [Quick Start](https://www.apolloconfig.com/#/zh/deployment/quick-start)
* [Distributed Deployment Guide](https://www.apolloconfig.com/#/zh/deployment/distributed-deployment-guide)

# Release Notes
* [Releases](https://github.com/apolloconfig/apollo/releases)

# FAQ
* [FAQ](https://www.apolloconfig.com/#/zh/faq/faq)
* [Common Issues in Deployment & Development Phase](https://www.apolloconfig.com/#/zh/faq/common-issues-in-deployment-and-development-phase)

# Presentation
* [Design and Implementation Details of Apollo](http://www.itdks.com/dakalive/detail/3420)
* [Slides](https://github.com/apolloconfig/apollo-community/blob/master/slides/design-and-implementation-of-apollo.pdf)
* [Configuration Center Makes Microservices Smart](https://2018.qconshanghai.com/presentation/799)
* [Slides](https://github.com/apolloconfig/apollo-community/blob/master/slides/configuration-center-makes-microservices-smart.pdf)

# Publication
* [Design and Implementation Details of Apollo](https://www.infoq.cn/article/open-source-configuration-center-apollo)
* [Configuration Center Makes Microservices Smart](https://mp.weixin.qq.com/s/iDmYJre_ULEIxuliu1EbIQ)

# Community
* [Apollo Team](https://www.apolloconfig.com/#/en/community/team)
* [Community Governance](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md)
* [Contributing Guide](https://github.com/apolloconfig/apollo/blob/master/CONTRIBUTING.md)

# License
The project is licensed under the [Apache 2 license](https://github.com/apolloconfig/apollo/blob/master/LICENSE).

# Known Users

> Sorted by registration order,users are welcome to register in [https://github.com/apolloconfig/apollo/issues/451](https://github.com/apolloconfig/apollo/issues/451) (reference purpose only for the community)

携程
青石证券
沙绿
航旅纵横
58转转

蜂助手
海南航空
CVTE
明博教育
麻袋理财

美行科技
首展科技
易微行
人才加
凯京集团

乐刻运动
大疆
快看漫画
我来贷
虚实软件

网易严选
视觉中国
资产360
亿咖通
5173

沪江
网易云基础服务
现金巴士
锤子科技
头等仓

吉祥航空
263移动通信
投投金融
每天健康
麦芽金服

蜂向科技
即科金融
贝壳网
有赞
云集汇通

犀牛瀚海科技
农信互联
蘑菇租房
狐狸金服
漫道集团

怪兽充电
南瓜租房
石投金融
土巴兔
平安银行

新新贷
中国华戎科技集团
涂鸦智能
立创商城
乐赚金服

开心汽车
乐赚金服
普元信息
医帮管家
付啦信用卡管家

悠哉网
梧桐诚选
拍拍贷
信用飞
丁香园

国槐科技
亲宝宝
华为视频直播
微播易
欧飞

迷说
一下科技
DaoCloud
汽摩交易所
好未来教育集团

猎户星空
卓健科技
银江股份
途虎养车
河姆渡

新网银行
中旅安信云贷
美柚
震坤行
万谷盛世

铂涛旅行
乐心
亿投传媒
股先生
财学堂

4399
汽车之家
面包财经
虎扑
搜狐汽车

量富征信
卖好车
中移物联网
易车网
一药网

小影
彩贝壳
YEELIGHT
积目
极致医疗

金汇金融
久柏易游
小麦铺
搜款网
米庄理财

贝吉塔网络科技
微盟
网易卡搭
股书
聚贸

广联达bimface
环球易购
浙江执御
二维火
上品

浪潮集团
纳里健康
橙红科技
龙腾出行
荔枝

汇通达
云融金科
天生掌柜
容联光辉
云天励飞

嘉云数据
中泰证券网络金融部
网易易盾
享物说
申通

金和网络
二三四五
恒天财富
沐雪微信
温州医科大学附属眼视光医院

联通支付
杉数科技
分利宝
核桃编程
小红书

幸福西饼
跨越速运
OYO
叮咚买菜
智道网联

雪球
车通云
哒哒英语
小E微店
达令家

人力窝
嘉美在线
极易付
智慧开源
车仕库

太美医疗科技
亿联百汇
舟谱数据
芙蓉兴盛
野兽派

凯叔讲故事
好大夫在线
云幂信息技术
兑吧
九机网

随手科技
万谷盛世
云账房
浙江远图互联
青客公寓

东方财富
极客修
美市科技
中通快递
易流科技

实习僧
达令家
寺库
连连支付
众安保险

360金融
中航服商旅
贝壳
Yeahmobi易点天下
北京登云美业网络科技有限公司

金和网络
中移(杭州)信息技术有限公司
北森
合肥维天运通
北京蜜步科技有限公司

术康
富力集团
天府行
八商山
中原地产

智科云达
中原730
百果园
波罗蜜
Xignite

杭州有云科技有限公司
成都书声科技有限公司
斯维登集团
广东快乐种子科技有限公司
上海盈翼文化传播有限公司

上海尚诚消费金融股份有限公司
自如网
京东
兔展智能
竹贝

iMile(中东)
哈罗出行
智联招聘
阿卡索
妙知旅

程多多
上汽通用五菱
乐言科技
樊登读书
找一找教程网

中油碧辟石油有限公司
四川商旅无忧科技服务有限公司
懿鸢网络科技(上海)有限公司
稿定科技
搵樓 - 利嘉閣

南京领行科技股份有限公司
北京希瑞亚斯科技有限公司
印彩虹印刷公司
Million Tech
果果科技

昆明航空
我爱我家
国金证券
不亦乐乎
惠农网

成都道壳
澳优乳业
河南有态度信息科技有限公司
智阳第一人力
上海保险交易所

万顺叫车
收钱吧
宝尊电商
喜百年供应链
南京观为智慧软件科技有限公司

在途商旅
哗啦啦
优信二手车
每刻科技
杭州蛮牛

翼支付
魔筷科技
畅唐网络
准时达
早道网校

万店掌
推文科技
Lemonbox
保利票务
芯翼科技

浙商银行
易企银科技
上海云盾
苏州盖雅信息技术有限公司
爱库存

极豆车联网
伴鱼少儿英语
锐达科技
新东方在线
金康高科


soul
驿氪
慧聪
中塑在线
甄云科技

追溯科技
玩吧
广州卡桑信息技术有限公司
水滴
酷我音乐

小米
今典
签宝科技
广州趣米网络科技有限公司
More...

# Awards

The most popular Chinese open source software in 2018

# Stargazers over time

[![Stargazers over time](https://api.star-history.com/svg?repos=apolloconfig/apollo&type=Date)](https://star-history.com/#apolloconfig/apollo&Date)