Exploring the IBM CIO organization’s application modernization journey.
For last decade or so, many enterprises have migrated their IT applications from their on-premises data centers to cloud. As-is migrations reaped the early benefits like operational cost reduction and scalability. But applications designed and developed on on-premises environments failed to provide business agility, higher availability or better performance.
The next chapter in the cloud transformation journey is to optimize and operate more efficiently, enabled by a hybrid cloud strategy. Modernizing your applications to be more cloud-native is the key to achieving cost-efficient agility, increasing resiliency and improving developer productivity while fostering innovation.
LeanIX conducted a survey of Enterprise Architects and Leaders from 140 companies on IT priorities for 2022. This survey showed that 41% of the respondents selected “Reducing technical debt and upgrading legacy systems” as their top priority, compared to the 24% of respondents who selected “Cloud migration and expanding the cloud infrastructure.” The focus is shifting to modernizing your legacy systems to address the technical debt.
The IBM CIO organization has undertaken a large transformation to modernize traditional applications and infrastructure to a hybrid cloud platform. The CIO Hybrid Cloud—built with Red Hat and IBM technologies—is the engine that fuels the future of IT for the IBM enterprise. Application modernization combined with our hybrid cloud strategy enabled us to operate with speed, scale, security and simplicity. Before diving deep into how the IBM CIO undertook this mammoth activity, let’s first talk about what application modernization is and why it is needed.
What is application modernization?
Simply put, application modernization is a set of tasks or activities that are performed to make the application function better. It could be that an application requires automation of repetitive tasks or needs to upgrade to the next level of software, needs to be redeployed, or needs to be rewritten. As you can see, the answer really depends on each individual application. To summarize, application modernization involves the following steps:
- Improving your current application architecture or development practices.
- Simplifying the maintenance and management of the current application.
- Making your application more sustainable.
- Migrating to a new platform to take advantage of new, innovative technologies either by moving completely or partially.
Drivers for application modernization
Now that we have defined application modernization, we ask ourselves why we need to do it. As in life, we use modern technologies like smartphones, tablets, etc., and then we upgrade them to either the latest software or the latest hardware to make our life easier, more efficient and environmentally sustainable. Similar concepts apply to an enterprise and any IT application. Drivers for modernization are many and varied. They not only help you stay ahead of the competition but also provide the following:
- Business opportunities due to market demands and trends
- The agility to adopt changing business processes by implementing microservices-driven architecture with shared services
- Consolidation of data centers by streamlining technology platforms and infrastructure independence for applications
- Use of automation and emerging technologies to drive simplification of business and IT processes.
- Increased cost efficiencies by removing functional and application redundancies and improving CI/CD practices.
Once we have identified why we need to modernize the application, we need to then define what it means for us. Modernization is not only migrating (rewriting or redesigning or replatforming); it is also adapting (improving DevSecOps, non-functional, user experience, developer experience, etc.). It is imperative that we provide multiple approaches for the businesses on how to modernize their suite of applications.
The application modernization journey
The CIO modernization journey started with an assessment of our IT portfolio—mainly around as-is discovery of the applications on existing platforms and technology stacks—and understanding business criticality and end-user pain points. This analysis helped us to understand the business value of the applications to determine what to do with them: retire, retain, relocate, rehost, replatform,or refactor. For those business applications that should remain, moving to standard modern software development practices makes it easier to take the next steps in modernization.
Because expansive modernization is time-consuming and costly, we decided to perform runtime or operational modernization first. We focused on choosing the right deployment platform and cloud-native technologies during this phase. One such example is migrating J2EE applications from on-premises traditional WebSphere servers to lightweight WebSphere Liberty containers. This runtime modernization is performed with minimal code changes, making the legacy applications portable and resilient. But most importantly, it paved the road for architecture modernization from monoliths to microservices and from bloated virtual machines to containers:
IBM CIO manages a large portfolio of business-critical applications, some of which were created in the 1990s. Our biggest challenge was to scale this modernization approach across hundreds of applications. We created reusable modernization patterns based on the technology stacks and provided a detailed planning blueprint. Maturing our DevSecOps practices and increasing the automated testing helped tremendously in accelerating the production deployments.
As an example, we modernized a workflow-based web application that records and tracks the engagement of IBM Consulting Solution Managers on sales opportunities. The web application was hosted on a cluster of virtual machines (VMs) with a technology stack of traditional IBM WebSphere, IBM Db2, IBM MQ and IBM Filenet. It was transformed from being hosted on a VM where the databases and document repositories were deployed standalone to IBM Db2 on Cloud and IBM Cloud Object Storage.
We first transformed the web application from traditional WebSphere to WebSphere Liberty containers on a CIO-wide managed Red Hat OpenShift platform. We then migrated databases to Db2 as a Service on IBM Cloud. The application was further optimized to run and deploy business rules on ODM (Operational Decision Manager) on IBM Cloud. The modernization led to a reduction in latency and improved the overall performance of the web application. Utilizing shared services as a service model led to cost reductions and higher resource availability. This not only improved the DORA metrics and user satisfaction, but the team upskilled themselves with the latest cloud technologies. The knowledge gained was further shared with other application teams in the form of reusable patterns.
This journey is made easy by utilizing tools like IBM Cloud Transformation Advisor (CTA), IBM Mono2Micro and Konveyor*. CTA helps us with application and server discovery and points us in the direction towards what can we improve/ enhance and which platform would work best for us. IBM Mono2Micro helps the developer create a microservices architecture, regardless of skill level or technical knowledge. It breaks the monolith into partitions that can be the starting point for microservices, and provides code for it. And Konveyor is a CNCF foundation open source project that has multiple tools (like tackletest, forklift, etc.) that help with accelerating the modernization journey by providing paths towards rehosting, replatforming or refactoring.
The next set of blogs in this series will take you through a deep dive on how IBM Cloud Transformation Advisor and IBM Mono2Micro helped us accelerate the modernization in the IBM CIO.
Looking to the future
Application modernization is a continuous process, and application squads should not think that once they reach a defined milestone, the modernization has ended. High-performing software teams always look for opportunities to modernize and have a focus on how they will manage future technology and/or strategy evolution. This helps them adapt to changes faster and easier, depending on needs of the hour. It’s a journey; not a fixed destination. As with changing business needs, it’s always on the move.
Learn more about WebSphere Hybrid Edition.
Discover how to increase WebSphere ROI.