SAP Feature Flag Service

Introduction

Feature flags (also known as feature toggles or feature switches) are a software development technique that turns certain functionality on and off during runtime, without deploying new code. This allows for better control and more experimentation over the full lifecycle of features.

The idea behind feature flags is to build conditional feature branches into code in order to make logic available only to certain groups of users at a time. If the flag is “on,” new code is executed, if the flag is “off,” the code is skipped. Also referred to as or release toggles, feature flags are a best practice in DevOps, often occurring within distributed version control systems.

Feature Flagging Service (FFS) is a service within SAP’s HANA and Analytics microservice architecture. I worked as an Agile Test Developer Intern on this project from September 2022 to April 2023.

Responsibilities

As an Agile Test Developer Intern, I got deep into testing and automation besides feature development on the team. I got hands-on experience with best practices in the design, development, maintenance, and testing of a scalable and cloud-native enterprise software.

As a member of the team, I:

  1. Developed new REST APIs to expose new features and control the automation of certain internal tasks within FFS using Spring Boot (Java) framework.
  2. Created and 5 five Jenkins pipelines to streamline the test automation, instance backup automation, service data management, and aggregation the data from instances across all regions to generate customizable reports, resulting reduction of 2+ days of manual work to under 15 minutes.
  3. Imeplemented and performed autommated testing and manual testing at unit testing and integration testing levels using JUnit, Mockito, PowerMock, and utilized Postman for automating API testing.
  4. Performed regular regression testing before new releases to ensure the stability of product before each release.
  5. Employed Jasmine and Mocha tests to validate data submissions from other services to FFS.
  6. Designed and integrated a Slack bot in PHP, enhancing user interaction with the FFS through Slack
  7. Produced 10+ software documentation, including test plans and reports, elaborating on changes, deployment guidelines, and Slack Bot documentation.

Technologies/Languages Used

Technology Usage
Java language is used for the FFS development
JavaScript is used on the Node module.
Groovy is used in developing Jenkins pipelines’ scripts.
PHP is used as a technology for developing Slack Bot.
Spring Boot
JUnit is used for unit testing on the Java module.
Jasmine is used for unit testing on the Node module.
Mocha is used for unit testing on the Node module.
Jenkins pipelines are used for build and automation the build, testing, and internal requirements
Postman is used for API Testing.
Gerrit (based on Git) is used for version control.

Project information

  • Category: Web
  • Project date: September 2022 - April 2023

Project Description
Feature Flagging microservice withinn SAP's HANA and Analytics organization.