Sergey Nivens - Fotolia
Typically, a company embraces Agile and DevOps concepts for applications that already run on modern platforms, and not to apply those principles to modernize legacy apps. But that's exactly what UPS did with its package-tracking system.
That system, part of the Atlanta-based shipping company's customer visibility division, processed 335 million tracking operations on its peak day in 2018. But within UPS' overall business, it represents a small part of the IT infrastructure. And a specific focus on that application helped the visibility team's most recent legacy application modernization efforts succeed where they had failed in the past.
"We've tried this project a number of times, and we've pitched it before, always as a way for us to reduce our costs," said Theresa Grier, senior director of customer visibility at UPS.
"We weren't trying to build everything at the same time," Grier said. "This was one of our first Agile projects in the [customer visibility division]."
Furthermore, the team's proposed mainframe migration project for the tracking app prioritized the business value of a legacy application modernization, beyond reduced IT infrastructure costs.
"The business can come to us when they want to adopt a new business model in a very short period of time, and we're able to adapt to that in IT," said Nish Jani, senior application development manager at UPS. "The Agile team can turn on a dime and shift gears to deliver new products and services, with minimum viable products -- instead of doing Waterfall, waiting six months and working on a product that doesn't even deliver what the market's asking for."
Legacy app modernization journey begins with baby steps
Once its budget was approved to proceed with the project, the UPS customer visibility team tackled the migration in iterative phases, which it completed with a series of Agile sprints. The first phase captured tracking data stored with Db2 on the mainframe and transformed it to be stored in an open source Couchbase database.
"Legacy mainframe systems use fixed file formats, and they're tightly coupled. So, any change to mainframe databases causes downstream problems," Jani said. "We had to change from the fixed file format to the canonical file format using JSON."
As it tackled data transformation, the UPS team broke the project down further to cover the mobile version of the tracking app first, which offered faster feedback on features. The team first updated international customers' mobile app interfaces, followed by U.S. mobile customers. From there, the team moved on to update the desktop version of the package-tracking app.
Nish JaniSenior application development manager, UPS
This process relied on collaboration in small groups between subject-matter experts in the mainframe tracking app and specialists in Java and the JSON file format. Piece by piece, these groups transformed fixed file format data into JSON files and added fields that allowed more flexibility in tracking operations. These added fields enable UPS customers to notify UPS when they won't be home for a package delivery and select whether they want the package to be held at a receiving center or sent to a different location, for example.
The switch from Db2 and mainframe application code allowed UPS to access the data through open source Linux systems and host the data on open source Linux container orchestration systems, namely Red Hat OpenShift. This platform is also easier to update frequently and iteratively, as applications change through automated Jenkins CI/CD pipelines, Jani said.
Since 2017, IBM has developed more tools to link new versions of its z Systems mainframe platforms with CI/CD tools, but those came after UPS began its migration project, Grier said.
Now that the tracking app has run on open systems in production for more than a year, UPS will move on to legacy application modernization in the rest of its customer visibility portfolio and, eventually, all of the company's divisions. The visibility team has also begun to see reduced customer service churn and staffing costs with revisions to the UI made possible by flexible data fields in the Couchbase platform.
Further down the road, UPS also wants to add advanced AIOps automation to its OpenShift environment, UPS President Ken Finnerty said in an interview at Red Hat Summit in May 2019.