Inspiration

Coming from a DevOps background, there are countless automation flows we come across every day that eases the burden of maintaining and scaling enterprise-level applications. Automations like this really go a long way in improving overall maintainability. We, therefore, decided to build an application that exactly does that :)

What it does

Firefighter is an open-source web application that can help businesses manage their Azure API Management. It can help DevOps Engineers automatically scale their API Management gateway instance. Firefighter authenticates the user using the Microsoft Azure credentials and lets them choose their autoscaling group settings to choose the API Management service. The users can enable or disable the auto-scaling groups for the chosen API Management service. The users can also change the name and location of the auto-scaling.

How we built it

  • Firefighter UI: Firefighter is a single-page web application hosted with HTML, CSS, and VanillaJS as the frontend and NodeJS as the backend due to its extensive asynchronous support and low API response latency. The microservice is deployed using the Azure App Service.

  • Authentication - The authentication module is implemented using Microsoft Graph API to access the Azure graph and manage RESTful API endpoints. The graph endpoints are authenticated on the backend using the Microsoft Authentication Library (MSAL)

  • Choice of API Management to be scaled - Firefighter lets the user choose the subscription ID, resource groups, and auto-scaling settings. This will allow the user to choose the API management service that they wish to protect. Options to change the name, region at which the autoscaling group is provisioned, and set the auto-scaling flag.

  • CICD deployment - Full CI-CD deployment with Github actions was linked to the Azure App Service instance. which minimizes developer intervention during code deployment

Challenges we ran into

  • Usage of Microsoft Authentication Library (MSAL) to retrieve accessToken from Graph API.
  • Converting the page into a responsive UI.

Accomplishments that we're proud of

Solve a real-world use case and open-sourced it to everyone to manage their Azure API.

What we learned

We had a wonderful time learning about the different services offered by Azure and its ease of integration with other Azure offerings.

What's next for Firefighter

Addition of capacity and other AutoScale Rule constraints for tighter control over the API Management Service instance.

Built With

Share this project:

Updates