What is Legacy Containerizing?
FPComplete offers this short overview of what containerizing legacy applications involves, notably
“Containerizing” an application is the process of making it able to run and deploy under Docker containers and similar technologies that encapsulate an application with its operating system environment (a full system image).
Since containers provide the application with an environment very similar to having full control of a system, this is a way to begin modernizing the deployment of the application while making minimal or no changes to the application itself. This provides a basis for incrementally making the application’s architecture more “cloud-friendly.”
MTA with Docker
The featured video is from Brandon Royal, a Solution Architect for Docker presenting at Dockercon (with associated slides for download), where he explores in detail the decision process of selecting legacy apps for containerization.
Brandon introduces their MTA – Modernizing Traditional Apps program, their methodology and tools for containerizing legacy apps, based upon this reference architecture. In their webinar presentation, Docker further expands on these engineering considerations.
Enterprise Cloud Native Journey – PaaS vs Containers?
In their marketing ebook Nirmata offer a guide to planning your Enterprise Cloud Native Journey.
It is a particularly helpful and practical resource in that it takes on one specific ‘leg’ of the journey, and examines it in expert detail, headlined through asking the decision question ‘PaaS vs Containers?’
They explore PaaS as a concept that pre-dated the use of containers, and now with their proliferation and popularity of tools like Kubernetes, making a comparison between the two approaches. They highlight the ability to containerize legacy applications while also build new microservices that utilize the same platform.
On page 12 they conclude with a very useful ‘CaaS vs PaaS’ Cheat Sheet decision matrix.
Learn from Netflix
The Nirmata ebook also provides a context for reviewing the 2018 news of Netflix open sourcing their ‘Titus’ product, another download that has originated from their own pioneering practices of Cloud Native approaches, in this case their history of using containers.
Most organizations don’t have the luxury or in-house talent to customize Kubernetes to existing processes. It’s critical to identify critical points in your existing application support model that doesn’t comply with you selected cloud-native tooling.
Nirmata is designed to easily integrate with build tools like Jenkins, to holistically integrate this type of capability into Continuous Delivery pipelines, propogating change management policies across the complexity of large scale Cloud deployments.
This is an effect that can be applied to legacy applications too, via a principle they describe as “Application Containerization“, providing a simple walk through of when to consider this approach.
They describe how they decided upon the best recommendations for a profile of these modules by building their own SaaS, via an approach they describe as “Application Dockerization“:
We developed our own layer of service orchestration on top of Docker. Orchestration of microservices, combined with the choice of Docker as the delivery vehicle for microservices, proved to be a winning solution.
In particular they highlight the benefits of this approach to the SaaS Entrepreneur:
There is also a very interesting side effect to using containerization: cost saving. We use AWS to deploy our various SaaS environments: development, test, staging and production. Nirmata’s orchestration can use a placement policy to pack multiple containers on one single AWS instance. It represents hundreds of dollars of saving at the end of each month. Quite interesting for any cost sensitive business.
Reducing AWS costs
In addition to reducing the impacts of change management failures another key benefit is how this efficiency yields cost savings for use of Cloud providers like AWS.
In their case study of Smyl, a financial services SaaS provider, they describe how the startup wanted to optimize their AWS costs but found neither the built-in services nor open source options provided them the capabilities of ease of use to make it practical to do so.
The team built a full DevOps pipeline with automated container management and provisioning powered by Nirmata, so that whenever a developer checks in code, it automatically builds a new container image and deploys it into a shared staging environment, with changes promoted directly to production.
“Nirmata allows us to deploy services from a single console. Each service is deployed across a cluster of three containers to cater to both scale and availability needs,” Syml’s CTO Guy Pallister. “This way, we don’t need to maintain failover servers.” These newly provisioned services are immediately available since Nirmata automatically configures the addressing.
Nirmata works seamlessly with AWS spot instances to deliver significant cost savings. “As soon as a new spot instance appears in the cluster, Nirmata re-provisions the containers from an on-demand instance to the spot instance. Even if we provision 3x for each service we still save 50-60% in our monthly AWS costs.