Configuration
Explore techniques to properly handle configuration files and services in distributed systems. Understand the risks of operator errors and how to securely manage sensitive data like passwords and environment-specific settings. Learn methods to inject configurations or use configuration services for scalable, reliable deployments.
Operator error
Every piece of production-class software has scads of configurable properties containing:
- Hostnames
- Port numbers
- Filesystem locations
- ID numbers
- Magic keys
- Usernames
- Passwords
- Lottery numbers
Get any of these properties wrong and the system is broken. Even if the system seems to work most of the time, it could break at 1 a.m. when Daylight Saving Time kicks in. “Configuration” suffers from hidden linkages and high complexity, two of the biggest factors leading to operator error. This puts the system at risk because configuration is part of the system’s user interface. It’s the interface used by one of its most overlooked constituencies: the developers and operators who support it. Let’s look at some design guidelines for handling instance-level configuration.
Configuration files
The configuration is essentially a file or set of files the instance reads at startup. Configuration files may be buried deep in the directory structure ...