Unless you’ve been off-the-grid for a while, you’ve probably heard enthusiastic software developers talking about Docker and similar containerization technologies. As an executive or senior business leader, you may not understand containers or how they might add value to your virtual or cloud infrastructure. You may also be unaware of how containerization intersects with the modernization of legacy applications. Take a few minutes and learn about this important technology trend…
The Basics of Containerization
Containerization provides the ability to run individual applications by means of virtualization, but in a way that differs from virtual machines. In a container, all of the libraries, files, and other elements are stored together as a single entity. This configuration makes it unnecessary to create a new virtual machine each time you need another instance of an application.
Containerization is rising in prominence largely because of the proliferation of an app known as Docker. Though there are several other viable container technologies, Docker provides enhanced containerization for Unix, Linux, and Windows platforms. Docker enables an application to run on any machine that hosts one of those operating systems. Since the application(s) are bundled as a unit, it’s easily portable to another operating system or machine—as necessary.
How does a container differ from a virtual machine?
A container is quite different from a virtual machine, since it connects directly to the core of an operating system. Whereas a virtual machine only shares the physical hardware, a containerized application will share the operating system and other app components across instances.
Tech sprawl has become a critical concern for many enterprises using virtual machines. If it’s necessary to update or reconfigure a particular operating system, then the same action must be taken on all other operating systems and versioning is often an issue. This is not the case for systems built with containers, so there are opportunities for significant cost and effort savings together with the advantages of rapid scaling/downsizing to meet usage requirements.
What does this all mean for legacy applications?
The easy answer would be ‘nothing’, but much has been written about bringing containerization to legacy apps so a more considered answer is required.
The starting point as always is to figure out the driver(s) for ‘modernizing’ the legacy app (cost, functionality, UI, silver tsunami etc.) in conjunction with the value that the app provides to the business. We have discussed this at length in previous posts and our white paper provides a structured process for deciding the best approach.
While Docker has positioned itself as having a solution for application modernization (and some are using it for that purpose) it’s important to recognize that it is a ‘Wrapping’ solution, i.e. a way of quarantining the legacy app, leaving it untouched, while providing the benefits of containerization.
Quite simply, it is one of several viable alternatives for temporarily extending the life of the legacy application. This can be especially attractive if the app is to be decommissioned or replaced in the near term. Another benefit of this approach may be the ability to immediately decommission the legacy hardware and/or infrastructure. However, the legacy app is merely quarantined and still suffers from the inherent functionality/UI/silver tsunami/security issues that need fixing and present a threat to the business in the longer term. As such, it is not a durable, long-term solution for modernization.
By contrast, Morphis takes a comprehensive and transformative approach that results in a truly modernized application that uses modern technologies, i.e. an app that is ready-made for containerization. Note that today, in nearly all cases, Java-based apps are more suitable for containerization, as some .NET components don’t yet support containerization (though Microsoft is working hard to catch up).
While containerization isn’t a long-term solution for modernization, it has been around for a while and it is definitely on the scene now. This approach to app management will continue to offer an ever-increasing range of benefits to its adopters. The improvements in flexibility, speed, and portability continue to force a reduction in the prevalence of virtual machines. Increasingly, technology leaders will seek to have containers and virtual machines serve complementary roles within their organizations—especially those that are large or technically diverse.