 This is the Feature Flags page, and this is a list of features that are behind the flag. I can go and select a feature and just turn it off. It immediately will disable it to users. The benefit of using Feature Flags is that it allows you to release new features and if something is going not well in production, you come here and just disable it. And you don't need to roll back to a previous version and you can lose some features that are working well and you don't want to lose them. So here it's a you just can disable a specific features. Now let's create together a new Feature Flags. So I will give it a name. I can give it a description and now I will define some strategies. So I have a few environments and I want to start with the QA environment. So for the QA, I want that all users will be exposed to that feature and I will create another strategy from the staging environment. And in the staging, I want only specific user IDs to be exposed to that feature. So I will add my user ID. That means if I turn this feature on, all users will not see it only with my user ID, I will be able to see this user. And I will create another strategy for production. So when we will release the code to production, I want that only 50% of the users will see this feature. Okay, so this is the new Feature Flag that I created and it is enabled by default. Now I will open the code and create a feature in the code. So this is the file that I will edit with the Web IDE. To use Feature Flags, you need to use the English client. And the only service is embedded in this GitLab instance. This is the code that you hide the feature behind a Feature Flags. So I will modify it to the name of the feature we just defined. So if it is enabled, I will see this message. Otherwise, I will see the old message, which is the old feature, the current feature. Now I will commit the change and I will commit it again to master. And new pipeline just started. It will build, test, and deploy it to create staging and production environment. So this process will take a few minutes. While it is running, I will show you the client that I created. So this application doesn't have UI. It works with API. So I created the best client to test the application. I defined here three URLs, the production URL, the staging URL and the QA URL. So I defined the four users, Dan, John, Eric and Isaac. And in the loop for each environment, we will register to the environment. Then we will log in. And then we will get the authentication message. And some users will get the new message behind the Feature Flags and others will get the old message according to the strategies that I defined in the Feature Flags. So let's go back to the pipeline. Perfect. Now my new feature is being deployed to all of the environments. All right. So I will now open the terminal and run the best script that we have just seen. It connects first to the production environment. And the strategy here is to enable the feature to 50% of the users, which is two users will see the new feature. The staging environment, we defined that only Isaac will see the new feature. And this is the new feature for Isaac. And the QA environment, we defined that everyone, all users will see the new feature. So as expected, everyone see the new feature. Now, if I will go back to the Feature Flags page, I can come here and just disable it. And if I will now run the client again, all users will see the allowable, which is the state before the new feature.