 Hello, I'm Cesar Cervéter, I'm a technical marketing manager at GitLab. In this segment, I'm going to be covering a new feature in GitLab 13.5 called Feature Flags Flexible Rollout Strategy. This new feature or capability enables the feature for a percentage of page views with configurable consistency of behavior. It leverages an open source project called Unleash to implement this activation strategy called Flexible Rollout. You can configure the consistency to be based on user IDs, session IDs, random and available ID, and the rollout percentage could be anywhere from 0 to 100%. What does it matter? To customers and prospects, it enables them to define the stickiness based on session ID, user ID or random, which is no stickiness. And this gives them more control over the rollout and allows them to support stickiness for anonymous users. They're also able to experiment with variations of their applications in production. And also, they can leverage this feature to segment their users and to do A-B testing. And more, here's some resources. There's a link to the documentation, a link to the issue that implemented or that address the implementation of this capability. And some things to follow. You can check out our progressive delivery information in our CD category direction and the link is right there. So let's jump into the demo. Here I have a project called Spring MVC JPA in which I have implemented a feature flag. And the feature flag is right here. It's called FF1. And let's look into it. This feature flag has two strategies. It has one for staging. It will offer the feature just for a user ID called Mickey at Disney.com. And for the production environment, it will do a percent rollout of 50% based on available ID. Available ID, the way it works is if the user is logged in, it will make the behavior consistent based on the user ID. If the user is anonymous, it will make the behavior consistent based on the session ID. And if there's no user ID or session ID, the feature is enabled for the selected percentage of page views randomly. So in this case, it's 50%. And this, the specific feature consists of a list of products that you will see in a second that they may be ordered by ID or by name. And the feature actually orders them by name, not by product ID. So let's go to the environments. And let's do, we can do production first. Here's the sign in. So let's sign in as Pluto first. And as you can see here, the products are ordered by name, which is the feature. So Pluto got the feature. So that's one user. I'm going to try with four users. So let's try with the second user, which is who is magic. And magic also got the feature. As you can see, the products are ordered by name. So that's two out of four. Let's try with Mickey. Mickey did not get the feature. As you can see the products are ordered by product ID, not enough America order by name. And the last one is Hulk. And Hulk is did not get the feature. So that's two out of two. So that's 50%. And in production that was the strategy. So let's go to staging. And in staging, let's try the same user IDs. And the other strategy that was the Mickey was going to be the only one getting the feature. So Pluto did not get the feature. Magic did not get the feature. Mickey got the feature right there. He was specifically targeted and Hulk should not get the feature. Yeah, so Hulk did get the feature. So in order to enable feature flags, you need to do a few things within your project. The first thing you need to do is define some variables. And here the variables you need to define are the unleash instance ID and the unleash URL. If we reveal the values, you will see these values here. And these values you get from the feature flex flex configuration settings. So we exit this one. Let's just go here. Here if you click on the configure button. These are the values that you see in the variables right there. Okay, so you just copy and paste those to the variables. And then the next thing you need to do is you need to update your source code to use these variables and the feature flag. So let's go to believe it's this one here. There we go. Please ignore the debugging statements that I left in there. But basically in this, in this class, I have a, I'm instantiating configuration for leash here and I'm passing the instance ID and the URL that came through via these environment variables, as well as the Gillib environment variable which in our case is going to be either production or staging. And then the next thing you need to do is wherever you want to enable this feature, you need to have this if statement if the features enable and you pass the feature flag name. In this case, if the features enabled the product list is ordered else if it's not enable the product list is just ordered by product ID. Very good. So that concludes this segment. Thank you very much.