Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Modernize and migrate to Kubernetes with open source tools

December 8, 2021
James Labocki Marco Berube Miguel Pérez Colino Ashok Pon Kumar Ramon Roman Nissen
Related topics:
ContainersDevOpsGitOpsKubernetes
Related products:
Red Hat OpenShift

Share:

    An enormous change is taking place throughout the computer industry where monolithic applications are being modernized into lightweight, container-based services on hybrid clouds. Some of the factors driving the change are:

    • The difficulty of maintaining and upgrading monolithic applications, particularly after adopting a DevOps development process.
    • Long times required to roll out bug fixes.
    • Inability to scale up in production.
    • Slow reaction times due to heavyweight Java processes and virtual machines.

    The following video presents a few of the problems you might encounter during this transition, based on a fictional company named Globex Corporation. We use this invented case study to show how to modernize and migrate an n-tier monolithic retail application to Kubernetes, and feature free and open source tools offered by the Konveyor community.

    Read on for a summary of the issues discussed in the video.

    Why did Globex decide to modernize its retail application?

    Pain points experienced by the company are typical for the industry:

    • The time from code commit to production deployment took months.
    • A series of code deployments once brought down the system. Failures often took hours to fix, leading to long downtime.
    • The system couldn't handle transaction volume during peak times.

    These issues negatively affected the company's DevOps software delivery metrics for the application.

    Initial migrations

    To solve these problems, the Globex developers started unpacking the monolith. The services they identified within the manufacturing application were the gateway, customers, orders, and inventory. The relationship of these services to the company's computing infrastructure is shown in Figure 1.

    A single application, running on virtual machines and communicating through a web server, served four separate functions.
    Figure 1. A single application, running on virtual machines and communicating through a web server, served four separate functions.

    First, the team broke out the gateway and orders services on Cloud Foundry using Spring Boot (Figure 2).

    Two services remained on the virtual machines, whereas two were moved to Cloud Foundry.
    Figure 2. Two services remained on the virtual machines, whereas two were moved to Cloud Foundry.

    However, they eventually halted the migration to Cloud Foundry when they saw the momentum of innovation taking place in Kubernetes, a competing container orchestration platform. With Kubernetes as the new target platform, they migrated the inventory service into a Kubernetes environment. A benefit of this migration was that they could bring their database onto Kubernetes because the platform can handle persistence.

    Furthermore, since Globex learned that Quarkus was more efficient than Spring Boot for cloud application development, they turned to Quarkus to develop the inventory service on Kubernetes (Figure 3).

    The final architecture runs a Quarkus application on Kubernetes.
    Figure 3. The final architecture runs a Quarkus application on Kubernetes.

    Meanwhile, the operations team embraced a GitOps methodology for development and wanted to redeploy services in an automated fashion instead of relying on manual deployments. Unfortunately, the inventory service was still manually deployed, and the operations team would not allow it to be promoted to production until it was automated.

    Missing steps to the desired state

    The result of all these modernization efforts left the company with several issues needing attention:

    • The customer service still remains on virtual machines, which slows the frequency of new deployments.
    • Services on Cloud Foundry need a path forward to a platform that has a strong future of innovation.
    • The deployment of the inventory service needs to be automated.
    • Maintaining three platforms is inefficient.

    Konveyor community tools

    The desired state is a set of services running on Kubernetes, with development following a GitOps paradigm to improve software delivery metrics. At this point, Globex leadership brought in the Konveyor community to learn how open source tools can help them reach this state.

    The demonstration in the video focuses on:

    • Assessing the parts of the application service using Tackle and, in particular, preparing the customers service for containerization.
    • Refactoring the customers' service to run on Kubernetes.
    • Rehosting the Oracle database to KubeVirt using Forklift.
    • Replatforming the services running on Cloud Foundry to Kubernetes using Move2Kube.
    • Replatforming the inventory service into a new Kubernetes cluster and transforming it to use an automated deployment method using Crane.

    Conclusion

    A lot of companies today are in the position of the fictional company discussed in our video. Better packages and development processes, together with cloud deployments, can provide the rapid upgrades and scale needed by these companies. The Konveyor community provides tools to ease modernization and migration.

    To learn more about modernizing your applications, see the following resources:

    • Application modernization patterns with Apache Kafka, Debezium, and Kubernetes
    • Modernizing Enterprise Java: A cloud native guide for developers
    • Red Hat Summit: Lowering the risk of monolith to microservices
    • The fast-moving monolith: how we sped-up delivery from every three months, to every week
    Last updated: September 20, 2023

    Related Posts

    • Modernizing Enterprise Java: A cloud native guide for developers

    • Application modernization patterns with Apache Kafka, Debezium, and Kubernetes

    • Modernizing applications with Apache Camel, JavaScript, and Red Hat OpenShift

    • Why you should migrate your Java workloads to OpenShift

    • Quarkus: A quick-start guide to the Kubernetes-native Java stack

    Recent Posts

    • Expand Model-as-a-Service for secure enterprise AI

    • OpenShift LACP bonding performance expectations

    • Build container images in CI/CD with Tekton and Buildpacks

    • How to deploy OpenShift AI & Service Mesh 3 on one cluster

    • JVM tuning for Red Hat Data Grid on Red Hat OpenShift 4

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue