Application Modernization Field Guide continued.
Application is also about selectivity. The business needs that are driving to modernize maintain higher
priority than others. Tools native to the cloud can help with gaining insights and for performance
analysis that brings together the technical priorities. The modernization journey begins with matching
effort to business priority. The first few projects could be selected such that they are short in duration
and high in potential business value. Then, all possible modernization options can be evaluated and
ranked based on their complexity, cost and business value. Then the options can be prioritized and
assessed for feasibility.
As an example, if a node.js application deployed on a Linux server must be modernized, one of the ways
to modernize it would be to decouple the application into microservices, package the application into a
Docker container, which is then run on a cloud native infrastructure. Certain cloud services are designed
to make it easy to run, stop and manage Docker containers on a cluster. It is even possible to host the
cluster on a serverless infrastructure that is managed by the cloud if the services or tasks can be called
out. These services also create a consistent deployment and build experience, manage, and scale batch
and Extract-Transform-Load workloads, and build sophisticated application architectures on a
microservice model.
Writing an application in a container image is good first step towards modernization, but many
applications aren’t optimized for containers. Load balancing, application-state handling, and monitoring
can be different when hosted in the cloud. This requires rewriting portions of the applications. Similarly,
performance tuning and DevOps processes must be aligned to containers. Prebuilt containerized
middleware and services help with this journey. Finally, managing and monitoring operations can help
maximize speed and agility.
Some applications are best exposed as APIs that are easily reused for building new capabilities that
augment the existing software. Those APIs can then be reused to integrate future applications into the
ecosystem. APIs can adhere to Representational State transfer architectural style and expose existing
access from any endpoint. These APIs can be placed under management control to improve security,
performance, and visibility. New applications can build on freshly exposed APIs from existing
applications without requiring changes to existing applications. Businesses also use this opportunity to
harness their data to create better outcomes and customer experiences.
When an application is pushed to production, the DevOps and configuration must be managed and
modernized as well. Applications are monitored to ensure availability and performance according to
service-level agreements. Service management must also transform to support this paradigm shift.
Monitoring metrics and logs helps to determine application health and dashboards are easy to generate
with cloud computing. Using such tools and automations and tracking issues helps to promote visibility
of incidents to everyone.
Lastly, there is not a single formula that holds but an approach that is totally unique to the business
goals and needs. The modernization goals of agile delivery, transform-and-innovate, reduce costs,
replace with SaaS, and cloud migrations can be planned for by analyzing for insights and the utilization
of one or more modernization patterns that include pivoting from monolithic strategies, adding new
capabilities as microservices, refactoring monolith to microservices, exposing APIs, and migrating
monolith to a cloud runtime.
No comments:
Post a Comment