Wednesday, December 28, 2022

 

This is a continuation of a series of articles on Application Modernization. In this section, we take a slightly different perspective on the Build-Deploy-Run aspect of the new software.

When we modernize an existing application, we can ease our move to the cloud with the full promise of cloud technology. With a cloud native microservice approach, scalability, and flexibility inherent to the cloud can be taken advantage of.  Modernizing the cloud native applications enables applications to run concurrently and seamlessly connect with existing investments. Barriers that prohibit productivity and integration are removed.

One of the tenets of modernizing involves "Build-once-and-deploy-on-any-cloud". This process begins with assessing the existing application, building the applications quickly, automating the deployments for productivity and running and consistently managing the modernized application.

Identifying applications that can be readily moved into the cloud platform and those that require refactoring is the first step because the treatments of lift-and-shift and refactoring are quite different. Leveraging containers as the foundation for applications and services is another aspect.

Automating deployments for productivity with a DevOps pipeline makes it quick and reliable.  A common management approach to consolidate operations for all applications ensures faster problem resolution.

When the application readiness is assessed, there are four tracks of investigation: cloud migration, cost reduction, agile delivery and innovation resulting in virtual machines in the cloud for migration purposes or containers for repackaging, re-platforming and refactoring respectively - all of these in the build phase of the build-deploy and run. While VMs are handled by migration accelerators in the deploy phases, the containers are handled by the modern DevOps pipelines in the deploy phase. The modern application runtimes for containers are also different from the common operations on virtual machines between the migration and modernization paths in the run phase. Finally, the migration results in a complex relocated traditional application while the modernization results in traditional application via repackaging, cloud ready application via re-platforming and cloud native application via refactoring.

Application Modernization goes together with cutting costs. Containers and Microservices lower costs not as an afterthought but with the design decision itself. The modernization journey has many approaches between assessment phase and deployment. These can be graded as follows:

1.       Containerizing the whole application simplifies the transition to the cloud. This is a migration-based approach that takes the least toll.

2.       Exposing on-premises assets with API helps to replace a monolith with SaaS. This strategy works well for legacy assets that are difficult to move to the cloud.

3.       When costs must be driven even lower, refactoring the monolith into the services helps a lot.

4.       It might even make sense to add new microservices, to innovate incrementally, reduce complexity, and establish success early. This is a transform and innovate approach.

5.       Finally, with agile delivery, we can sunset the monolith we started out with.

It helps to increase the delivery velocity throughout the modernization journey with one or more of these approaches.

A trusted foundation often helps with re-platforming.  Container platforms like Kubernetes and OpenShift help both the developers and the operations Staff. Native cloud services are also popular for certain resources and for hosting. Often with a continuous integration and continuous deployment involving infrastructure-as-a-code, the destination can be one or another cloud requiring the investment only once. Modernization platforms, tools and services are not mature yet to the point where they onboard customer legacy applications directly so must be done by hand today and possibly with container platforms and other cloud resources.

Application, data, integration, automation, multi-cloud management, and security are all considered to enable a faster and more reliable way to move to the cloud.

It’s best to invest in a strategy that involves the intersection of innovation, modernization, and DevOps. Developing innovative cloud native applications, modernizing, and leveraging investments, and creating an agile DevOps culture are part of this strategy.

Reference:

1.       Reverse engineering: https://1drv.ms/w/s!Ashlm-Nw-wnWhMNPrSvPK-uwYpT3Lw?e=sILWQZ

2.       Dependency Complexity: https://1drv.ms/w/s!Ashlm-Nw-wnWhLlVVpSxd7gT9ddmhw?e=2CAili   

3.       Application Modernization: https://1drv.ms/w/s!Ashlm-Nw-wnWhMMQ1jDEwSF-4ALIOw?e=YsdVQM   

4.       Modernization tool for calculating metrics – Javier Luis et al.

 

No comments:

Post a Comment