The application portfolio within enterprises is associated with a large number of applications made up of existing technologies like Cobol, PL1, Natural or other proprietary programming languages. Though enterprises are looking forward to flexible business models, opportunities to drive down cost and business to IT alignment, are often challenged by risks associated with simplifying the complexities of an existing environment. An end-to-end standardized modernization strategy driving business process improvements while managing risk will enable these enterprises to leverage the years of investments they have made in their most critical assets which are trapped within those millions of lines of source code.
Though there are significant cost and time-to-market advantages for enterprises to embrace the cloud services model, existing applications associated with underlying technology challenges pose a significant challenge due to their procedural and monolithic nature. There are various application modernization strategies to consider in deciding on a cloud consumption and delivery model that enable self service and economies of scale in a virtualized and optimized environment.
Modernizing application to cloud can be characterized by a five step methodology as depicted below:
1. Cloud readiness assessment
2. Identify candidates for application modernization
3. Create business case
4. Delineate architecture and cloud implementation roadmap
5. Implement modernization to cloud options
It may not be a viable value proposition to modernize all existing applications to a cloud environment. As a first step, we need to perform assessment of the enterprise’s application portfolio to identify candidates for modernization to cloud. We can utilize various inventory analysis tools depending on the nature of the source platform to perform automated bottom-up source code analysis of existing applications in order to identify components, complexity, dependency and other technology characteristics of these applications. These technology characteristics, coupled with technology architecture insights from application architects and business subject matter experts (SME) input on business value, could enable us to prioritize the candidates for cloud enablement. Candidate selection should focus on various modernization options considering risk, time and value options. Suitability and feasibility of applications for cloud enablement are carried out during roadmap phase, creating the business case for implementation engagements.
There could be options focused around extending the life of existing code through the following:
• Application re-hosting: Application re-hosting helps by moving applications from one platform to another without any significant changes to application source code and design. In this approach, source application is recompiled in the target cloud environment. Compiled applications can be placed into virtualized workloads. Workloads are optimized to deliver orders of magnitude and scale. This approach is associated with lesser complexity and business impact. This is quicker and cost effective solution ensuring the enterprise’s existing technology workforce could be leveraged for application support and maintenance while organization can leverage full advantage of a cloud based platform. Since the source code is maintained in cloud environment, applications still remain non-interoperable posing limitations towards enterprise integration or adding new business functionality in changing business context.
• Application wrapping: This approach is aimed at extending existing applications in cloud environment to provide a richer user experience or use cloud services to SOA enable these applications. Integration is achieved modeling part of application as a black box and creating interface code from the model in target language. Though this ensures efficient reuse of existing IT assets, complexity and business impact is higher as compared to application re-hosting, making this only a suitable option for web enablement and efficient UI Integration scenario.
• Application conversion: Application conversion deals with conversion of application from one programming language to another through usage of process, methods and tools where application design undergoes either no or minimal change. This is associated with line by line translation or mirror conversion of one language to other through usage of tools. Converted workload in cloud environment will be in a position to leverage capabilities of newer platform and newer programming language but the design limitations in this option will not make the converted applications scalable and manageable. However, this option will help with quickly moving out of source system platform and programming environment, thereby providing cost and time advantage as compared to complete re-engineering of applications.
• Application re-engineering: Application re-engineering is the most time consuming, costly and risky approach to enable existing applications onto the cloud platform. In this approach, the source application is completely rewritten in the target language with change in platform and rebuilding the architecture entirely in the target environment. Adoption to this approach can provide improved service quality, massive scalability and enhanced user experience. Automated reverse engineering techniques to extract business rules from source code and forward engineering techniques to generate source code from target design can minimize the cost and risk to a great extent. A re-engineered application can be deployed in its entirety in the cloud model making it the best candidate to enable new business opportunities.
• Application replace: This approach deals with replacing existing application functionality by commercial off-the-shelf packages in the cloud enabled platform. This may require customization of some of the business processes during the replacement. This approach can ensure visibility and control across IT and business services to ensure consistent delivery.
Some key parameters to be taken into account while adopting one or more of the above cloud enabled existing application modernization strategies are the following:
While adopting one or more of the above cloud enabled existing application modernization strategies, there are a few key parameters to be taken into account:
• Existing application discovery and evaluation during the assessment stage to ascertain compliance and prioritization towards cloud enablement
• Identify dependencies and conflicts between components and applications Establish solution architecture and implementation roadmap to be drawn for each of the identified options before starting the implementation engagement
• Understand the full modernization plan and work streams before starting cloud enablement
• Establish a framework for implementing each of the strategies
• Ensure existing modernization to cloud adheres to established policies and procedures during implementation
• Promote use of best practices to drive scalability, performance and security considerations
• Leverage automated tools depending on nature of source and target platform to implement modernized applications in cloud platform
• Adopt a phase-wise iterative and incremental approach towards cloud enablement instead of a big bang approach
• Institutionalize automated verification and validation mechanism to test cloud enabled modernized applications
• Establish a governance strategy to stay on track and maximize return on investment
Enterprises that are modernizing their applications to cloud platforms are in a position to unlock significant business value by tapping into services from vast networks to create a limitless array of opportunities. Existing applications must aim at adapting to the new reality of cloud without disrupting the business continuity.