Container strategy has become an essential part of any enterprise’s cloud transformation journey. The flexibility and cost optimizations that containers bring to the table has made many enterprises to adopt a “container-first” strategy.
While this is a good guiding principle, many challenges come into play while executing this strategy. The primary challenge is to decide which of the existing applications in an enterprise’s IT landscape can be containerized. Most enterprises have application portfolios built on a range of technologies and platforms. While applications built on modern technologies such as Java are ideal for containerization, established applications on platforms like the mainframe may not be a good fit.
Questions to help guide the application containerization journey
It’s important to evaluate the organization’s existing applications and how these assets may transfer to containers. Questions that should be considered before enterprises begin the containerization journey include:
Which applications in the business portfolio can be containerized?
Is there a real benefit in containerizing an application?
Should a large monolith application be decomposed before it is containerized?
How can application containerization be done faster?
What is the best container platform for the enterprise?
What are the other extensions needed in the container platform to accommodate the applications?
Is there real value in containerizing all the applications?
Will the containerized applications be able to meet existing Service Level Agreements (SLAs)?
What will the upskill path be for developers?
For more of a background on containerization, check out the following video:
The four phases of application containerization
It is important to have a well-defined approach that is supported by accelerators and skills to address the key concerns of enterprises, while realizing the containerization journey.
A “containerize first, transform next” approach is ideal in most cases when containerizing the existing application portfolio. The journey typically consists of four phases:
1. Application assessment for containerization
In this phase, the application portfolio is assessed to determine the container affinity of each application. The outcome of this assessment shows the “ease of containerizing” each application in the portfolio. This assessment can be accelerated by using assets like the IBM Cloud Advisory Tool. The tool captures various attributes of the applications and associated infrastructure. When applied to the collected data, the inbuilt rules determine the cloud affinity value for the application.
Once the container affinity assessment is complete, an initial list of applications for containerization will be available. The target images and patterns needed can be determined from this list.
It is important to confirm the business case of containerizing the applications. The “as is” cost of running the applications, the transformation cost and the target state run cost will be captured to calculate the ROI. This is a key input for the decision to move forward or not. Once a containerization journey begins, key execution accelerators, like the containerization playbooks are created.
The dependencies of applications are an important aspect to be considered prior to defining the containerization execution plan. Application groups are formed with dependent applications. IBM has multiple assets that collect data from the application runtimes and derive the application dependency model. The containerization waves can be defined based on the analysis of these dependency models. Each wave can include one or more application group.
3. Containerize, lift and shift
The “containerize first, transform next” approach can incorporate the benefits of containers upfront in most cases. This is the general recommended approach for transforming existing applications. The approach typically will not perform any code changes to the application.
The steps that will be performed are related to finalizing the container image and integrating the application with the DevOps toolchain. This will typically have a well-defined set of steps and can be executed in a Migration Factory Model.
There could be a scenario where a monolith application is too large. In this case, it will be best to decompose the application prior to containerization. There may also be a scenario where an existing application is not able to be containerized. In such case, rearchitecting the application should be considered.
End-to-end DevOps is a critical element for the accelerated execution of the containerization journey. A DevOps assessment of the applications in scope should be conducted, while the toolchain should be optimized to meet the needs of the containerized applications.
4. Transform applications
This is the last step in the approach and may not be applicable for all containerized applications. There may be scenarios where it is ideal to modernize an already containerized application to newer architectures like the microservices architecture. This is determined based on detailed analysis of the applications in scope. Transformations usually include rearchitecting and reengineering the applications. Development Squads following the IBM Garage practices are ideal for delivering application transformations.
Streamline application containerization with the right tools
IBM has a variety of methods, tools, assets and service offerings that can streamline an enterprise’s hybrid cloud journey using containers. For example, RedHat OpenShift Container Platform (RHOCP) is the market leading Kubernetes-based container platform. RHOCP abstracts most of the complex tasks associated with container platforms making deploying and managing containers easier. IBM Cloud Paks provide enterprise-ready, containerized software solutions that give clients an open, faster and more secure way to move core business applications to any cloud. IBM Cloud Paks runs on RHOCP and this combination provides a foundation for accelerated application containerization.
In a world where business disruption is the rule and not the exception, enterprises need IT environments that are designed to yield real innovation by enabling continuous, iterative development. Flexible, agile platforms allow organizations to develop new business models and deliver product innovation and deployment, as well as enable employee productivity and customer engagement. Cloud […]
IBM is like many of its clients when it comes to application modernization. The company faces the same challenges of trying to balance preserving the business value of established investments while remaining agile enough to respond to changing market demands. Within IBM Global Financing, the financing arm that provides leases and loans to IBM clients […]