Q&A: Fixing the difficulty of stale characteristic flags

[ad_1]

As we noticed final week with what occurred on account of a nasty replace from CrowdStrike, it’s extra clear than ever that firms releasing software program want a option to roll again updates if issues go incorrect. 

Within the most up-to-date episode of our podcast, What the Dev?, we spoke with Konrad Niemiec, founder and CEO of the characteristic flagging instrument, Lekko, to speak concerning the significance of including characteristic flags to your code, but additionally what can go incorrect if flags aren’t correctly maintained.

Right here is an edited and abridged model of that dialog:

David Rubinstein, editor-in-chief of SD Occasions: For years we’ve been speaking about characteristic flagging within the context of code experimentation, the place you possibly can launch to a small cohort of individuals. And in the event that they prefer it, you possibly can unfold it out to extra individuals, or you possibly can roll it again with out actually doing any injury if it doesn’t work the best way you thought it might. What’s your tackle the entire characteristic flag state of affairs?

Konrad Niemiec, founder and CEO of Lekko: Characteristic flagging is now thought of the mainstream method of releasing software program options. So it’s undoubtedly a follow that we would like individuals to proceed doing and proceed evangelizing.  

After I was at Uber we used a dynamic configuration instrument referred to as Flipper, and I left Uber to a smaller startup referred to as Sisu, the place we used one of many main characteristic flagging instruments available on the market. And once I used that, though it allow us to characteristic flag and it did clear up a bunch of issues for us, we encountered totally different points that resulted in danger and complexity being added to our system. 

So we ended up having a bunch of stale flags littered round our codebase, and issues we would have liked to maintain round as a result of the enterprise wanted them. And so we ended up in a state of affairs the place code turned very troublesome to take care of, and it was very arduous to maintain issues clear. And we simply ended up inflicting points left and proper.

DR: What do you imply by a stale flag?

KN: An implementation of a characteristic flag typically appears like an if assertion within the code. It’ll say if characteristic flag is enabled, I’ll do one factor, in any other case, I’ll do the outdated model of the code. That is the way it appears like whenever you’re really including it as an engineer. And what a stale flag will imply is the flag will probably be all the best way on. So that you’ll have absolutely rolled it out, however you’re leaving that ‘else’ code path in there. So that you principally have some code that’s just about by no means going to get run, nevertheless it’s nonetheless sitting in your binaries. And it nearly turns into this zombie. We prefer to name them zombie flags, the place it type of pops up whenever you least anticipate them. You suppose they’re lifeless, however they arrive again to life.

And this typically occurs in startups which can be attempting to maneuver quick. You wish to get options out as quickly as doable so that you don’t have time to have a flag clear replace and undergo and categorize to see when you ought to take away all these things from the code. And so they find yourself accumulating and probably inflicting points due to these stale code paths.

DR: What sort of points?

KN: So a simple instance is you’ve some kind of untested code based mostly on a mixture of characteristic flags. Let’s say you’ve two characteristic flags which can be in an identical a part of the code base, so there are actually 4 totally different paths. And if certainly one of them hasn’t been executed shortly, odds are there’s a bug. So one factor that occurred at Sisu was that certainly one of our largest clients encountered a difficulty once we mistakenly turned off the incorrect flag. We thought we have been type of rolling again a brand new characteristic for them, however we jumped right into a stale code path, and we ended up inflicting an enormous problem for that buyer.

DR: Is that one thing that synthetic intelligence may tackle as a option to undergo the code and counsel eradicating these zombie flags?

KN: With present instruments, it’s a very handbook course of. You’re anticipated to simply undergo and clear issues up your self. And that is precisely what we’re seeing. We predict that generative AI has an enormous function to play right here. Proper now we’re beginning off with easy heuristic approaches in addition to some generative AI approaches to determine hey, what are some actually difficult code paths right here? Can we flag these and probably deliver these stale code paths down considerably? Can we outline allowable configurations? 

One thing we see as an enormous distinction between dynamic configuration and have flagging itself is that you would be able to mix totally different flags or totally different items of dynamic conduct within the code collectively as one outlined configuration. And that method, you possibly can cut back the variety of doable choices on the market, and totally different code paths that you must fear about. And we expect that AI has an enormous place in bettering security and lowering the chance of utilizing this type of tooling.

DR: How broadly adopted is using characteristic flags at this level?

KN: We predict that particularly amongst mid market to giant tech firms, it’s most likely a majority of firms which can be presently utilizing characteristic flagging in some capability. You do discover a good portion of firms constructing their very own. Usually engineers will take it into their very own arms and construct a system. However typically, whenever you develop to some degree of complexity, you rapidly notice there’s lots concerned in making the system each scalable and likewise work in a wide range of totally different use instances. And there are many issues that find yourself developing on account of this. So we expect it’s a great portion of firms, however they could not all be utilizing third-party characteristic flagging instruments. Some firms even undergo the entire lifecycle, they begin off with a characteristic flagging instrument, they rip it out, then they spend important effort constructing comparable tooling to what Google, Uber, and Fb have, these dynamic configuration instruments.


You might also like…

Classes realized from CrowdStrike outages on releasing software program updates

Q&A on the Rust Basis’s new Security-Essential Rust Consortium

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *