CloudBees Automotive – Erez Rusovsky
Every company is a software company. Nowhere is this more clear than in the automotive industry, where sophisticated powertrain, infotainment, diagnostics and other onboard systems all contribute to a massive growth in the amount of software running on today’s automobiles. Building this mountain of software has become a significant bottleneck and cost center for many companies in the automotive industry. And that challenge is further multiplied by industry compliance requirements like MISRA. In this (brief) presentation, you’ll see how CloudBees Accelerator can help slash the time required to build and verify software, reducing costs and accelerating time-to-market
Transcript
Hi, everybody. I'm Erez Rusovsky and I lead the feature flag management productive at CloudBees. Prior to that, I was co-founder and CEO of Rollout, and I'm good to present to you Rollout feature flag management.
So I'm going to start with a quick introduction and the idea is to talk about what are feature flags and why are we using and how can we use them? And so feature flags are essentially an old engineering technique that has been used for many, many years, and it essentially allows you to take pieces of your code and then control if that feature is exposed in production. It can be a feature, it could be also configuration.
At the very basic form, it's essentially an if statement. So in this example, we have if the payment flag is enabled on this piece of code, lets just do something else. Now, the interesting fact is that the most advanced technological companies are using this heavily.
Some of these companies take pride in the fact that there is not a single line of code that was not gated behind a feature flag at one point. And so, this brings us to rollout. Rollout is an enterprise grade feature flag management platform, and it helps companies manage, release and measure the impact of feature flags at its scale.
And so I'm going to talk now on kind of the four main values or benefits and feature flags. They have many, but there's four main ones. And then we're going to be more specific on the automotive industry.
So when you think about feature flags, again, four main benefits and I'm going to start from the left side. So first of all, there is risk mitigation. Second thing is that you improve the delivery speed and the developer productivity.
The third is that you shorten the feedback loop. So the ability to learn both qualitative and quantitative data. And the third is the ability to kind of, customize the experience.
So have one sort of vision with many experiences, and I'm going to now expand on each and every one of those. So when you think about risk mitigation, the easiest way to think about these two or to understand this is if something goes wrong in that piece of software, that is gated behind the feature flag, You could turn it off instantly. So avoid that emergency release at the middle of the night, avoid the roll back, Turn that feature off either for everybody or for just the affected user.
This is kind of the reactive approach. You can be more proactive around this, so if you have a new feature that you're concerned with on the performance side, you can gradually deploy that features to a subset of the user base, and that could be either percentage based or any subset of the user base. So that is a risk mitigation.
When you think about faster delivery and developer productivity, the basic element over here is doing better C/I's. So managing incomplete code to the main branch while it's turned off. So that feature is incomplete, but I need to merge it, I turn it off, I merge it to the main branch.
I could do trunk based development. So, again feature flags are instrumental in moving to Trunk based development. I could get more deployment predictability so I could find today a late stage for a bug, I could either just pull my lead cycle or fix it really quick.
Again, this feature flags, Turn it off, Continue with your waili cycle and then fix it later. Get that predictability. And then the last piece is, again, if you find problems in production, avoid that overhead and on that massive roll back or patch, etc..
and just turn that off and fix it later. So this is faster delivery and developer productivity. So talking about shortening feedback loops.
One of the key value feature flags is the ability to measure the impact of a feature after it's already been deployed. So you could do that both on the performance side, so think about things like data to New Willig Dynamics two that allow you to understand the key performance of your application, error rates, crash rates, so the idea over here is you deploy something to a subset of the user base, you understand if there's a negative impact and then you decided to roll it to everybody else or roll back. But you could also use this on kind of the business metrics.
So User Analytics is a third party of whom, And you can understand if there's a negative impact to the business KPI's or to the user KPI's and then decide again if to roll this to everybody or roll back. And so the last piece, which I'm going to talk more on, on kind of the automotive specific use cases, is the feature customization. And here the point is that you want to have one software vision that consist of many experiences and feature flags are basically allowing you to get that software level, application level, configuration management solution that allows you to basically tailor the experience based on various attributes, and that can be geolocation related, can be compliance of what you've choose related, or even licensing and payment grade.
So if somebody acquired or bought a service, he's going to get that feature on as opposed to somebody who didn't get that. Ok, so we've talked about the main four values or benefit to future flags. And now we've got to be more talking about, the kind of specifically, to the automotive industry.
So when you think about the automotive industry, the software, of course, of the automotive industry. And there's various areas in which software exists. So starting from kind of the left side, it starts from a mobile application.
In some cases, automotive companies have a mobile app. It continues to Web application or any deck and cloud services that need to connect with the car, and then it goes into the car itself. So the entertainment center, the user experience software that is in to car, and it continues to the car internals and kind of making software.
In these two categories is a lot of software that goes in. Now, when we thought about this, it definitely is divided between what goes into the car and what is not going into the car. And when you look at mobile and cloud, these are standard software infrastructure that everybody is using today.
And all of the benefits feature flags are valuable via the risk mitigation, the speed of delivery, the productivity, the faster feedback loop and the customization piece. What I have hundreds of customers that are using this, of course, cloud applications, backend services and mobile applications, And I implore you to use feature flags and these because this is very benefitial. The interesting piece is of course, is when you go inside the car and you look inside the cars.
There is the making software, the car internals and the kind of entertainment center, the user experience software. Now, the maintenance software of the care internals, this is usually embedded software. And to be completely honest, I don't think that would have failed yet in terms of the overall maturity to stop using features flags around those, but on the entertainment center, the user experience software, There's a lot of value to using feature flags.
And, you know, it's obvious that the risk mitigation and the feedback loop. But I think customization is clever. I think the automotive industry as an industry is super scaled.
So hundreds, millions, thousands of cars everywhere. Very diverse distribution, So many, many geo locations. Also many, many brands of the same company.
We're seeing many cases, the same hardware and the same underlying software that needs to be customized again, based on the geolocation, based on the regulatory environment, based on the brand. And so in this aspect, Feature flags can be instrumental and can help companies manage just one vision with many, many different experiences. Of course, all these mutations that they need to serve.
So one point I want to mention is over the air updates, verses feature flags. Again, this is not maybe not one versus the other, but I just wanted to make that point. Over the air updates are becoming more and more prolific to automotive and essentially what we are doing is updating a vision, you're getting pieces of software from one point to another, presumably to the car itself.
And so that's always going to exist. you want to update the vision at one point, But, The point being is that vision updates are more complicated are risky and the more complex. And so if you have feature flags, you can alleviate some of these risks and have more fine grained control on the feature level.
So we'll look at the updates are going to continue. Feature flags can enable a much easier and safer deployment of these updates. So you cannot go talk about the automotive industry without talking about privacy and security, and this is important to mention.
So RollOut CloudBees support are both fast and self manage, other support, of course most software languages is from Java, C/C++ to iOS and Android. Worth mentioning that the overall architecture, is stateless and I'm going to dove into doing this on the next slide. But the idea here is important.
The idea is that we're not, RollOut If not exposed neither fast or self managed to any of the end user data. We don't know it. We don't read it.
We don't share it. We don't save it. And then the other thing is that if all we have a problem, there's no impact to your services.
And then, of course, so to compliance and privacy sheild, GDPR, and so I've included an architecture slide over here, Because at the end of the day, feature flag goes into your production environment, and I'm sure there's a lot of concerns with that so I want to touch on this briefly. And I'm going to start with the kind of bottom left side. If the bottom left side.
That's the dashboard. That's where you go. And you configure a configuration for a feature flag configuration.
And then we process this on the back and either on the self managed solution or the cloud. We basically generate an adjustant configuration file. We sign it with a public or private key.
We save it to a store, which just is easy for either And then the SDK that you used to get the features either on the mobile phone, The cloud web application, just any backend service or the car itself, they fetch that configuration file and all processing, all the decision should I open this feature, which users should get which configuration, everything happens on the end device with the user data on the end device. That user data is never leaving that device. At least not for RollOut.
It's not on the network. It's not shared with anybody. So that's one thing.
And then the other thing is that the flags themselves, the configurations themselves on the end device always have default value so that even if there's no connectivity, even there's no network, the flags always have values to serve So that they they would never break the operation of the software that they are in. So the last slide, I'm going to end of the presentation with look to the future and what, you know, the things that we're seeing is that feature flags are becoming more and more prevailing in many, many industries. And when you look at the automotive industry, I believe that in the near future we're going to see future flags going even into embedded software in the ECU's themselves.
I think when autonomous driving is going to become more prevailent we going to see feature flags being used. Testing machine learning models, We see this today, not in the automotive industry. So when you have a new machine learning model that you want to test on a little data, you don't want to test this on everybody, you want to gradually test this.
So this is going to be instrument of automotive. And the more we move forward, the more feature flags are going to be used to customize the experience. And it would allow companies to actually even monetize from this.
So the ability to actually allow people to choose what type of feature do they want to buy from their mobile phone and the ability to change that dynamically as they move forward. So we're going to see a lot of customization with features in of course, the automotive industry. So thank you, everybody.
You could watch a live demo. You can book a demo on this URL or watch a demo on this link. I'm also going to be around to answer any question that comes to mind.
Anything related to feature flags both not in the car or in the car. Happy to answer.