Cold Start Test

May 17, 2022 1 min read

The project consists in the implementation of a system able to monitor the performance of an external API. As the API is implemented using serverless, the system tests the performance in two main scenarios:

  1. Cold Start: rare/infrequent calls are made to the API, thus awakening the sleeping serverless micro-services;
  2. Warm Start: frequent calls are made to the API, thus testing the “normal” performance.

The goals of the project are multiple:

  1. Test the external system;
  2. Practice how to implement a NoSQL database using Azure Cosmos DB;
  3. Practice how to implement a BI dashboard using Power BI.

The overall architecture is composed by three main blocks:

  1. Main platform implemented on Microsoft Azure;
  2. REST API backend;
  3. Client/Laptop for serving data visualisation dashboard.

Figure 1) Graphical representation of the system.

The choices for reaching the design are:

Here below can be seen a detailed view of the Microsoft Azure implementation. The architectural flow is not displayed as it is quite straightforward:

  1. Azure Function wakes up periodically (with changing period based on cold/warm mode).
  2. Azure Function invokes the REST API backend, measuring outcome and performance.
  3. Azure Function stores the data in a SQL-API Cosmos DB database.
  4. Power BI retrieves the data from Cosmos DB and displays them in a dashboard.

Figure 2) Graphical representation of the “Low-Level Architecture” of the system.

Here below there are the screenshots related to the Power BI dashboard.

Figure 3) Main Power BI dashboard.

Figure 4) Main Power BI dashboard with drill-down on data collected on “Sunday”.

Figure 5) Main Power BI dashboard with drill-down on “cold start” data.

Figure 6) Main Power BI dashboard with drill-down on “warm start” data.