Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
donka_dimitrova
Contributor
2,311

Blue, green or orange “Submit” button will be better?


Using the Feature Flags service, you can test the acceptance of different colors directly in the productive environment with some pilot users. Тhen release the button with the color preferred the most to all users without re-deploying the application.



Cloud native architecture and Agile software development allow innovations to get quicker to the end-users. Microservices approach, multitenancy and CI/CD assume better control over the quality of the software and a simplified lifecycle management for the cloud solutions, their new features and versions. Capabilities such as gradual release (also called “Canary” release), feature toggling and other techniques, heavily used in the cloud development, offer more flexibility when building, testing and releasing cloud solutions.



The Feature Flags service on the SAP Cloud Platform Cloud Foundry environment helps you to follow the cloud development principles easily. It simplifies the microservices release process, offers piloting of the new features with limited number of end-users, and abilities to separate the actual release of the features and microservices from the code deployment processes.

In our first blog we explained many of the scenarios, where the Feature Flags service is helping development teams to work together, to release only the ready-to-use parts of the entire solution, to test different variations for their features and others.

In this blog, we will describe the flag release capabilities of the Feature Flags service and how they help to roll-out new microservices and features easily.

The roll-out of a new solution or a new feature to the end-users is one of the most important milestones for a customer project. The project team plans this milestone carefully because they usually need to align the roll-out with the business activities of the end-users and the business processes that they need to follow. When a new custom solution is developed in the Cloud Foundry environment of the SAP Cloud Platform, or when an SAP partner is developing a new solution for the SAP customers using the platform, the Feature Flags service is helping a lot with the release milestone of the new features and scenarios.

The release capability could be considered a lifecycle steps for the flag items of the Feature Flags service. It helps the project team to finalize the testing and piloting phase of the new features and microservices and to roll them out to all the users with no additional re-deployment. Please, note that this capability is available only with the standard plan of the Feature Flags service.

How you can benefit from the Feature Flags service release capabilities:

Let’s first see what it means to release a flag. Every flag item of the Feature Flags service once created could be edited until it is released. In the edit mode of the flag you cannot change the flag type but you can freely change its status, the direct delivery strategy configured, the ratio for the percentage delivery, etc.

Once the flag is released, no more changes will be possible. You even can’t delete this flag.



This way, we consider the variations evaluation and the pilot phase for the feature handled with this flag as completed.

The feature will be finally rolled out to all users with the variation string and status that are selected for the flag at the moment of its release.

When a flag item is already released and the feature is rolled out successfully, the toggling of the feature is not necessary anymore. It will be good to clean up the code lines of the feature from the toggle wrapper with the next code version.

If at some point of time, you decide to change the feature again and to test or pilot something new for it, you have to create a new flag or start using another flag that can fit and is not released yet.

“Canary” release or how to distribute over the time the roll out and the support load expected for it:

The gradual or the so called “Canary” release allows delivering the new solution gradually over a period of time. Using this capability, you can distribute over time the support load expected for the new features. By defining the number of days for the gradual release, the system will calculate an equal distribution for the delivery progress ensuring the new feature reaches all users by the end of the period. This way you can achieve a step-by-step release over time and handle the roll out of the new capabilities smoother.

Planning a feature release date by using the schedule capability:

Every developer, who ever worked on a big customer project, is familiar with the go-live date “1st of January”. This day in the year is chosen as a go-live date for many projects. The goal is to make sure that the new solution going live will be aligned with the corporate business processes that start new on the first day of the year after a successful year end closing on 31st of December.

For development teams, working with such uncomfortable go-live dates, the scheduling capability of the Feature Flags service is a big benefit because it will not be necessary for them to celebrate the New Year’s Eve in the office to wait for pushing the release button.

You can use the release schedule to roll-out the feature at a certain date to all users at once or to schedule a gradual release. When you schedule a gradual release, it will start on the date selected and will continue for the number of days configured for distributing the delivery.

After getting to know the rich set of capabilities of the Feature Flags service available with the SAP Cloud Platform, you can start using them for an easy and smooth delivery of your new capabilities to your business users. The service will help you to gain more trust of your stakeholders and will simplify the lifecycle management and the piloting and roll-out of your new features, microservices and overall solutions.