Overview
The article discusses Flipr, a dynamic configuration management tool developed by Uber to facilitate rapid and safe changes across their extensive software systems. It highlights Flipr's architecture, features, and how it enables developers to implement changes without compromising reliability or productivity.
What You'll Learn
1
How to implement dynamic configuration management using Flipr
2
Why feature flags are essential for safe code deployment
3
How to utilize runtime context for advanced configuration scenarios
Prerequisites & Requirements
- Understanding of configuration management concepts
- Familiarity with software deployment practices(optional)
Key Questions Answered
What is Flipr and how does it improve configuration management?
Flipr is a dynamic configuration management tool that allows Uber to implement changes quickly and safely across its software systems. It supports features like feature flags and runtime context, enabling developers to adjust application behavior without redeploying code, thus enhancing productivity and reliability.
How does Flipr handle runtime context for configuration values?
Flipr allows properties to have multiple values per key based on runtime context, which means it can return different values depending on user attributes or environmental conditions. This flexibility is crucial for scenarios where decisions need to be made dynamically, such as user location or time-based rules.
What safety features does Flipr provide for configuration changes?
Flipr incorporates safety features such as peer reviews for changes, access control, and incremental rollouts. These measures ensure that only authorized users can modify configurations and that changes can be gradually applied, minimizing the risk of widespread issues.
What is the scale of Flipr's usage at Uber?
Flipr manages over 350,000 active properties and handles approximately 150,000 changes per week. It supports over 700 services across more than 50,000 hosts, generating around 3 million queries per second for backend systems.
Key Statistics & Figures
Active properties managed by Flipr
350,000
This figure illustrates the scale at which Flipr operates within Uber's infrastructure.
Weekly configuration changes handled
150,000
This highlights the dynamic nature of Uber's software environment and the need for robust configuration management.
Queries per second for backend systems
3 million
This demonstrates the high demand and performance requirements of Uber's services.
Key Actionable Insights
1Implementing feature flags can significantly enhance your deployment strategy, allowing for safer rollouts and quick reversions if issues arise.By using feature flags, teams can deploy code without exposing new features to all users immediately, reducing the risk of negative impacts on user experience.
2Utilizing runtime context in configuration management can provide tailored experiences for users based on specific conditions.This approach allows developers to create more dynamic applications that respond to user needs in real-time, enhancing engagement and satisfaction.
3Regularly review and update configuration management practices to ensure they align with evolving business needs.As systems grow and change, maintaining an effective configuration management strategy is crucial for operational efficiency and reliability.
Common Pitfalls
1
Failing to implement proper access controls can lead to unauthorized changes in configuration.
Without strict access controls, there is a risk that users could inadvertently or maliciously alter configurations, leading to system instability or security vulnerabilities.
2
Neglecting to monitor the effects of configuration changes can result in undetected issues.
Monitoring is essential to catch any negative impacts from changes early, allowing for quick rollbacks and minimizing disruption to users.
Related Concepts
Dynamic Configuration Management
Feature Flags
Runtime Context In Applications
Configuration Management Best Practices