Application Modernization
One of the Gartner Reports for Information
Technology called out the paths to adopting the public cloud as one of Five R’s
– Rehost, Refactor, Rearchitect, Rebuild and Retire. Many Solution Architects
would tend to agree with such separate workstreams for the progression from
assessment through deployment and finally release of the cloud hosted
applications. But while the analysts and even customers tend to focus on one
approach, the Solution architects often see many paths and even involving
intermediary steps between the start and the finish. While they fine tune the path by optimizing
several parameters and often on a case-by-case basis, they generally agree with
the break-out of these definitions.
Rehosting is a recommendation to change the
infrastructure configuration of the application in order to “Lift and Shift” it
to the cloud using Infrastructure-as-a-service.
Refactor is a recommendation to perform modest
modifications of the application code without changing the architecture or
functionality so that it can be migrated to the cloud in a container using
Container-as-a-service or using Platform-as-a-service.
Rearchitect is a recommendation to dramatically
modify the application code thereby altering the architecture to improve the
health of the application and enable it to be migrated to the cloud using
Platform-as-a-service or deployed serverless using Function-as-a-service.
Rebuild is a recommendation to discard the code
of the application and develop it again in the cloud using
Platform-as-a-service or serverless Function-as-a-service.
Retire is a recommendation to discard the
application altogether or potentially replace it with a commercial
software-as-a-service alternative.
All of the recommendations above can be made on
an application-by-application basis but must be elaborated with additional
information such as the Lines of code analyzed, the number of files read, a
score or ranking, the total number of full-time employees required, a
quantitative assessment for cloud readiness, the number of roadblocks
encountered, the estimated effort, Operations and Business Support system
dedication, the SR, SA, and SE assessments, and tentative dates for the
release.
As you can see, this process can be quite
intensive and repeating it for dozens of legacy applications can be quite
tedious. Coming up with a table for the results of the rigor across all these
applications and for a dashboard to represent the insights via canned queries
can easily become error prone. Fortunately, some trail and documentation are
maintained as this analysis is conducted and there are quite a few tools that
can help with the visualization of the data even as the data is incrementally
added to the dataset. An end-to-end automation that can help with detailed
analysis, drill downs and articulated charts and graphs is possible if those
applications were merely scanned by their source. Indeed, a rapid scan of a
portfolio of applications can be a great start in the roadmap that requires us
to assess, mobilize, migrate and modernize but iterations will remain
inevitable and even desirable as they help towards optimizing continuously.