Modern Application Configuration in Kubernetes
Link |
https://springone.io/2021/sessions/modern-application-configuration-in-kubernetes |
Author(s) |
Craig Walls as Engineer, VMware |
Length |
26:49 |
Date |
07-09-2021 |
Language |
English 🇺🇸 |
Track |
Architecture |
Rating |
⭐⭐⭐⭐⭐ |
-
✅ Very catchy speech, an excellent introduction to the environment properties management problem and comparison of approaches
-
⛔ The speaker has only one session
"Spring Cloud Config vs. K8S Config-maps and secrets."
Spring applications environment configuration is based on Spring Environment Abstraction as of Spring 3.1 (application.properties
, application.yml
, command-args, JVM system properties…).
They can be in the filesystem and are very difficult to audit and manage across multiple applications and instances.
-
Spring Environment Abstraction is extensible and has a solution for versioned (Git, Vault, DB, CredHub…), audited (git log) and centralized configuration - Spring Cloud Config Server.
-
Such configuration must be read from the server and merged into Environment - Spring Cloud Config Server client library.
-
Although Spring Config Server/Client can run on K8S, it must be merged into Resources, that are K8S native, like config-maps and secrets - Tanzu.
Spring Cloud Config: Central management of properties, can be versioned, can be audited, HTTP-based property consumption, probably should be secured, requires client-side library or code.
K8S Config-maps and secrets: Doesn’t require special client code, K8S-native, not centrally managed, versioning/auditing is not built-in, can leverage K8S-native security.