How to Modernize AIX Applications In-Place Using Red Hat OpenShift
Angshuman Roy explains the value of using Red Hat OpenShift to modernize applications by leveraging containers.
By Angshuman Roy09/01/2020
Enterprises are modernizing applications to bring in cloud-native capabilities that work in a hybrid multicloud environment. In its Total Economic Impact™ study, Forrester found that clients accelerated development cycles by up to 66% by modernizing. Quite often, these organizations are looking at multiple cloud providers to host different parts of their applications while keeping mission-critical workloads in house. According to Flexera 2020 State of the Cloud Report, 93% of enterprises are pursuing a multicloud strategy, which prevents them from being tied to a single vendor.
To make an application more portable across multiple clouds, it must run on a unifying platform, like Red Hat® OpenShift®. OpenShift extends Kubernetes with built-in tools to enhance app lifecycle development, operations and security. With OpenShift, clients can consistently deploy workloads across multiple public or private clouds with ease.
This article breaks down how my team modernized a banking application running on AIX®. We built a new user interface and deployed it on Red Hat OpenShift running on the existing IBM Power Systems™ server, while the business logic continued to run on the AIX back end. We added new functionality that ran on three different public clouds: IBM Cloud®, Amazon Web Services (AWS) and Microsoft® Azure. All of these environments were managed using IBM Cloud Pak® for Multicloud Management, also running on POWER®.
Advantages of Containers in App Modernization
One of the most common approaches to modernizing legacy applications starts by containerizing them so that they can be migrated to cloud. Containers are small and lightweight, which makes them a good match for microservice architectures where applications are constructed with loosely coupled, and independently deployable, smaller services.
The combination of microservices as an architecture and containers as a platform is a common foundation for many teams that embrace DevOps to build, ship and run software. Because containers can run consistently anywhere, they’re an ideal environment to deploy applications across multiple public clouds and on-premise.
Paths to Modernization
Several paths to modernization are available, ranging from low to high complexity. Some people refer to application modernization as “lift-and-shift,” but in reality, it’s just rehosting the application on a new platform, without getting its benefits. A smarter way is to modernize the application and deploy it on a hybrid cloud that’s based on open standards. Two methods are available:
- Factor existing code into microservices and add a new layer to support enhancements
- Main core of the application (i.e., the business logic) remains unchanged on current platform
2. Complete rewrite
- Replace current application with a new one that’s written for the new platform
- This is by far the most time-consuming and expensive option
Our team chose refactoring because this adds new functionality without losing the benefit of the IBM Power Systems platform.
Our Path to Modernization
We started with a monolithic online banking application running on IBM WebSphere®, connected to an IBM Db2® database, both running on Power running AIX.
We refactored the application into seven loosely coupled business processes, each converted to a microservice (see Figure 1, below). These processes are login, get account balances, process deposit, process withdrawal, view/update customer profile, get transaction history and logoff. These microservices remained connected to the existing IBM Db2 database. The business logic remained unchanged and continued to run on AIX.
Then we developed a new UI that calls the respective microservice for each business process. It had no direct connection to the database. The new UI was deployed on OpenShift 3.11 on Power with two Red Hat Enterprise Linux® LPARs—one for master and the other for worker node.
Next, we added three more independent apps running on different public clouds:
- A customer service chatbot, powered by IBM Watson® technology on IBM Cloud
- A pandemic payment relief request app on Microsoft Azure
- A customer satisfaction survey app on AWS
Lastly, we managed all apps (both on-prem and running on public clouds) using Cloud Pak for Multicloud Management. To manage the AIX LPAR, we needed to add Cloud Automation Manager to the Cloud Pak. Figure 2 (below) shows an example of what the modernized application deployment looked like.
Unified Management on Power Systems
Through this exercise, we demonstrated that AIX applications can be modernized “in-place” quite easily on the IBM Power Systems platform. This approach gets the benefits of containerization on resilient hardware, while avoiding the risk associated with migrating to a new platform. It also reduces the risk and cost associated with rebuilding the entire application.
Monolithic apps can be converted to microservices easily, especially if they’re written using structured programming language like Java®. Once containerized, new functions can be added easily, even if they’re running on non-Power or other public cloud platforms.
All of these apps running on heterogeneous cloud platforms, including AIX LPARs, can be managed in a single place using Cloud Pak for Multicloud Management. This helps in managing multicloud environments with consistent and automated configuration and security policies. It improves automation by simplifying the IT and application operations and reduces costs.
Angshuman Roy is an Executive IT architect in IBM IT Economics Consulting and Research team, performing hands-on research on the advantages of IBM Hybrid Cloud platforms. In more than 25 years of IT experience, he has worked as lead architect in many mission critical applications in financial, retail, manufacturing, and government sectors. Angshuman has expertise in infrastructure capacity planning, performance measurement, platform evaluation, and application migration.