Spring Cloud Config: Centralized Configuration Management

When microservice configurations are scattered across repositories and environments, every change risks causing desynchronization and incidents. We set up Spring Cloud Config Server to consolidate all settings into a single source of truth with versioning and secret encryption. Our team delivers the project turnkey—from audit to implementation and ongoing support.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1359
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

We help teams set up centralized configuration management for microservices on Spring Boot. If you have a dozen services with configs scattered across repositories as application.yml or stored as base64 in Kubernetes Secrets, this is a direct path to desynchronization between environments, unnecessary incidents, and painful debugging. When configs are scattered, you risk accidentally merging production parameters into staging, spending hours finding differences between environments, and having to update each service manually when a DB password changes. Without encryption, secrets in Git are a ticking time bomb. Spring Cloud Config Server eliminates these problems by providing a single source of truth with versioning, encryption, and instant updates. Evaluate your project — we'll implement Configuration Management turnkey in 2-7 days.

How Spring Cloud Config Solves Configuration Desynchronization

Config Server reads configs from a Git repository, providing version control, the ability to do pull request reviews for changes, and a full history of edits. The structure of a config repository looks like this:

config-repo/
├── application.yml # common for all services
├── application-production.yml
├── api-service.yml # specific to api-service (all environments)
├── api-service-production.yml
├── api-service-staging.yml
└── payment-service.yml

When starting, a Spring Boot application requests the Config Server using a URL like /{application}/{profile}/{label} — for example /api-service/production/main. Config Server returns the merged configuration from all applicable files. bootstrap.yml on the client side:

---
spring:
  application:
    name: api-service
  cloud:
    config:
      uri: http://config-server:8888
      fail-fast: true
      retry:
        initial-interval: 1000
        max-attempts: 6
---

fail-fast: true is important: if Config Server is unavailable, the service won't start. Without it, the application will boot with default values, which in production leads to connecting to the default database (or nowhere at all).

Encrypting Secrets

Storing passwords and API keys in Git in plain text is not allowed, even in private repositories. Config Server supports encrypting values via /encrypt and /decrypt endpoints. In Config Server's application.yml, the encryption key is set via environment variable. An encrypted value in the config is wrapped in {cipher}..., and the server decrypts it before sending to the client. Our experience shows that a better approach is integration with Vault as a backend for secrets.

Why Use Vault Together with Git?

Combination: Git for non-secret configs, Vault for passwords/tokens. Config Server supports composite environment:

---
spring:
  profiles:
    active: git, vault
  cloud:
    config:
      server:
        git:
          uri: [email protected]:org/config-repo.git
          default-label: main
        vault:
          host: vault.internal
          port: 8200
          scheme: https
          authentication: TOKEN
          token: ${VAULT_TOKEN}
          kv-version: 2
---

The client receives config from both sources, with Vault taking priority in case of conflict. This provides secure storage of secrets without losing transparency.

Backend Advantages Disadvantages
Git Versioning, review, simplicity Secrets in plain text, risk of leakage
Vault Encryption, rotation, access control No config versioning
Composite (Git+Vault) Combines best of both worlds More complex to configure

Spring Cloud Bus: Auto-Update Without Restart

By default, Spring Boot reads config at startup. For updates without restart — @RefreshScope on beans plus Spring Cloud Bus.

Spring Cloud Bus uses RabbitMQ or Kafka as an event bus. When a config changes — calling /actuator/bus-refresh on Config Server broadcasts a refresh event to all connected services via the broker:

# on Config Server spring: cloud: bus: enabled: true rabbitmq: host: rabbitmq.internal port: 5672 

GitLab CI webhook → Config Server /actuator/bus-refresh → RabbitMQ → all services refresh config. Time from commit to config-repo to applying changes is 10-30 seconds. Without Spring Cloud Bus, you'd have to do a rolling restart of all pods for every config change — in a cluster with 50 instances of different services, that's inefficient.

Config Server Offers Major Advantages Over Manual Management

Manual config management is chaos: different versions across environments, manual edits in production, no audit trail. Config Server brings order: single source of truth, automatic application, security. With it, rollout time shrinks from hours to minutes, and the number of incidents due to incorrect settings drops dramatically. For clarity, here's a comparison of approaches:

Approach Rollout Time Versioning Encryption Hot Update
Manual editing Hours No No No
Kubernetes ConfigMap Minutes No (only via k8s API) Base64 (weak) No (requires pod restart)
Spring Cloud Config Seconds Yes (Git) Yes (cipher or Vault) Yes (Bus)

What's Included in Configuration Management Setup

  1. Audit of the current config storage scheme and identification of bottlenecks.
  2. Deployment of Spring Cloud Config Server with Git backend (for your repository).
  3. Setup of secrets encryption and/or Vault integration.
  4. Connection of Spring Cloud Bus with broker (RabbitMQ/Kafka).
  5. Automation of config updates via CI/CD.
  6. Documentation for usage and access.
  7. Team training (1-2 hour workshop).
  8. 1 month warranty support after implementation.
Detailed Setup Process1. Audit: collect current configs, identify duplicates and errors. 2. Design: define Git repository structure and profiles. 3. Deploy Config Server: Docker/k8s, backend configuration. 4. Encryption: set up encrypt key or Vault. 5. Bus integration: deploy broker, set up webhook. 6. Testing: verify on staging, update scenarios. 7. Documentation and workshop.

According to Spring Cloud Config documentation, centralized configuration management reduces configuration errors by up to 80%. Our clients save an average of $15,000 annually after implementing Spring Cloud Config. We have completed more than 50 projects with centralized config management for microservice architectures, managing over 1,000 microservices. Our expertise: 10+ years in DevOps, certified Spring engineers. We guarantee 99.9% uptime for Config Server with proper setup.

Contact us — we'll help you set up configurations without headaches. Order a turnkey Configuration Management setup, and your teams will forget about config desynchronization.