Chapter 59. Maintaining Service Levels with Feature Flags

Dawn Parzych

Cloud engineers are responsible for designing, monitoring, and deploying applications to the cloud. These applications must be scalable, reliable, available, and fault-tolerant. That’s no small feat. The need to continuously integrate and deploy new features may be at odds with maintaining acceptable service levels.

Customer demand for new features and capabilities is driving companies to push features out faster, but those same customers also expect available and reliable application performance. How do you balance these conflicting priorities? Implementing a CI/CD pipeline with a battery of automated tests is the first step. But as applications grow, so will the differences between staging and production—impacting your ability to find all bugs before your customers do.

Building a CI/CD pipeline is not enough because staging is not production. You need to put safeguards in place to safely deploy, test, and release features in production without negatively impacting customers and the bottom line.

Pushing out new features can result in service outages, no matter how much testing you perform. You need to be able to deploy code without releasing it to all users via feature flags.

Decoupling feature releases and code deploys with feature flags makes it possible for you to do the ...

Get 97 Things Every Cloud Engineer Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.