Recently, I was tasked with devising a strategy for transferring legacy apps (running on Windows 2003 and older)
- A technique for packaging a service, application or job.
- Shares the OS Kernel => Less overhead than a hardware VM.
- Potential to create clean separation between infrastructure layers and applications that run on it.
- Potential to seamlessly transfer End of Life applications to a newer OS.
- Containers not necessarily more secure or isolated. Containers offer a safe way to run arbitrary code – e.g. hosting company may allow end users to upload anything to a container (as an extension for example
- Isolation between containers running untrusted code is key.
- Active Directory Integration, if needed on app, may be a challenge.
- Docker Engine can now run containers natively on Windows.
- Docker recently released the Image2Docker tool, an open source project.
- Image2Docker is a PowerShell module that you can point at a virtual hard disk image, scan for common Windows components and creates a Dockerfile based on such ‘artifacts’.
- Image2Docker – Successfully containerized 1.0 and 2.0 .NET / IIS 5.X, 6.X applications.
End of Life Containerization Strategy
–Install and run all pieces of Remits on a single VM
–Extract the image of the running application
–Deploy image onto a container-friendly newer OS (e.g. Windows Server 2016)
–Try running the app – and check for any runtime issues.
While End-of-Life applications was not the primary use case that Containers were designed to solve, they do end up helping with several EOL apps – including ASP.NET, PHP (LAMP stack) and other stacks. There is no guarantee that the EOL app will work flawlessly on the target system even after containerization. However, just the mere fact that this is possible is attractive to companies dealing with an End of Life portfolio.