Science and technology

Kubernetes migration made easy with Konveyor Move2Kube

Konveyor Move2Kube assists builders in migrating initiatives from platforms corresponding to Cloud Foundry and Docker swarm to Kubernetes and OpenShift. Move2Kube analyzes your software’s supply code and generates Infrastructure-as-Code (IaC) artifacts corresponding to Kubernetes YAMLs, Helm charts, Tekton pipelines, and so forth.

(Mehant Kammakomati, CC BY-SA 4.0)

Powering Move2Kube is a transformer framework that permits a number of small transformers to be chained collectively to rework the artifacts fully.

(Mehant Kammakomati, CC BY-SA 4.0)

Many completely different transformers become involved when reworking a Java or Node.js venture to create all of the vacation spot artifacts. This permits for the reuse of transformers in varied end-to-end flows. Each transformer is able to performing a number of actions.

(Mehant Kammakomati, CC BY-SA 4.0)

Move2Kube

You can use Move2Kube as a terminal command or as an online app. Its core performance consists of planning and transformation. In the planning section, Move2Kube analyzes artifacts to determine the companies concerned. In the transformation section, it transforms these companies into vacation spot artifacts.

The terminal command is a single binary, which you’ll download and install. Move2Kube additionally gives a helper script to obtain and place the binary in your native filesystem:

curl  https://raw.githubusercontent.com/konveyor/move2kube/main/scripts/install.sh 

-o move2kube_install.sh

Look via the script to make sure its set up technique aligns along with your choice, after which run it:

$ sh ./move2kube_install.sh

To use the command, simply run it on a listing containing the applying supply code:

$ move2kube rework -s ./src

Transform an enterprise scale software

Move2Kube can be utilized to replatform a real-world enterprise software. There’s a demo enterprise app included within the Move2Kube git repository to display the workflow. This demo app is much like a typical real-world software with CRUD operations and a multi-tier structure.

To attempt it out, obtain the supply code for the enterprise app:

$ curl https://move2kube.konveyor.io/scripts/download.sh 
| bash -s -- -d samples/enterprise-app/src -r move2kube-demos

The supply code for the enterprise app is within the src listing.

First, use the move2kube rework command:

$ move2kube rework -s ./src

After working the command, look within the myproject folder. There are new directories, together with deploy, scripts, and supply. The deploy listing comprises all IaC artifacts, corresponding to Kubernetes YAML recordsdata, Tekton pipelines, Helm charts, Knative recordsdata, compose recordsdata, and OpenShift recordsdata. The scripts listing comprises shell scripts to construct and push container pictures to the registry of your alternative. Finally, the supply listing comprises the supply code and Dockerfiles.

Capabilities offered by Move2Kube

Move2Kube has a robust QA Engine. Transformers can get enter from a person utilizing this engine. Transformers obtain the enter as person interplay via a terminal, an online interface, a REST API, or as a configuration file.

For occasion, within the demo enterprise app, the Move2Kube QA engine would possibly ask which port the frontend app ought to pay attention on, which container registry must be used to retailer pictures, or what ingress host must be used.

To run an app in a non-interactive mode, use the --qa-skip flag. This choice causes Move2Kube to make use of default solutions:

$ move2kube rework -s ./src --qa-skip

If you wish to reply the questions from a configuration file, use the -f choice:

$ move2kube rework -s ./src -f ./m2kconfig.yaml

An inventory of all solutions used for the run is captured as a config within the m2kconfig.yaml file.

Customization functionality

Move2Kube consists of a number of transformers prepared to be used, and it permits customers to jot down new transformers. Move2Kube exposes all the inner transformers’ capabilities to be leveraged for writing customized transformers. These capabilities embody a QA engine, intensive templating enabled by Golang templates, and isolation. Custom transformers behave precisely the identical as built-in transformers. The two varieties will be chained collectively to realize an end-to-end transformation.

Move2Kube generates artifacts you possibly can customise to adjust to organizational finest practices and insurance policies. You can direct the Move2Kube software to customizations utilizing the -c or --customization choice.

You can create customizations utilizing three completely different strategies:

  1. Configure built-in transformers: Configure a built-in transformer to behave otherwise. For instance, you possibly can modify the parameterization transformer to parameterize completely different values relying on the group’s wants.
  2. Starlark-based transformers: Write an entire transformer in a Python-like language, Starlark. For instance, you would use a Starlark-based transformer so as to add customized annotations to Kubernetes YAML recordsdata.
  3. Executable transformers: Write an entire transformer in a language of your alternative and permit Move2Kube to execute it together with the opposite transformers. For instance, generate customized Helm charts so as to add customized recordsdata and directories in particular places.

Parameterization and customization functionality

Move2Kube permits customers to parameterize customized fields within the goal platform artifacts, corresponding to Helm charts. For occasion, parameterizing the variety of replicas in a Helm chart:

apiVersion: apps/v1
variety: Deployment
metadata:
    annotations:
        move2kube.konveyor.io/service.expose: "true"
    creationTimestamp: null
    labels:
        move2kube.konveyor.io/service: orders
    title: orders 
spec:
    progressDeadlineSeconds: 600
    replicas: {{ index .Values "common" "replicas" }}

Move2Kube additionally lets you customise output artifacts. For occasion, add a customized annotation to the Ingress YAML file:

apiVersion: networking.k8s.io/v1
variety: Ingress
metadata:
   annotations:
      kubernetes.io/ingress.class: haproxy
    creationTimestamp: null
    labels:
      move2kube.konveyor.io/service: myproject
    title: myproject

Move2Kube case research

Mov2Kube has been broadly adopted within the business and open-source communities. Here are some case research the place replatforming utilizing Move2Kube has proven appreciable enchancment over guide effort.

  • InsApp
    • Language Stack: Java (springboot), Angular JS UI
    • Source Platform: Docker Swarm
    • Number of Services: 100
    • Manual Effort: 56 days
    • Move2Kube Effort: 6 days
    • In-Built Transformers Invoked: 6
    • Number of External Transformers: 0
  • AA case research
    • Language Stack: Java (springboot), Angular JS UI
    • Source Platform: Cloud-foundary
    • Number of Services: 3
    • Manual Effort: 2 days
    • Move2Kube Effort: quarter-hour
    • In-Built Transformers Invoked: 14
    • Number of External Transformers: 0
  • CP case research
    • Language Stack: Python
    • Source Platform: ECS Fargate
    • Number of Services: 7
    • Manual Effort: 12 days
    • Move2Kube Effort: 1 day
    • In-Built Transformers Invoked: 13
    • Number of External Transformers: 0
  • MFA case research
    • Language Stack: .NET Silverlight UI
    • Source Platform: Bare-metal/VM
    • Number of Services: 4
    • Manual Effort: 9 days
    • Move2Kube Effort: 5 hours
    • In-Built Transformers Invoked: 14
    • Number of External Transformers: 1 (customized dependencies)
  • TMP case research
    • Language Stack: Java (springboot)
    • Source Platform: Cloud-foundry
    • Number of Services: 24
    • Manual Effort: 25 days
    • Move2Kube Effort: 2.25 days
    • In-Built Transformers Invoked: 15
    • Number of External Transformers: 1 (customized directories)

Data supply: Seshadri, Padmanabha V., Harikrishnan Balagopal, Akash Nayak, Ashok Pon Kumar, and Pablo Loyola. “Konveyor Move2Kube: A Framework For Automated Application Replatforming.” In 2022 IEEE fifteenth International Conference on Cloud Computing (CLOUD), pp. 115-124. IEEE, 2022.

Learn extra about Konveyor Move2Kube

Visit the Move2Kube site to be taught extra about replatforming utilizing Konveyor Move2Kube.

Most Popular

To Top