1 of 36

Application Modernization and Migration

with Konveyor

1

2 of 36

The ultimate Open Source toolkit to help organizations safely migrate and modernize their application portfolio to leverage Kubernetes and Cloud-Native technologies, providing differential value on each stage of the adoption process

3 of 36

3

Konveyor Workflow

Stages and personas in the modernization journey

4 of 36

4

Konveyor Hub

Assets Generation

Reporting

Assessment

Code Transformation

Planning

Analysis

5 of 36

5

An overview of Konveyor 0.3.0

6 of 36

6

Konveyor Operator

Install Konveyor in your Kubernetes cluster with almost no effort

  • Can be installed in all Kubernetes distributions
  • Available in operatorhub.io
  • Requires Operator Lifecycle Manager on upstream Kubernetes distributions
  • Provides a tackle CR to provision all components
  • Capability Level II

7 of 36

7

Application Inventory

Manage your Application Portfolio

  • Used to maintain a portfolio of applications
  • It is the hub, and natural integration point for all Konveyor projects in the future
  • Applications can be linked to the business services that they support
  • Application interdependencies can be defined and managed
  • Through the use of tags extensible metadata can be added to describe and categorize the applications in multiple dimensions

8 of 36

8

  • Integration with source code and binaries repositories:
    • Git
    • Subversion
    • Maven Artifact repositories
  • Secure store for multiple credential types:
    • Source control
    • Maven settings files
    • Proxy
  • Credentials are managed by administrators and assigned by architects to applications.

Application Inventory

Integration with repositories

9 of 36

9

Archetypes

Enhanced classification of applications

  • Store information about the different application types in the organization based on their taxonomy.
    • Technology stack.
    • Maintainers.
  • Automatically classify applications based on their associated tags.
  • Simplify the assessment process

NEW IN 0.3

10 of 36

10

Application Assessment

Assess your Application Portfolio for containerization suitability

  • A questionnaire based tool that assesses the suitability of applications for deployment in containers within an enterprise Kubernetes platform
  • The reports provide information about the suitability of the applications for containerization, highlighting risks and producing an adoption plan informed by effort, priority and dependencies

11 of 36

11

Application Assessment

Questionnaire management

  • Import and export questionnaires.
  • Render existing questionnaires.
  • Define which questionnaires are required for the assessment: which questionnaires should be presented to the users and answered by the for an application to be considered assessed?

NEW IN 0.3

12 of 36

12

Application Assessment

YAML syntax

  • Enable questionnaire authoring and versioning through a YAML syntax.
  • Enhanced capabilities:
    • Conditional questions.
    • Autotagging of applications based on answers.
    • Automated answers based on tags present on the assessed application or archetype.

NEW IN 0.3

13 of 36

13

  • Analyzes application source code and binaries and helps estimating the migration effort for different targets or paths.
  • Analyzes applications executing an extensible set of rules to identify issues.
  • Support numerous migration paths and creates a rich set of reports.
  • Currently supports Java and Go.
    • Subsequent minor releases will include support for .NET, Typescript and Python. More languages to come.

Application Analysis

Get precise data about your Application Portfolio and estimate migration cost

14 of 36

14

  • Support multiple languages for analysis by abstracting away the analysis engine and delegating the complexity of each language to a Language Server Protocol implementation.
  • Language Providers will integrate with the implementation of a given language and translate rules conditions into LSP queries.

Multi Language Analysis

Overview

Language Provider

Language Server Protocol (LSP) Implementation

Analysis Engine

Source Code

NEW IN 0.3

15 of 36

15

Dynamic reports

Identify trends across the whole application portfolio

  • Users are able to get aggregated information about issues and dependencies across the entire application portfolio.
  • Identify portfolio-wide trends or drill down to the single line of source code.
  • Analysis results are now fully integrated with the main Konveyor UI, without requiring dedicated reports.
  • Downloading static reports or analysis results files for individual applications is still available.

NEW IN 0.3

16 of 36

16

Application Analysis

Issue type analysis and support for effort estimation

NEW IN 0.3

17 of 36

17

Application Analysis

Issue identification and guidance for developers

NEW IN 0.3

18 of 36

18

Application Analysis

Technology identification

NEW IN 0.3

19 of 36

19

Application Analysis

Dependencies identification

NEW IN 0.3

20 of 36

20

Application Analysis

Migration paths matrix

Source Platform

Targets

Migration to JBoss EAP 7

Cloud Readiness

OpenJDK

11 & 17

Jakarta EE 9

Camel 3

Spring Boot in Red Hat Runtimes

Quarkus

Open Liberty

Oracle WebLogic Server

-

-

-

-

-

IBM WebSphere Application Server

-

-

-

-

JBoss EAP 4

✘ [1]

-

-

-

-

-

JBoss EAP 5

-

-

-

-

-

JBoss EAP 6

-

-

-

-

-

JBoss EAP 7

-

-

-

-

Thorntail

✔ [2]

-

-

-

-

-

-

-

Oracle JDK

-

-

-

-

-

-

Camel 2

-

-

-

-

-

Spring Boot

-

-

-

Any Java application

-

-

-

-

-

-

Any Java EE application

-

-

-

-

-

-

-

21 of 36

21

Application Analysis

Custom rules

  • For your own Frameworks
    • “If you encounter this - here is how you migrate”.
  • Also great for large engagements, once you have built your “cookbook”.
  • Provide your internal guidance and link directly to your documentation.
  • Fully documented YAML syntax aimed at simplifying rules authoring.

NEW IN 0.3

22 of 36

22

  • Simplify analysis configuration and execution
  • Lower the barrier for the usage of custom rules at scale.
  • Architects can maintain custom rules in their own, and make sure third party developers use them in a straightforward way.

Custom Migration Targets

Encapsulate custom rules for analysis configuration

23 of 36

23

Custom Migration Targets

Streamline knowledge sharing abstracting migration teams from the complexity

MIGRATION TEAM(S)

Organization / Factory partners

Developer team(s)

STEERING�TEAM

Organization / Migration Lead / Partners

Technical leads,�project managers & specialists

Rules repository

Challenge backlog

24 of 36

24

Migration Waves

Planning modernization across the application portfolio

  • Allows modernization leads to break the portfolio into different waves and execute the adoption effort in an iterative fashion.
  • Brings a new target persona for the Konveyor project: managers leading the migration initiative that need to plan the different iterations required to execute the project.

25 of 36

25

Migration Waves

Integration with issue trackers

  • Provides a way to keep track of the overall progress of the modernization initiative at migration wave or individual application level.
  • Allows third party migrators to work with their usual issue tracker/task manager while their progress is reflected in Konveyor.
  • First implemented integration: Atlassian Jira.
    • Applications in a migration wave are created in Jira as issues.
    • Compatible with all Jira flavors.

26 of 36

26

Kantra CLI

27 of 36

27

  • Runs application analysis locally.
    • Generates static HTML reports for analysis results.
    • Helps testing custom rules easily.
  • Leverages Podman to avoid complex installations.
  • Provides flexibility for automation and enables simple integration with CI/CD pipelines.
  • Transforms legacy XML rules into the new YAML syntax.

Kantra CLI

Features

Kantra analyze --input /home/user/myapp --output /home/user/reports --target eap7

--target cloud-readiness --source weblogic

NEW IN 0.3

28 of 36

28

Kantra CLI

Automated source code changes

  • Leverages OpenRewrite to automate source code changes
  • Integrated with the CLI, dedicated openrewrite flag to run recipes
  • OpenRewrite recipes included out of the box:
    • Java EE to Jakarta EE
    • Spring Boot to Quarkus

NEW IN 0.3

29 of 36

29

Konveyor Roadmap

30 of 36

30

Disclaimer

Due to the constant changes in the cloud ecosystem

Roadmaps are subject to change

31 of 36

31

Q2 2024

Q1 2025

Konveyor 0.5: Typescript support for analysis. Analysis history. Quality of life improvements.

Konveyor 0.4: .NET and Python support for analysis. Quality of life improvements.

Q3 2024

Konveyor 1.0:

Platform awareness, assets generation and Kai GenAI

Roadmap

Tentative milestones for upcoming Konveyor releases

32 of 36

32

Upcoming Initiatives

33 of 36

33

Platform Awareness

Integration with platforms to gather application insights

  • Enable Konveyor to retrieve information about applications directly from the platform in which they are running:
    • Deployment configuration
    • Runtime configuration
  • Flexible enough to obtain information from multiple platform types:
    • Container platforms
    • Application servers
    • Hypervisors and VMs

34 of 36

34

Assets Generation

Generate custom tailored deployment and configuration assets

  • Flexible enough to generate all assets required to deploy an application on k8s (and potentially other platforms in the future)
  • Provide opinionated best practices out of the box.
  • Allow organizations to create their own corporate assets easily:
    • Use templating as much as possible.
    • Build on industry standards
    • Avoid having to learn new programming languages or proprietary APIs.

35 of 36

35

Kai

Leverage GenAI for application modernization and migration

  • Short for Konveyor AI
  • Goal: Automate source code changes as much as possible, even when applications use custom corporate technologies and frameworks.
  • Leverage the structured migration data stored in Konveyor to enhance commercial LLMs via prompt engineering.
    • RAG approach to provide additional context and increase accuracy.
    • Avoid the need for fine tuning even with custom technologies.

36 of 36

Thank you!

36