ChengYingOpenSource / ares

Licence: other
Open source dynamic configuration center with easy deployment and high stability

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to ares

hydra-zen
Pythonic functions for creating and enhancing Hydra applications
Stars: ✭ 165 (+931.25%)
Mutual labels:  dynamic-configuration
Flagr
Flagr is a feature flagging, A/B testing and dynamic configuration microservice
Stars: ✭ 1,776 (+11000%)
Mutual labels:  dynamic-configuration
redconf
sync config from redis or others storage while the config values changed
Stars: ✭ 12 (-25%)
Mutual labels:  dynamic-configuration

Logo

Open source dynamic configuration center with easy deployment and high stability


What is ARES?

Welcome to use Ares dynamic configuration system. The Ares system is developed based on the Java language, a dynamic configuration system with simple deployment and high stability. It allows you to centrally and dynamically manage the configuration in your application and also it allows your application to quickly change the runtime application configuration in a combination of monitoring and pulling.It has a rich configuration management UI to simplify operations, while also ensuring data isolation and flexibility.

overall

Overall architecture

概要


Features

Efficient dynamic configuration

  • Multi-environment and multi-level configuration management to support complex business scenarios and network environments

  • Support websocket mode to facilitate access to non-Java languages

  • Adaptive load balancing on the client side to avoid configuration loss caused by server jitter

  • Based on TCP persistent connection, the monitoring mode makes the configuration take effect in a more real-time manner.

Scalable cluster service

  • The server of distributed deployment forms a cluster through remote coordination

  • Decentralized cluster service, each server has the same external service.

  • The server clustering process does not depend on other middleware

  • It allows the runtime to expand the server cluster.

  • Unified deployment of server side and management side, no additional deployment of SLB is required


Modules

  • ares-biz : The core logic module includes the main configuration management and push processes.

  • ares-client : The client SDK module is responsible for communicating with the server cluster and updating the configuration.

  • ares-client-spring : It is a fast access to SDK based on Spring framework.

  • ares-cluster : It is a decentralized cluster module based on Akka framework.

  • ares-common : It contains a collection of commonly used tool classes and major basic data models

  • ares-dao : Database access layer

  • ares-deploy : Build and deploy programs to protect configuration files

  • ares-model : Data model set

  • ares-webapi : Interface logic module


UserGuides

QuickStart

Deployment

Manual


Design

Architecture

Server

Client

Flow


Performance and restrictions

Our testing environment:

1 server / 50 clients

server specification: 2c4g, JVM -Xmx512m

CilentsNumber StartPushingTime LastReceivedTime ElapsedTime Failure
10 10:34:15.400 10:34:15.482 82ms 0
20 10:39:51.080 10:39:51.183 103ms 0
50 10:58:32.301 10:58:32.490 190ms 0

About

The Ares system is currently in use within the Chengying company and provides stable services:

  • Stable operation for a long time:It has been in stable operation for more than 1 year since it was launched.

  • Support multiple lines of business:Three environment-isolated business lines in the company use 1 sets of Ares dynamic configuration at the same time.

  • Access to many services:A total of 23 online services are supported, including more than 600 pieces of configuration information

  • Support for multiple environments:It supports four sets of environments, such as development environment, test environment, pre-release environment and online environment at the same time.

  • Complete a large number of configuration push:It has made nearly 2000 configuration changes since it was launched.


Planning

  • Grayscale release:It allows the configuration to take effect according to the traffic identification or machine IP, thus making the configuration effective process more smoothly.

  • Smooth expansion:After new machines join the cluster, clients can quickly perceive and load balance.

  • Support for spring annotations:It supports dynamic modification of configuration items for spring annotations

  • Support for multiple development languages:In the future, more development languages SDK will access Ares by means of websocket or TCP.

  • Cloud native deployment:By optimizing the way the cluster is established, it supports deployment in environments such as K8S

  • Extensible management-side permissions:The user can connect his or her own authority system to the management end.


Support

IM communication

钉钉交流

Community communication

preparing...

Expert sharing

preparing...


Team

Avater Github Account Company Role Email
kaneback ChengYing Maintainer [email protected]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].