Application Profiling
Project description
The main research question of the project is:
How can the profiling of live applications running in Linux-based VMs be automated to enable migration to container environments?
The project investigates methods to automate the identification of application dependencies and configurations required for containerization. The target applications for this method are those deployed on Ubuntu-based VMs, representing a widely used and well-supported baseline for migration.
Context
Many applications still run in virtual machines (VMs), but containerization provides better efficiency and scalability. Migrating from VMs to containers manually is time-consuming and error-prone. Existing automated tools, such as Google Migrate to Containers (M2C), rely on lift-and-shift strategies, resulting in bloated containers with unnecessary dependencies. This diminishes the performance and efficiency benefits of containerization.
This project introduces a novel process-level profiling to automate application migration. This approach treats the application as a black box, relying solely on its active Unix processes to captures only the essential runtime dependencies. The method aims to reduce manual effort and address container bloat effectively.
Results
- Research Insights: Developed a novel process-level profiling methodology combining static and dynamic analysis. This method identifies only the critical runtime dependencies required for containerized environments, eliminating redundancy.
- Case Studies: The methodology was validated through the migration of NGINX (stateless) and MySQL (stateful) applications. The generated containers were significantly smaller than those created using existing automation tools like Google Migrate to Containers, reducing image size by up to 98% (e.g., 5.97GB → 89MB for NGINX). Performance was maintained or improved compared to the source VM deployment (e.g., +0.21% for NGINX).
- Proof-of-Concept: A command-line tool was developed in Golang to automate the designed workflow and further validate real-world applicability.