Master Thesis MSTR-2024-106

BibliographyBhat, Rajat Keshav: Supporting the Development of Blue-Green Software Architectures.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 106 (2024).
79 pages, english.
Abstract

Blue-Green deployment is a software release strategy that is used to minimize downtime and service interruptions during software updates by running two identical environments: a live (blue) version and a staging (green) version. The blue environment handles all the user traffic and the green environment serves as a staging area for the developers to deploy and test the updated software. The aim of this thesis is to extend this concept beyond deployment and apply it to software architectures, particularly in systems with multiple asynchronous components that are data dependent on each other. As systems grow in complexity, maintaining data consistency, availability, and system reliability during updates becomes increasingly challenging. To address these challenges, this thesis introduces the Blue-Green Software Architecture, where each component maintains a blue and green version of its data. This architecture ensures that updates to a component can be fully processed and validated in isolation before becoming active, thus minimizing disruptions and maintaining a consistent state across all system components. To support the development of Blue-Green Software Architectures, a library was implemented in Golang, which abstracts the complexities associated with orchestrating the transition and synchronization between the blue and green versions. The implementation was verified through performance and system testing, demonstrating the effectiveness of the architecture in maintaining availability and data consistency across components.

Department(s)University of Stuttgart, Institute of Formal Methods in Computer Science, Theoretical Computer Science
Superviser(s)Kufleitner, PD Dr. Manfred
Entry dateApril 16, 2025
   Publ. Computer Science