The cost and complexity of application migration has long been an inhibitor for adopting cloud solutions. Whether it’s moving applications to the cloud, switching to a better set of container orchestration tools, or refactoring applications to transform them into cloud-based microservices, modernizing the IT infrastructure can be labor-intensive and things are prone to break.
Even with these challenges, demand for application migration and modernization is expected to accelerate in the coming years. By 2024, enterprises aim to target 80% of their IT hosting spend in different types of cloud services, according to a recent study by McKinsey.
With so many companies planning to invest in infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS), they will be looking for the right tools for the job. These migrations will vary in complexity, whether shifting from on-premises systems to the cloud, or more advanced needs, such as finding a better way to orchestrate microservices running in different containers.
When Red Hat and IBM Research introduced Konveyor one year ago, we wanted to help companies better take advantage of Kubernetes as a means of modernizing and migrating applications to open hybrid-cloud environments. Since then, a community has coalesced around Konveyor, building tools, identifying patterns, and offering best practices on how to expedite the Kubernetes journey. This community has developed several new tools with new capabilities and new clients.
The Konveyor community has been busy creating tools that facilitate cloud migration, help accelerate Kubernetes adoption, and improve cluster orchestration in Kubernetes. To date, more than 800 developers and practitioners have joined the Konveyor community. Konveyor repositories have gathered more than 800 stars, with practitioners tracking projects they’re interested in, as well as more than 900 forks of the code repositories.
As Konveyor’s users have grown, our IBM Research team has made significant strides in evolving the platform to meet the needs of this community.
Over the past year, we’ve learned that application modernization isn’t a one-off situation: Applications are continually modernizing, and they bring out challenges at the intersection of code, data, and testing throughout the journey. IBM’s At NeurIPS 2021, IBM Research presented its work on CodeNet, a massive dataset of code samples and problems. We believe that it has the potential to revitalize techniques for modernizing legacy systems, helping developers write better code, and potentially even enabling AI systems to help code the computers of tomorrow. Read more.CodeNet initiative for AI for Code embodies the application modernization foundations, and is enabling deep discovery of application domain, across the code, and data artifacts, using AI, and bringing automation for downstream execution, such as testing, re-platforming and refactoring.
The Konveyor tool, Tackle, provides capabilities to help assess and analyze applications for refactoring into containers and provides a common inventory. The Tackle Containerization Advisor (TCA) takes client applications description and recommends, whether applications can be containerized. For applications that can be containerized, it then generates matching container images or operators. This is one example of how At IBM Research, we’re using AI to help modernize software stacks, designing automated programming and refactoring systems to help businesses keep up with the speed of modern life. Read more.AI for Code technologies, such as natural language processing and machine learning, applied to application descriptions, play a role in application modernization.
As applications continuously evolve, testing is crucial in application modernization and cloud migration. It’s the best way to ensure these processes don’t impede an application’s ability to function properly. The availability of high-coverage automated tests is often a prerequisite for starting the modernization or migration journey.
To streamline testing, IBM Research contributed an update to Konveyor that can automate test generation: TackleTest. It creates unit test cases for Java applications based solely on the application binaries and UI test cases for web applications based on deployed application instances. With TackleTest, tests for hundreds of classes and thousands of methods can be generated in just a couple of hours.
Large IT organizations expanding test coverage on legacy applications often spend a lot of time and effort creating functional tests to ensure their code is stable and to gauge the software’s performance, among many other tests. Unique among cloud-migration platforms, TackleTest can increase test coverage from 20% to more than 55%, closing the coverage gap with developer-written tests and potentially saving an estimated 200 hours of work per app.
Data’s role in the modernization process
Data is the essence of how applications work. IBM Research is elevating the role that data plays in the modernization process by creating Konveyor applications around data gravity, with tools such as Data-Intensity Validation Analyzer (Tackle-DiVA) and Data Gravity Insights (DGI).
DGI enables deep insights for code and data entanglement that address the complexities of application refactoring, bringing together three views of the application: code, data, and transactions. The three key DGI underpinning capabilities and inputs include source code analysis with deep data flow introspections, database schema inferencing, and transactional scope and relationship analysis provided by DiVA.
Tackle-DiVA helps developers understand database operations and transaction processes inside applications. In a recent proof-of-concept with a large automotive company, DiVA has been applied to a large application, with over 10,000 Java classes and 400 database tables. With DiVA, the team was quickly able to extract and visualize over 100 clusters representing possible microservice candidates by considering transactional properties of the application. One cluster represented the center of data gravity within an application, holding over 80% of the transactions.
With further analysis, the team was able to reduce the size of this cluster, thereby extracting core business functions using DiVA’s data centric approach. The feasibility study DiVA offers is a first step in enabling client’s modernization journey.
Automate deployment to minimize application changes
To accelerate the process of shifting to Kubernetes, IBM Research conceived and launched Move2Kube, which automates the deployment transformations. For a large government client, which had their applications in Cloud Foundry, Move2Kube was able to demonstrate capability to automate the creation of all Kubernetes deployment artifacts, which without Move2Kube would have taken months of effort. With the v0.3 release, Move2Kube has added significant customization capability to allow creation of custom artifacts. This has expanded the reach of Move2Kube for users having custom requirements like custom directory structure, custom base images and custom deployment artifact formats.
For a large manufacturing client, which uses .NET applications for their sensor data aggregation and processing, Move2Kube was able to demonstrate automated creation of artifacts for windows containers. This enabled the client, who was tied to a legacy platform, to consider modernization to containers that can enable optimized edge deployment for the Industrial IoT.
As organizations realize the value of Kubernetes, the question has moved from whether they should adopt the open-source container orchestration system to how they can best take advantage of it. Kubernetes adoption comes with a learning curve, whether the target is an existing application or a new project. Each type of project involves a considerable amount of effort and poses a host of standardization challenges.
Thankfully, the community that has grown organically around Konveyor enables companies to ramp up their modernization efforts that accelerate cloud migration. As the Konveyor community continues to expand, we will continue to search for new ways of removing cost and complexity from even the most ambitious IT transformations. We invite you to get involved with Konveyor, whether it’s to share your experience migrating to Kubernetes or take these open-source tools for a test run.