Do you have customers that want your existing applications to run in an elastic environment or be orchestrated (i.e., with Kubernetes)? Are you trying to catch up to a business need to support a subscription or SaaS model? In this blog, we will cover how containerization and application orchestration can be used in porting legacy applications to handle both demands for elastic deployments and pay-as-you-go business models.
A common limitation with legacy software is that it often only runs one application instance at a time. There are two issues that arise with this. First, undergoing a very manual process may become necessary if application needs grow or there is a need to run more than one instance at a time. Second, there is more often than not an inability to increase or decrease capacity on a whim. This can incur additional cost that customers are hesitantly willing to pay, if at all. Both issues put your business at a disadvantage in an increasingly competitive market.
Application orchestration through containerization can solve these issues entirely. Let’s walk through what exactly container orchestration is and the value it can offer your business.
Containerization is the first step and primary method of orchestrating elasticity in this context. By definition, “application containerization is an OS-level virtualization method used to deploy and run distributed applications without launching an entire virtual machine for each app.” Let’s breakdown what this means.
Containers are often explained in the context of virtualization and compared to virtual machines. Virtual machines, like Windows, are guest operating systems that are virtualized to run on top of the underlying hardware. Virtual machines contain not only the guest operating system, but also all of the necessary libraries run to the application, the application code, and generally any customer data.
Similar to virtual machines, containers allow developers to package the application together with libraries and other dependencies. Containers can then run the virtual instance in a controlled environment. However, containers differ from VMs in that they are much more lightweight and use far fewer resources than virtual machines.
Fast Start-Up and Shutdown:
A container sub-system initiates application virtualization on top of the operating system and shares the OS and common libraries with the individual applications within the container’s orchestrator. As a result, the container orchestrator will allow the user to launch individual processes far faster than a virtual machine is capable of since it does not require the operating system to startup and shutdown. In a container situation, as soon as the container’s orchestrator starts, launching applications can occur almost instantly since all other common processes are already running. In a media and entertainment application, for example, a user will have the ability to use another copy of an encoder, file copier, or video player instantaneously. Intuitively this means that a server can host more containers than a virtual machine.
Ability to Set Business Rules:
Another advantage of container orchestration is the ability to set business rules that allow a user to define startup and shutdown for container instances. Applications can then add and destroy capacity as needed, which allows for customers to easily scale up or down based on their needs. It also reduces the need for hardware on the customer’s premise because it can all be done via AWS, Microsoft Azure, or Google Compute environments. This is highly relevant if moving toward a usage dependent subscription, or SaaS-based revenue model.
Containers allow developers to create predictable environments that are isolated from other applications and include software dependencies needed by the application. This guarantees consistency no matter where the application is deployed, which translates to productivity for developers and IT due to fewer bugs and consistent test environments.
The container application can be split into modules, also known as a microservices approach. This allows each module to be simple and for changes to be made to them without having to rebuild the entire application.
Finally, containers can provision more computing power based on the need of an individual application. This is made possible by platforms like AWS, Azure, and Google Compute. With compute and storage load being distributed across a wide area, there are no latency, lag, storage backup, IO problems, etc.
When orchestrating a container, there are three differentiators to look out for: level of abstraction, tooling, and architecture. DSR is orchestrator-agnostic, meaning our team can develop containers on any platform. We thoroughly understand what to look for during this process and can even help you choose the correct platform for your business needs. DSR has the expertise to move from legacy applications to microservices and containers. So, whether you are considering a generic Kubernetes approach or specific containers targeted for AWS, Azure, or Google, DSR can help.
Containerization is prevalent outside of the media and entertainment industry today and many companies are capable of providing serverless architectures. DSR’s extensive experience in the media and entertainment space makes our teams highly capable of providing the best solution for your needs and sets us apart from the competition. If you have a business need for elastic orchestration, but do not have the technical capability or bandwidth to make that transition, call DSR. We have the expertise right now to provide the solution you need. Let us master your application in cooperation with your team with the goal of wrapping your core application technology into a container. From there you can build your business revenue around this valuable solution.
To learn more about DSR's media and entertainment software resources, watch this short video: https://youtu.be/BB0TFDlpWtw
Revell, Matthew. “Introduction to Container Orchestration: Kubernetes, Docker Swarm and Mesos with Marathon.” _Exoscale_, Exoscale, 26 June 2016
Rouse, Margaret. “What Is Application Containerization (App Containerization)? - Definition from WhatIs.com.” _SearchITOperations_, Sept. 2017
Rubens, Paul. “What Are Containers and Why Do You Need Them?” _CIO_, CIO, 27 June 2017
Google Cloud. “What Are Containers and Their Benefits Google Cloud.” _Google_, Google