Modern microservice architectures excel at structural adaptability through independent scaling and deployment, but lack mechanisms for runtime behavioural modification. When business logic or algorithms require changes, developers typically resort to redeployment cycles, complex configuration-driven branching, or maintaining multiple service variants. All approaches that introduce significant complexity and operational overhead. This thesis presents Marionette, a framework that enables runtime behavioural configuration and automated A/B/n testing in microservice architectures. The developed system allows developers to define multiple behavioural implementations for methods within their microservices. The tool automatically transforms the codebase to support runtime behaviour switching. An additional microservice part of the Marionette ecosystem, called the Marionettist service, automatically discovers instrumented microservices, extracts their behavioural configurations, and provides a web-based interface for centralised management and real-time metric monitoring. To demonstrate the framework's capabilities, we developed an automated A/B/n testing pipeline that systematically explores all possible combinations of behavioural variants across multiple microservices. Unlike traditional A/B testing, which compares two system versions, this approach enables multidimensional experimentation where individual method implementations are tested in combination, revealing system-wide interactions and trade-offs that would remain hidden in isolated testing. The framework was validated through comprehensive experiments using a custom microservice application. The evaluation demonstrated successful runtime behaviour modification across distributed services, with the A/B/n testing pipeline effectively identifying optimal configurations. The Marionette framework establishes a foundation for advanced behavioural management in microservices, enabling applications ranging from automated system optimisation to energy-aware computing.
Le architetture moderne a microservizi eccellono nell'adattabilità strutturale attraverso il dimensionamento e deployment indipendenti, ma mancano di meccanismi per la modifica comportamentale a runtime. Quando la logica di business richiede cambiamenti, gli sviluppatori ricorrono a operazioni di branching complesse o mantenimento di varianti multiple del servizio, tutti approcci che introducono complessità e overhead operativo. Questa tesi presenta Marionette, un framework che abilita la configurazione comportamentale a runtime e il testing A/B/n automatizzato in architetture a microservizi. Il sistema consente agli sviluppatori di definire implementazioni comportamentali multiple per i metodi nei loro microservizi. Il tool trasforma automaticamente il codice sorgente per supportare il cambio di comportamento a runtime. Il servizio Marionettist scopre automaticamente i microservizi instrumentati, estrae le loro configurazioni comportamentali e fornisce un'interfaccia web per gestione centralizzata e monitoraggio delle metriche in tempo reale. Per dimostrare le capacità del framework, abbiamo sviluppato una pipeline di testing A/B/n che esplora sistematicamente tutte le combinazioni di varianti comportamentali in un'applicazione a microservizi. Diversamente dal testing A/B tradizionale che confronta due versioni del sistema, questo approccio abilita sperimentazione multidimensionale dove implementazioni di metodi individuali sono testate in combinazione, rivelando interazioni e trade-off a livello di sistema che rimarrebbero nascosti nel testing isolato. Il framework è stato validato attraverso esperimenti utilizzando un'applicazione a microservizi personalizzata. La valutazione ha dimostrato la fattibilità della modifica comportamentale a runtime, con la pipeline di testing che identifica efficacemente le configurazioni ottimali. Il framework Marionette stabilisce una fondazione per la gestione comportamentale avanzata nei microservizi, abilitando applicazioni dall'ottimizzazione automatica al computing energy-aware.
Marionette: runtime behavioural configuration and A/B/n testing for microservices systems
SISSA, MATTEO
2024/2025
Abstract
Modern microservice architectures excel at structural adaptability through independent scaling and deployment, but lack mechanisms for runtime behavioural modification. When business logic or algorithms require changes, developers typically resort to redeployment cycles, complex configuration-driven branching, or maintaining multiple service variants. All approaches that introduce significant complexity and operational overhead. This thesis presents Marionette, a framework that enables runtime behavioural configuration and automated A/B/n testing in microservice architectures. The developed system allows developers to define multiple behavioural implementations for methods within their microservices. The tool automatically transforms the codebase to support runtime behaviour switching. An additional microservice part of the Marionette ecosystem, called the Marionettist service, automatically discovers instrumented microservices, extracts their behavioural configurations, and provides a web-based interface for centralised management and real-time metric monitoring. To demonstrate the framework's capabilities, we developed an automated A/B/n testing pipeline that systematically explores all possible combinations of behavioural variants across multiple microservices. Unlike traditional A/B testing, which compares two system versions, this approach enables multidimensional experimentation where individual method implementations are tested in combination, revealing system-wide interactions and trade-offs that would remain hidden in isolated testing. The framework was validated through comprehensive experiments using a custom microservice application. The evaluation demonstrated successful runtime behaviour modification across distributed services, with the A/B/n testing pipeline effectively identifying optimal configurations. The Marionette framework establishes a foundation for advanced behavioural management in microservices, enabling applications ranging from automated system optimisation to energy-aware computing.| File | Dimensione | Formato | |
|---|---|---|---|
|
2025_10_Sissa_Tesi_01.pdf
accessibile in internet per tutti a partire dal 28/09/2028
Descrizione: Tesi completa
Dimensione
17.72 MB
Formato
Adobe PDF
|
17.72 MB | Adobe PDF | Visualizza/Apri |
|
2025_10_Sissa_Executive Summary_02.pdf
accessibile in internet per tutti a partire dal 28/09/2028
Descrizione: Executive Summary della tesi
Dimensione
1.65 MB
Formato
Adobe PDF
|
1.65 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/243599