News

Microsoft's Abel Wang on the Key to Implementing Advanced DevOps: Feature Flags

Microsoft's Abel Wang will not only be keynoting at the upcoming Visual Studio Live! Austin conference, he'll also be presenting a session on: "Advanced DevOps: Deep Dive into Feature Flags." We recently got a chance to ask him more about exactly how feature flags make all the difference when it comes to implementing DevOps on a higher level in the enterprise:

Why are feature flags required for advance DevOps? What makes them essential?
The end goal of DevOps is to continuously deliver value to our end user. In advanced scenarios, this means I need to implement DevOps at speed. Where every developer check-in potentially can flow into production quickly. I also need the ability to roll features out just as quickly if something goes wrong. In a simple Web app, it's easy enough to roll back a change. But think of a scenario where multiple features are added to a highly complex app, merged into master and once the code reaches production, you realize one of the features is broken and needs to be taken out.

"Feature flags let me easily run experiments using AB testing as well as do things like enable preview features to selected users. Running experiments is vital in advanced DevOps. And the ease of implementing them with feature flags is invaluable."

Abel Wang, Senior Cloud Developer Advocate, Microsoft

How do you do that? Go back to your branches and try to cherry pick the changes? Good luck with that. That's like me getting you a cup of coffee, putting sugar into it and having you tell me, nah, I just want pure coffee. Can you just remove the sugar from that coffee? Uh ... O.K. I can probably do that but it's going to take some time and some serious amounts of work. And you still probably won't get that pure cup of coffee .... But with feature flags, this is a piece of cake. Just flip the switch to the broken feature and bam, you just removed that feature.

In advanced DevOps scenarios, I also need to deploy new features carefully. And by carefully, I mean I need to mitigate the risk of deploying new code. With feature flags, this lets me easily roll my releases out slowly to a small group of people, and slowly increasing that group making sure the new features aren't breaking anything.

Feature flags also let me easily run experiments using AB testing as well as do things like enable preview features to selected users. Running experiments is vital in advanced DevOps. And the ease of implementing them with feature flags is invaluable.

Are feature flags always boolean?
Feature flags absolutely do not have to be boolean. Often, they are but they can be multivariate. A multivariate feature flag is when you define the number and type of variations that can be returned. And based on the returned value, your code can do different things. This allows you to control conditional logic separate from your code base. Which in turn allows you to change how features are configured without needing to redeploy.

What are the main challenges you find that enterprises face in implementing DevOps both safely and quickly?
My teammate Steve Murawski always says "Slow is smooth and smooth is fast." Trying to move quickly into production is hard and risky. The faster you try to go, the more risk you take on. The biggest challenge is ultimately, how can I balance moving quickly while still mitigating risk.

What benefits can DevOps at speed really give enterprises?
We want to continuously deliver value to our end users. Notice I didn't just say features. Because we can continuously deliver feature after feature. But if that's not providing real value to our end users, what's the point? But if we can deliver value faster, our end users win. Think of how Microsoft used to work. We delivered new versions once every three to four years. If someone reported a bug, I could fix it that day. But the end user wouldn't see that fix for 3 years!!!! Compare that to today, where multiple bug fixes can go out each day for VSTS. If there is a blocking bug for you, we can have that fixed and pushed out to your ring extremely quickly!

What specific tools does Microsoft offer to help enterprises implement advanced DevOps with feature flags?
Can I tell you a secret? My favorite solution is only halfway a "Microsoft" solution. I love using LaunchDarkly with VSTS. LaunchDarkly is a third-party Software-as-a-Service implementation of feature flags that integrate with VSTS really nicely.

Want more? Consider joining your peers and meeting Abel and other experts in person at Visual Studio Live! in Austin.

About the Author

Becky Nagel is the former editorial director and director of Web for 1105 Media's Converge 360 group, and she now serves as vice president of AI for company, specializing in developing media, events and training for companies around AI and generative AI technology. She's the author of "ChatGPT Prompt 101 Guide for Business Users" and other popular AI resources with a real-world business perspective. She regularly speaks, writes and develops content around AI, generative AI and other business tech. Find her on X/Twitter @beckynagel.

comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube