Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
As your simple Rails app grows into a larger system or set of systems, using simple constants and Yaml files for configuration may no longer suffice. The meaning of 'configuration' expands to include business logic alongside the customary hostnames and timeout intervals; the rate at which configuration changes are required increases; non-engineers begin to require the ability to make configuration changes themselves; different environments require different configurations. This presentation will examine several patterns that can be applied to handle these issues, keeping iteration team high and reducing the burden on your engineering team. We'll create and iterate on a simple game as a case study to illustrate the value of these principles in practice, and also look at a few open source projects that integrate some of these concepts. Topics: * moving configuration values out of source * sharing configuration across multiple applications/services * working with sensitive configuration data (eg API keys) * dynamically updating configuration without deployments or restarts * cascading/overlaying configuration values based on environment and context * running experiments and A/B tests * change control * testing and multi-stage deployment of configuration changesets * allowing non-developers to change configuration values Help us caption & translate this video! http://amara.org/v/FGaS/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this engaging presentation titled "Configuration Management Patterns," Beau Harrington discusses the complexity of managing configurations in modern Rails applications as they scale. The session begins with an acknowledgment of the common perception of configuration management, often associated with tools like Chef and Puppet, and sets the stage for a broader discussion on patterns for effective management of configurations within growing systems. Key points covered in the talk include: - **Defining Configuration:** Harrington provides a broad definition of configuration, encompassing all values that might need sharing or changing across applications, including settings like hostnames, user credentials, feature flags, and translations. - **Case Study - Kingdoms of Camelot:** He illustrates the concept using his experience working on the mobile game "Kingdoms of Camelot," highlighting the need to manage over 25,000 configuration values, which cannot be efficiently handled through static YAML files alone. - **Configuring for Context:** The talk emphasizes the need for configuration to adapt based on context, including different environments, server roles, and regions. Harrington introduces composite configurations, which allow for hierarchical settings tailored to specific contexts. - **Decoupling Configurations from Source Code:** Harrington suggests moving configurations out of source control and incorporating them into a build process, effectively treating configuration files like build artifacts which can be versioned and accessed independently. - **Dynamic Configuration Updates:** A significant part of the presentation focuses on techniques for dynamically updating configuration without requiring deployments or service restarts. He discusses using background threads for polling configuration changes. - **Empowering Non-Engineers:** The approach not only streamlines configuration management for engineers but also empowers non-developers, such as game designers, to make configuration changes directly, thereby reducing dependency on engineering resources. - **Testing and Change Control:** The importance of rigorous testing — both technical QA and play-testing QA — is emphasized before deploying configuration changes, as even minor alterations can significantly affect user experience in gaming contexts. - **Open Source References:** The presentation ends with references to useful tools and practices in the industry, including Netflix's architectural patterns and tools for configuration management, indicating that the principles discussed are part of a larger movement towards more robust and flexible configuration management strategies. The main conclusion of the talk is that proper configuration management is crucial for maintaining control and flexibility as applications grow and evolve. By employing the discussed patterns, organizations can streamline their processes, avoid configuration bottlenecks, and enhance overall efficiency.
Suggest modifications
Cancel