# Apollo Config — Distributed Configuration Management Center > Apollo is a reliable configuration management system for distributed microservices, providing centralized config management, real-time push, versioning, and gray releases. ## Install Save as a script file and run: # Apollo Config — Distributed Configuration Management Center ## Quick Use ```bash # Start Apollo via Docker Compose git clone https://github.com/apolloconfig/apollo.git cd apollo docker compose -f docker-compose.yml up -d # Access portal at http://localhost:8070 # Default credentials: apollo / admin ``` ## Introduction Apollo is a configuration management center developed by Ctrip (Trip.com Group) for distributed systems. It centralizes application configuration across environments and clusters, enabling real-time config pushes without restarting services. Apollo is widely adopted in production by organizations running Java-based microservice architectures. ## What Apollo Config Does - Centralizes configuration for multiple applications, environments, and clusters in a single portal - Pushes configuration changes to clients in real time (typically under 1 second) - Tracks full version history of every configuration change with rollback support - Supports gray releases to push config changes to specific instances before full rollout - Provides namespace-based config isolation with inheritance and override capabilities ## Architecture Overview Apollo follows a three-tier architecture: the Config Service handles config reading and real-time push via long polling, the Admin Service manages config modifications through the Portal, and the Meta Server acts as a service discovery layer. Clients maintain a local cache for resilience against network failures. Eureka is embedded for internal service registration, and a MySQL database stores all configuration data, audit logs, and release history. ## Self-Hosting & Configuration - Requires Java 8+ runtime and MySQL 5.7+ for persistent storage - Deploy Config Service, Admin Service, and Portal as separate processes for production - Configure `server.properties` with database connection strings and Eureka endpoints - Use environment variables or `-D` JVM flags to set per-environment Meta Server addresses - Docker and Kubernetes Helm charts are available for containerized deployments ## Key Features - Multi-environment management (DEV, FAT, UAT, PRO) from a single dashboard - Access control with per-namespace permissions and operation audit logging - Open API for programmatic config management and CI/CD integration - Client-side caching ensures applications continue running even if Apollo is temporarily unavailable - Supports multiple config formats including properties, XML, JSON, YAML, and plain text ## Comparison with Similar Tools - **Spring Cloud Config** — Git-backed and simple but lacks a management UI, real-time push, and gray release capabilities - **Consul KV** — Lightweight key-value store with watches, but no versioning, rollback, or structured namespace model - **etcd** — Low-level distributed KV store best for infrastructure config rather than application-level settings - **Nacos** — Combines service discovery and config with a similar feature set, but Apollo has a more mature permission and release workflow ## FAQ **Q: Does Apollo support non-Java applications?** A: Yes. Apollo provides an Open API and clients for Go, Python, Node.js, PHP, and .NET in addition to its native Java client. **Q: How does Apollo handle config changes during a deployment?** A: Config changes are pushed in real time via long polling. Applications receive updates without restarting. For staged rollouts, use the gray release feature to target specific instances. **Q: Can Apollo run in Kubernetes?** A: Yes. Official Helm charts are available, and the community maintains Kubernetes-native deployment guides with ConfigMap integration. **Q: What happens if the Apollo server goes down?** A: Clients cache the last-known configuration locally. Applications continue operating with cached values until the server recovers. ## Sources - https://github.com/apolloconfig/apollo - https://www.apolloconfig.com/ --- Source: https://tokrepo.com/en/workflows/asset-8cfde72e Author: Script Depot