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.
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:
For more of a background on containerization, check out the following video and the article “The Benefits of Containerization and What It Means for You“:
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:
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.
” title=”YouTube video player” frameborder=”0″ allow=”accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture” allowfullscreen>
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.
IBM and Red Hat have other assets like IBM Cloud Transformation Advisor and RedHat Application Migration Toolkit that provide detailed recommendations to containerize JEE applications. These tools provide steps to be followed to containerize the JEE applications for WebSphere and Red Hat targets, respectively.
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.
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.
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.
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.
Visit IBM Services for Cloud to learn more on how IBM can help in your hybrid cloud journey.