Most legacy systems demonstrate robustness, steadiness, and efficiency in providing the desired outcome and high performance; thus, business users prefer to continue with the established systems.
However, using legacy systems has its challenges. Organizations require more overheads such as cost, effort, security, version compatibility, and inadequate automation. A comparative business analysis process has emerged considering the multiple technology alternatives and the market value of readily available solutions. Businesses are compelled to consider legacy modernization and transformation after analyzing the available resources, implementation costs, and the importance of customer retention.
Most technology giants are searching for easy and efficient approaches to transformation that can provide cost-effective and modernized systems without losing core application functionality.
Performance determines the value of the entire system in the modernization process. Performance issues in business-critical applications can damage an organization’s reputation. Applications supporting critical business processes that are slow or not readily available can cause revenue loss and leave customers dissatisfied, directly impacting employee productivity and brand reputation.
No compromise can be made on the legacy systems’ core functionality and performance. Paradoxically, performance issues prevent many enterprises from opting for modernization. To address this lacuna, it’s crucial to analyze the challenges that hamper system performance and provide effective solutions.
Legacy systems are equipped to leverage well-developed constructs and architectures.
Before modernizing the legacy applications, it is important to:
Review the source architecture thoroughly
Ensure inventory analysis
Conduct thorough pre- and post-testing
Identify equivalent target modern technologies
Identify infrastructure needs and fine-tune them as needed
Identify and map the appropriate target elements for each source element to achieve equivalent performance
Capture the performance benchmark at every level
A variety of modernization options are available, each solving a different purpose. However, to usher in an era of digital transformation, it is necessary to analyze the requirements of legacy modernization systematically, and then implement them in a step-by-step approach. Post modernization, performance-related challenges can vary across applications.
In some scenarios, performance is affected due to the number of lines in the code, while in others, it could be database restrictions on the number of fields, or the base platform environment for the migrated application. A robust mechanism is required to study each component of the source system and its performance aspects.
For example, in a bank of Europe, only seven business functions out of more than a hundred consume approximately 70 percent of the millions of instructions per second (MIPS) in the mainframe. It is crucial to analyze and understand such patterns.
While designing a solution that optimizes performance and preserves core functions, one needs to consider the following business aspects:
Despite the merit and popularity of digital transformation, many business-critical applications such as stock markets, flight controls, banking systems, and so on, are still running on legacy systems.
The performance and scale of such applications are extremely high and cannot be compromised since they have a direct impact on core business operations. Many CIOs are unable to decide on the modernization options available, due to uncertainty about the ability of modernized systems to achieve better or at least equivalent performance. While each modernization approach serves a different purpose, enterprises are encouraged to focus on performance when evaluating the challenges and risks associated with target systems.
The major performance challenges during modernization include:
The nature of legacy systems: Legacy constructs or structures such as the virtual storage access methods (VSAMs), computational datatypes, in-memory data structures, and such, are designed to deliver high performance.
For instance, legacy databases such as VSAM are native to the mainframe and perform remarkably well with COBOL-based applications. In the case of online and batch applications, COBOL and VSAM offer high performance and throughput since they run in their native environment. While modernizing such intrinsic mainframe applications, it is necessary to address their key legacy constraints that offer superior performance in their native environment. It is also essential to identify the equivalent target modern technologies that can achieve the same level of performance.
In a certain instance, for a banking customer, the entire core data was available in two large VSAM files with more than 100 fields each. It was a huge task to decompose the files into proper relational structures without impacting application performance. In such scenarios, it is necessary to identify equivalent and robust database platforms.
Monolithic architecture: Legacy applications usually have a monolithic architecture which means that all the application layers, such as presentation, business, database, and so on, are coupled. Thus, there is negligible network and communication overhead, resulting in high performance. On the other hand, modern applications function in a layered architecture that splits the single application layer into multiple layers. It causes a decline in system performance due to the communication of services across layers, making modern systems more time-consuming. However, layering is unavoidable, as it is the foundation for modernization.
In another example, a financial customer had a system with a single batch job that had three million lines of code running efficiently for several years. However, due to a lack of proper documentation, it was an arduous task to break that single job into minor services while retaining the same efficiency.
Identifying the right target element for each source element: A legacy or mainframe system does not necessarily mean that it comprises of a single programming language or a set of components. Several components, such as programs, maps, databases, Job Control Language, scheduler, security, various utilities, reports, and such, work seamlessly together to ensure that the application executes processes successfully. The integration of multiple components is very efficient in a sophisticated legacy environment. Finding a befitting equivalent as a target that could be on-premises or on cloud is a real challenge.
For example, finding the right search or sort mechanism that matches the efficient mainframe search or sort function is challenging to avoid performance bottlenecks.
The following approaches can be implemented to solve the issues systematically:
Use functional equivalents as potential alternatives in the target: Any upgrade should discard any performance deterrents. Hence, replicating as-is legacy constructs into the target environment must be avoided. The objective is to create a functional equivalent, leveraging the potential of the target architecture. For instance, replacing the legacy VSAM in the target environment with another legacy construct such as the file structure is ineffective. Instead, a high-performance database on the cloud might be a suitable alternative.
Leverage modern infrastructure: Multiple application layers in a modern application introduce overheads, affecting performance. Regardless of the overheads, modern applications have the advantage of running each layer on a different hardware or container and scaling them according to the changes in the requirements. The infrastructure power offered by new platforms must be utilized to ensure performance.
Modern infrastructure offerings such as parallelism, dynamic scaling, and on-the-fly provisioning allows performance equivalence and scalability challenges to be addressed through creative solutions.
For example, in a customer scenario, post the direct conversion of a batch job, the elapsed time increased by four to five times compared to the base mainframe platform (from 10-15 minutes to an hour). A strategy to move the complex query intensive operations from the application layer to the stored procedures helped in improving performance and matching it with the mainframe performance.
Benchmark component replacements in target-to-source elements: Every target or source-equivalent component identified as a suitable replacement must be benchmarked. For instance, to choose a product for the sort operation, it is advisable to benchmark the components being considered before finalizing the selection. By comparing the time taken to sort a million records in mainframe versus sorting them in a target environment, performance disparity can be gauged to make appropriate decisions. Equivalent performance should be a baseline for analysis, while improvements are preferred through tuning. Comparing each source element with its corresponding target elements facilitates the decision-making.
The way forward
An ideal modernization solution should benchmark comparisons pre-emptively for commonly used components and provide insights into the most suitable target product, target open-source component, and custom-built components for every source component.
An exhaustive list of mappings with their respective pros and cons, along with a list of tuning mechanisms should be available to achieve peak performance.
The solution should integrate well with each component after a thorough review of the various architectural elements in the target such as communication, security, and modularity.
The modernization solution should analyze the source application for all technical and business dependencies and use a step-by-step approach to capture minute details. Conventional performance and load testing at all stages of modernization can ensure the desired outcome. This approach enables higher or at least equivalent performance levels in target systems.