Project Details
Projekt Print View

Micro Cosmos: A programming model and compiler for cloud microservices

Subject Area Software Engineering and Programming Languages
Security and Dependability, Operating-, Communication- and Distributed Systems
Term since 2022
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 469256231
 
The digitalization of society is based on cloud computing. Yet, many companies and research institutions struggle to move their existing software into and develop new programs for the cloud. Cloud programming is still hard even for experts. The cloud promises of unlimited scalability and resilience against failures do not come for free. Programs have to be broken apart into microservices, i.e., small independent programs that can scale individually and silo the effect of a failure. This process is tedious, error-prone, and does not scale. Well-established development tools for detecting errors and testing the overall correctness of a single monolithic and locally-executing program do not work for a cloud program spanning multiple microservices. Microservices must be manually kept up-to-date with the latest cloud features. This (vendor-) locks programs to a specific cloud and at the same time impedes cloud platform evolution.In order to bring back the efficient development cycle, this project proposes a fundamentally new approach to cloud programming. We argue that microservices are not a programming model but an execution model and propose a programming model with a dedicated compiler for the cloud. Instead of new languages, we seek to integrate our programming model into existing programming languages, not as a mere library but into their semantic foundations. The envisioned cloud compiler abstracts over function composition to transform a sequential local composition into a distributed one for microservices. Our goal is to formally verify that the compiler preserves the semantics of the program throughout this transformation process. The key contribution of this proposal is the compiler framework that allows to integrate this proof directly into the compiler’s construction. This establishes confidence in our compiler and expands its applicability to mission-critical programs in the Internet of Things (IoT). Instead of new tools to make programming microservices easier, programs for the cloud can now again use the full palette of well-established tools and testing methodologies for local programs. We seek to minimize the required cloud knowledge to run microservice-based programs efficiently. Therefore, our compiler optimizes the program for a high-performance and cost-efficient execution on the cloud platform of choice and adapts existing programs to new hardware features.This project does not only provide a new approach to cloud programming for practitioners but contributes a novel framework on a solid formal foundation for future research. On a larger scale, our envisioned cloud compiler provides a common ground for two currently orthogonal research communities working on cloud computing: the programming language community which focuses primarily on the formal semantics of cloud programming models (i.e., microservices,) and the systems community which classically targets performance optimizations for cloud platforms.
DFG Programme Research Grants
 
 

Additional Information

Textvergrößerung und Kontrastanpassung