Over the last few years, we’ve all been exposed to different meanings of the word “Cloud”. Similarly, other terms like “Application Development” and “Application Modernization” are sometimes used nebulously as well. Application Development could mean a few different things – it could be creating an integration between two existing software modules using APIs, or it could be mobile application development, or it could mean developing a standalone computer program that serves a business purpose, or it could mean all of the above. No one term is more correct than the other. It depends on what is relevant for you, and how you define an application. Application Modernization could also cover a few things – it could mean recoding an application in a new programming language, or moving the application from one platform to another, or moving it to the public cloud, or making the application architecture more agile and breaking it down in to microservices framework. If the objective is to have your legacy application leverage all the benefits available from a distributed Cloud architecture, the process to make the necessary modifications to that application’s architecture or implementation is referred to as Application Modernization.
“Cloud-Native” is the term used to describe the characteristics of born-in-the-cloud applications. These applications are built to be used in a distributed fashion, are services aware, resilient, and scalable. But the largest proportion of applications in many industries are still run within legacy on-premises environments. Short of doing a rip-and-replace for those functional applications, there is a need to transform and modernize these legacy applications to fit the new Cloud architectures.
Here are some things to consider reviewing, as part of the application modernization process:
- Application Architecture (dependency libraries, database, web tier, front end, queues, etc.)
- Coding Language
- Any dependencies on the platform hosting the application
- Decoupling of components or functions
- Resiliency / Error Handling
- Storage for Stateful Apps
- Scalability
- Metrics or Logging endpoints
Let’s look an example. Your legacy application may be monitored for metrics using application specific context using one of the commercial APM tools. As part of the modernization process, and applying best practices approach, the metrics and logs can be exposed as a service (microservice) via a /metrics endpoint by the process of application instrumentation. This would make it much easier to monitor the metrics microservice, and filter out the needed readings. It also makes it easier to upgrade the metrics service if you were to add or remove the exposure of specific parameters.
Associates at Keyva have helped multiple organizations assess their application readiness and helped with application modernization. These include things like refactoring existing applications, adding a wrapper over current applications so they can be consumed easily by DevOps processes, and more. If you’d like to have us review your environment and provide suggestions on what might work for you, please contact us at [email protected].
Anuj joined Keyva from Tech Data where he was the Director of Automation Solutions. In this role, he specializes in developing and delivering vendor-agnostic solutions that avoid the “rip-and-replace” of existing IT investments. Tuli has worked on Cloud Automation, DevOps, Cloud Readiness Assessments and Migrations projects for healthcare, banking, ISP, telecommunications, government and other sectors.
During his previous years at Avnet, Seamless Technologies, and other organizations, he held multiple roles in the Cloud and Automation areas. Most recently, he led the development and management of Cloud Automation IP (intellectual property) and related professional services. He holds certifications for AWS, VMware, HPE, BMC and ITIL, and offers a hands-on perspective on these technologies.
Like what you read? Follow Anuj on LinkedIn at https://www.linkedin.com/in/anujtuli/