Core Projects - Microservices and Serverless Applications

RESIST: A Playground Environment for Developing Resilient Microservice and Serverless Applications

Emilio Incerto

In today's digital landscape, microservices and serverless applications are essential for diverse domains such as e-commerce, home banking, and eHealth. Ensuring high-quality services requires resilience to demand surges while minimizing operational costs. Autoscalers, which dynamically adjust system module parallelism and computational resources based on the current workload, are crucial for achieving this.

Despite their critical role, these systems present challenges for engineers and researchers due to two factors. Industrial solutions often emphasize economic advantages without rigorous validation. At the same time, academic techniques, though extensively validated, are tested on simplified applications with limited industrial solution comparisons, often in challenging-to-replicate experimental settings.

Here, we introduce "RESIST" as a hardware and software playground to address these issues. It allows the creation of microservices and serverless applications with autoscaling solutions, facilitating resilience and efficiency evaluation under realistic scenarios. RESIST comprises two subsystems: a Kubernetes/Knative-based cluster and a custom modelling layer for the rapid application, autoscaler, and experimental campaign specification.

The ambition of RESIST is to serve as a unifying platform where industrial and academic players collaboratively develop resilient, efficient applications. It aims to streamline the reliable and quick validation of a diverse set of autoscaling algorithms under various realistic and reproducible execution scenarios.