Application Profiling for automated VM-to-container migrations
Migrating applications from virtual machines (VMs) to container environments offers significant advantages in terms of performance and scalability, but remains a complex process. The process often requires manual dependency collection, which is time-consuming and error-prone. Existing automation solutions, such as Google Migrate Containers (M2C), employ a lift-and-shift strategy, but regularly result in overloaded containers because unnecessary system-level dependencies are included. This undermines the core benefits of containers.
Process-Level Profiling Methodology
This study introduces a new process-level profiling methodology to automate the migration of applications from Linux-based VMs to containers. The approach combines static and dynamic analysis of runtime behavior and focuses exclusively on the active Unix processes associated with the target application. This ensures that only critical dependencies are identified, resulting in lean and optimized container configurations.
Case studies and results
Case studies with NGINX and MySQL demonstrate the effectiveness of this approach. In both cases, container size was reduced by up to 98% compared to Google M2C, while application performance remained the same or improved.
Practical implementation, limitations, and conclusion
To validate scalability and practical applicability, a command-line tool was developed based on this methodology. Although the approach is effective, it can face challenges with non-deterministic workloads, where certain runtime dependencies may not be detected. Further improvements are needed to ensure consistency. Nevertheless, this research represents an important step towards streamlined, efficient, and accessible container migration.