Enter Centric: Repeatable Processes to Upgrade Technological Dependencies, Containerize Applications and Deploy to the Cloud
Repeatable Processes: Building an Amazon Web Services (AWS) Modernization and Migration Factory
We began by conducting a three-month proof of concept (POC) to determine the feasibility of migrating more than 100 applications over the term of our engagement. To accomplish this, we determined we needed to develop repeatable processes that would not only speed modernization but also quickly and reliably deploy to the target cloud environment.
We identified about thirty repeatable steps for application modernization and migration, from kickoff meetings through formal handoff. To promote transparency and visibility, we developed an information repository that allowed everyone to see where every application was in the modernization process.
We then developed and piloted our AWS Modernization and Migration Factory approach by successfully modernizing and migrating five applications concurrently with one team. As the project continued beyond the initial POC period, we scaled to 10 concurrent modernization and migrations at one time.
Reducing Technological Debt
At the beginning of our engagement, we knew we had a lot of technological debt that could prevent an application from being moved to the cloud. For example, the client might have version 2.4.5 of an underlying dependency, but the application would need to be at least version 2.6.4 for migration.
However, addressing this type of technological debt is not as easy as installing a newer version. First, interdependencies grow more complex as work progresses. Second, each application’s requirements are different, making reducing technological debt a case-by-case undertaking. This required the team to address these dependencies individually, in some cases re-architecting key aspects of the application.
Working with the client, we made sure we had resources on hand to work in multiple disparate technology stacks, provide a high degree of transparency, and modernize the applications to their technology standards. The high level of collaboration we developed with our client’s team allowed us to work through each application’s core requirements and raise them to the appropriate level of modernization for successful deployment to the cloud.
Containerization
A key element to our modernization effort was containerization, the process of placing applications in a “container” so they are independent of the operating system. Containerization provided reliability and scalability that the legacy applications did not natively have before. It also helped to expedite their deployment to the cloud, doubling to solve one of their key challenges, which was getting the applications to run the same whether they were in development, QA or production.
Cloud Deployments
In addition to the over 100 applications our client wanted us to help migrate at the beginning of our engagement, they had a group of 18 applications that they wanted to migrate themselves. However, the more we worked with our client’s teams, the more comfortable they became with our approach and skill set, and their application manager added those applications to our scope of work.
As a result of our repeatable processes, reduction of tech debt, containerization, and much collaboration with our client’s team, we will have deployed more than 100 applications by the end of our engagement.
The Results: Becoming a Modernized and Agile Organization
Deploying these applications to our client’s AWS cloud environment has decreased their reliance on a costly physical data center and implemented a more modern software development culture within the company. Cloud-based software distribution allows all employees to access the latest version of the tools they need more easily, and IT employees can work requests as they come in, in real-time, from anywhere and at any time. Our client also can now retire costly, long-term software licensing contracts, making them a more agile organization.
In one such case, an in-house application had sluggish performance, limited testing coverage, and a costly licensing model. With modernization, we improved testing coverage by 80 percent, upgraded multiple technology dependencies, re-architected key elements, containerized the application, and deployed it to the cloud. As a result, our client’s workers now report that the new tool is much faster, with a 10-fold increase in performance. Coupled with improved scalability, reliability and modernized technology, this application is a shining star of the many successes we have helped our client achieve.