Digital transformation is a priority for enterprises looking to increase business agility by automating operations, delivering rich customer experiences, and launching new products and services. Today, building and sustaining a competitive advantage is linked not to size or strength but to the ability to change — to move quickly, adapt, and seize opportunities, and be agile.
This requires a mindset based on the principles of continuous innovation. Digital transformation plus continuous innovation create digital resiliency. A resilient business is not just thinking about today. It must be able to effectively address future challenges.
To be successful, organizations need to modernize the applications that their business depends on. The process replaces older technology stacks with cloud-native ones, which enable applications to be more scalable, fault-tolerant, and interoperable than their traditional counterparts. This involves implementing a microservices architecture and application programming interface (API)–driven automation. In addition, these applications need modern infrastructure that is elastic and scalable.
As organizations modernize, they adopt open source software, which can speed innovation and reduce license costs, and is supported by the community. This impacts all layers of the technology stack, including infrastructure, data management, application platforms, and development frameworks. It is no coincidence that there is a strong correlation between open source software and cloud natives. Modern cloud platforms originated from open source software, so it is logical that applications follow a similar path.
Organizations that have completed the process of application modernization by implementing open source software on cloud infrastructure report better uptime and scalability of services as well as faster time to market. Google’s open source leadership and comprehensive cloud platform is helping the company’s customers to be successful in their application modernization journeys.
Open Source Software on Cloud Is Accelerating Enterprise Application Modernisation
Application modernization refers to updating older software to newer computing paradigms, including languages, frameworks, and agile practices to gain increased developer velocity and faster innovation cycles. Enterprises are accelerating their move to modern application development. In a 2021 IDC survey, 86% of respondents noted that their organization had modernized more than half of their legacy applications, up from 65% in 2020.
IDC data also indicates that developers have a high degree of influence and significant autonomy with respect to the selection of tools and infrastructure for projects on which they are engaged. The responsibilities of contemporary developers are no longer focused primarily on writing code but instead include the implementation of DevOps-related automation, application monitoring and life-cycle management, user experience, and security.
This is a driving factor in the shift to open source software as an alternative to proprietary technology stacks. IDC research shows that 67% of organizations are currently using open source software to support enterprise workloads. With 75% of developers reporting heavy use of Java, new development frameworks such as Quarkus, Micronaut, Helidon, and Spring Boot are accelerating the transition to cloud-native development based on containers.
The community approach to open source software increases the pace of innovation. By being open and freely available, it enables and encourages collaboration and the development of technology, solving real-world problems. It creates transparency in both access to software and the ability to act upon it. This facilitates the creation of standards and improves interoperability. It also reduces software and support subscription costs as well as vendor lock-in.
When planning for application modernization, there are three areas to consider (see Figure 1):
- Infrastructure modernization refers to implementing software-defined compute, storage, and networking resources that can scale on demand.
- Code modernization consists of refactoring legacy workloads using cloud-native concepts such as containers, microservices, and API-driven automation.
- Process modernization is the introduction of DevOps methodologies, including continuous integration and continuous delivery (CI/CD) of new software.
As a best practice, it is important to create an inventory of existing applications to determine both priority and the best path forward. There are five prominent modalities of application modernization:
- Rehosting of applications: The lift and shift of applications from one platform to the cloud, with zero to minimal architectural changes to the application
- Replatforming applications: The migration of applications from an on-premises environment to a cloud, with minor changes that leverage some of the cloud platform’s functionality, such as autoscaling and high availability
- Rewriting applications: Rewriting and coding a legacy application from scratch using modern frameworks and infrastructure
- Refactoring applications: The re-architecting of applications to optimize their functionality for the cloud (One common example of refactoring involves transforming monolithic applications into microservices architectures using containers.)
- Integration with modern development tools: The use of modern development tools such as cloud-based integrated development environments (IDEs), DevOps toolchains, APIs, microservices, and containers to extend the functionality of legacy applications
IDC research shows that organizations are employing multiple approaches to application modernization (see Figure 2).
Each approach has different benefits and challenges (see Table 1). While rehosting is relatively simple to implement, it does not unlock the full potential of the cloud. The most benefits are achieved when developers can take advantage of cloud-native concepts such as container orchestration, serverless compute platforms, and CI/CD integration.
Modernisation Pathway | Benefits | Disadvantages |
Rehosting | Rehosting involves speed because there are minimal changes made to application architecture, and applications can be rapidly migrated to the cloud. | Applications are not optimized for the cloud and are not able to fully benefit from modern architectures, which can lead to higher operating costs. |
Replatforming | Applications can more directly benefit from cloud-specific functionality such as autoscaling and other platform services. | Care must be exercised to ensure that the replatforming work does not lead to unexpected dependencies that can disrupt operations. |
Rewriting | Rewriting allows developers to bring a plethora of new features and functionality to an outdated application, making it more extensible and portable. | Rewriting is time-consuming and costly and can be a complex undertaking. There is a risk that performance characteristics can vary based on the architecture. |
Refactoring | Refactoring can transform the architecture of an application to render it easier to update for the long term, potentially increasing developer velocity for distributed teams. | Refactoring is complex. There are few structured guides or templates that provide developers with best practices. |
Integration with modern development tools | This involves bringing modern development functionality to legacy applications with minimal disruption. | Because the foundational application remains untouched, there are limitations to the amount of new functionality that can be integrated. |
Technologies adopted as part of the application modernization process include the following:
- Microservices allow a large application to be separated into smaller independent parts, with each part having its own realm of responsibility. To serve a single-user request, a microservices-based application can call on many internal microservices to compose its response.
- Containers are lightweight packages of your application code together with dependencies such as specific versions of programming language runtimes and libraries required to run your software services. Modern cloud-native applications are usually built as microservices using containers.
- Container orchestration frameworks such as Kubernetes group containers that make up an application into logical units for easy management and discovery. It abstracts the underlying infrastructure, enabling the automation of operations and service health monitoring.
- Functions as a service is a serverless execution environment for building and connecting cloud services. It allows developers to write simple, single-purpose functions that are attached to events emitted from cloud infrastructure and services.
- APIs are programmatic interfaces that provide secure access to back-end cloud services through a well-defined representational state transfer (REST) API that is consistent across the environment, regardless of the service implementation.
Figure 3 illustrates how organizations are implementing these technologies.
For this study, IDC interviewed four companies that have completed the app modernization journey.
Investment Services Firm Accelerates Legacy Infrastructure Transformation by Leveraging Open Source on Cloud
IDC spoke with the IT director of an investment services firm with offices in London; Madrid, Spain; Milan, Italy; New York; and Florida. Founded in 2003, the company had amassed a range of proprietary and custom-built solutions.
While the initial implementation of these systems was successful, problems emerged over time. The company went through a phase of rapid growth, which exposed limitations in the software architecture. Systems that are critical to operations and customer interactions were experiencing performance and scalability challenges. This was compounded by pressure to provide more external access to data via web and mobile applications.
The company’s software was deployed on Windows-based servers with Microsoft SQL Server in on-premises datacenters. Applications were a mix of several versions of .NET. When the primary software engineers responsible for these solutions left the company, much of the historical knowledge left as well.
Not having the skills in-house, the IT director hired a consulting firm to review the existing systems and propose a plan. Analysis showed that the existing software was not well organized and included a significant amount of technical debt. It quickly became obvious that this would not be a quick fix. The company needed a new strategy for its applications, and this was a chance to modernize on open source software in a cloud environment.
The company decided to implement MariaDB, an open source relational database designed by the original developers of MySQL. It also transitioned to PHP and a variety of open source Apache projects including Tomcat for its application layer. It chose to deploy this software on virtual machines in the cloud.
The benefits of open source software on cloud were immediate. The ability to provision resources quickly supported the rapid pace of development required to meet an aggressive timeline. It also allowed the company to try new ideas before committing to a large effort. This flexibility and agility combined with the security and scalability of the cloud allowed the company to not just address current needs but serve as a foundation for future growth.
The experience inspired the company to look beyond line-of-business applications to other areas such as productivity software. This led to the migration to Google Workspace, which includes collaboration tools such as Gmail, Calendar, and Meet along with business applications such as Docs, Sheets, and Slides. In hindsight, the IT director said that he wished he had made the move quicker: “Don’t wait until an emergency to plan for the future.”
Migration to Cloud Addresses Scalability in Fraud Detection for a Commercial Bank
Commercial banks are responsible for monitoring and reporting suspicious transactions in the services they provide. This is important not just to ensure regulatory compliance but also to earn customers’ trust. A program manager in charge of technology at a leading bank shared his application modernization journey with IDC.
Like most businesses today, banks look to technology as a way of differentiating themselves in the market and creating a competitive advantage. While the bank had been using cloud for many years, fraud detection systems were still deployed on local infrastructure. This was primarily to protect personally identifiable information (PII) that was deemed risky to place outside of the bank’s control.
However, these internal systems were unable to effectively handle the volume of transactions during peak times. On a monthly basis, the bank processes 70 million to 100 million transactions. During the holidays, that amount can triple. There are approximately 1,000 employees around the globe who process alerts related to these transactions.
The bank had several objectives. It needed to address its scalability problem in a secure manner. It also wanted to innovate faster in order to roll out new features and functionality. There was also a desire to reduce its investment in capital-intensive equipment and the associated software licensing and support costs.
A majority of the bank’s existing software was based on Oracle Database and Java. Instead of rehosting those applications in the cloud, the bank decided to replatform where possible and rewrite the rest so that it could take advantage of cloud-native concepts and open source software. It chose Google Cloud, implementing the Google Kubernetes Engine (GKE) and Cloud SQL for PostgreSQL. The container-based architecture allowed the bank to subdivide its larger applications into smaller units that could be developed in parallel and updated more frequently. Google provides solutions like the Oracle to Postgres toolkit to facilitate data migration using a mix of existing open source and Google-built tooling to support the process of converting schema and establishing data replication.
Given the size of the undertaking, the bank did experience some challenges along the way, mainly related to data migration. It highlighted the importance of having a cross-functional team of technical and business analysts that understands the underlying data structures and business requirements. The bank was also moving from a waterfall to an Agile development methodology, which required training and process reinforcement.
In the end, the program manager said the effort was a success. As internal teams became more familiar with the cloud and DevOps tools, productivity accelerated. This confidence is leading to new projects with even more ambitious objectives. The bank has begun to implement Google artificial intelligence (AI) and machine learning services to make its fraud detection more accurate. According to the program manager, “If we can improve our detection algorithms by just 0.05%, it has a meaningful impact to our business.”
Open Source Solves Integration Problems with Financial Services Systems
Financial services organizations deal with large volumes of data. While that is a challenge in itself, imagine the complexity of that data being spread over hundreds of systems. That is what was facing a financial services organization’s vice president (VP) of technology, who decided to utilize the cloud as an alternative to in-house systems to ensure its data integrity.
This particular use case involved credit limits associated with business loans. When borrowers apply for a loan, a series of checks are required to validate credit-worthiness and to ensure borrowers do not exceed their approved credit line. Although this appears straightforward, there are multiple systems involved that are not always in sync with one another.
For example, loan approval occurs in one system, loan booking in another, and loan servicing in yet another. There are 30 individuals across the United States, the United Kingdom, Canada, and Mexico who are responsible for validating this data, and what began as a small problem was starting to grow. In some situations, borrowers were being over-approved for a loan, while others would experience underwriting delays. Reconciliations were mainly a manual process that was prone to user error.
The company had not only a large investment in IBM mainframes but also a variety of other data stores, including Microsoft, Oracle, and Sybase. Applications ran in IBM WebSphere, Oracle WebLogic, and Microsoft IIS. Different integration strategies were used to synchronize data between systems, but there was a lack of consistency in how logic was applied, and it was becoming increasingly difficult to manage and fix.
The VP investigated cloud service providers for a solution. He was looking for a better way of aggregating this information and wanted to employ modern tools for data management, analysis, and integration. After evaluating several cloud SPs, Google Cloud was selected. The primary reasons given for selecting Google Cloud were the maturity of the platform, Google’s experience delivering on the needs of large companies, and a focus on the financial services industry.
Google’s leadership in the open source community and support for open source software was another factor. Existing proprietary databases could be migrated to Google Cloud SQL, WebSphere and WebLogic applications migrated to Cloud Run and GKE, and .NET applications running in IIS migrated to .NET Core and Kestrel. Moving to open source software on Google Cloud provided an opportunity to standardize on a new software stack that would serve as a foundation for future growth.