logo

Application migration to Kubernetes: SellX leasing and insurance platform migration for Vehis

Core Logic carried out a comprehensive Kubernetes migration for SellX, the leasing and insurance platform used by Vehis. The project included application modernization, a new service deployment model, and the transition of the platform to a modern container-based environment. The migration covered more than 25 production services and was completed without downtime for end users.

As a result, SellX gained a more scalable, resilient, and secure production environment. The new platform provides a stronger foundation for further application modernization, better resource management, improved performance of selected components, and a lower risk of failures in day-to-day system operations.

Cloud computing and cloud migration context: why application modernization was needed

Before the move to Kubernetes, the SellX environment was based on traditional server infrastructure. Compared with modern cloud computing and container-based approaches, the legacy environment had limited room for further scaling and required greater operational effort to maintain high availability. The ecosystem operated in two geographically separated data centers, in Katowice and Warsaw, which provided a basic level of redundancy. However, deploying new software versions was time-consuming and often required planned maintenance windows or temporary downtime.

The main challenges were limited scalability, a lack of full automation for high availability, and growing dependencies between infrastructure components. In practice, this meant that development, updates, and new business functionality required more planning, coordination, and work from technical teams. For many organizations, this is a familiar cloud migration challenge: legacy systems and existing environments can slow down delivery when business needs continue to grow.

The purpose of the project was to remove the limitations of the previous environment and create a platform prepared for more services, more users, and more integrations. This was not only a technical cloud migration initiative, but also an important element of the company’s broader development strategy. For business systems, any loss of availability can affect user work, employee productivity, customer service, and, in extreme cases, financial results.

Application modernization and cloud-native architecture for legacy systems

The project was an application modernization initiative, not a simple infrastructure replacement. SellX moved from an environment with limited flexibility to a cloud-native operating model based on containerization and Kubernetes clusters. The aim was to support predictable automated releases, stronger security, and improved performance without disrupting production users.

The SellX project focused on more than 25 production services, including frontend applications, backend services, and components supporting the application infrastructure.

Application modernization also helped reduce technical debt. Key runtime components were upgraded from older versions to newer, better-supported technologies. This modernization process improves maintainability, stability, and security, while giving development teams better tools for building, testing, deploying, and managing modern applications in production.

Kubernetes migration strategy: containerization and Kubernetes clusters

As part of the Kubernetes migration, more than 25 production services were moved to the new environment. These services covered different layers of the system: frontend applications, backend services, and technical components supporting the application infrastructure.

A key part of the Kubernetes migration strategy was containerization. Containerization packages an application together with its dependencies into a lightweight, isolated unit called a container. This allows individual services to run independently, making them easier to launch, scale, update, and monitor. Each container runs in an isolated environment, so applications do not directly interfere with one another.

This approach makes it easier to control workloads, reduce the impact of a single failure on the overall system, and respond faster to business needs. Container images became a practical foundation for consistent deployment. Properly prepared images support repeatable releases, automated deployment, and safer operation of Kubernetes applications.

The new environment was based on Kubernetes, which manages applications in a container model. In practice, each service can be deployed and maintained in a more predictable way.

The move to Kubernetes was not limited to moving services. It also required organizing dependencies, configuration, network communication, service discovery, and availability rules.

Application portfolio, migration process, and dependency mapping

The project required a detailed understanding of the service landscape before production changes could be introduced. The first step was to identify critical services, their dependencies, availability requirements, and the expected sequence of migration work. Dependency mapping was essential because application code, infrastructure configuration, database connections, and integrations had to be considered together.

Safe execution also required staging environments, testing, and validation before the production cutover. The team had to understand what should be migrated first, how long each step could take, and how to control risk throughout the migration process.

The move from virtual machines and classic servers to containers was a major change in the operating model. Traditional environments have been a standard approach for years, but as systems grow, they often become less flexible than container architectures. Containers share the host operating system kernel, which makes them more efficient than virtual machines. They start faster and use fewer resources, helping teams scale applications more effectively.

CI/CD pipelines and automation tools for automated deployment

Containerization supports CI/CD pipelines and accelerates software release cycles. In SellX, the new environment significantly improved the process of publishing changes. Application updates can now be deployed without temporary system unavailability. A new version replaces the previous one only after it has started correctly and passed verification.

This makes the release process safer, more predictable, and less demanding for technical teams. GitOps deployment using Argo CD or Flux allows automatic synchronization between the Kubernetes cluster and the Git repository. These automation tools support automated workflows and automated deployment, helping teams deliver changes in a controlled and repeatable way.

The new architecture also enables deployments during working hours, without the need to plan long maintenance windows. This supports faster SellX development, shorter delivery times for new features, and better productivity for teams responsible for software delivery. In practical terms, CI/CD pipelines improve the ability to release business functionality, integrations with other systems, user interface improvements, quality fixes, and security updates.

Application availability, performance, and business value

High application availability was one of the central goals of the project. SellX now operates in a distributed model across two independent data centers in geographically separate locations. This increases platform resilience and reduces the risk of system interruptions.

If a selected infrastructure component has a problem, traffic can be directed to the working part of the environment. Similar mechanisms were implemented at the database layer, including automatic failover to standby instances. The project also included backups and the ability to restore data from a specific point in time.

High availability is not only an infrastructure feature. It is a combination of architecture, automation, replication, planning, and operational procedures. In business terms, it reduces operational risk and helps protect continuity of work for users.

The new platform also improves resource management and application performance. In the previous environment, resources were largely shared between different applications, which could lead to situations where excessive resource consumption by one service affected a wider group of applications. After the move to Kubernetes, resources can be assigned more precisely to individual services. This helps control workloads, reduce the risk of performance incidents, and respond faster to the needs of specific SellX components.

Monitoring and resource analysis using observability platforms such as Prometheus are important for identifying areas that require optimization. HPA, VPA, and Cluster Autoscaler in Kubernetes make it possible to dynamically adjust resources to current load. This supports improved performance, better planning of private cloud capacity, and more efficient use of infrastructure.

From a business value perspective, the new environment gives SellX greater stability, flexibility, and scalability.

Data migration, data integrity, and security best practices

The project included backups, replication mechanisms, and the ability to restore data from a defined point in time. These measures reduce the risk of data loss and support safe operation after the migration process.

Sensitive configuration data was also reorganized and moved to dedicated management mechanisms. This improved security and made it easier to control environment configuration. It also gave the team better transparency, better organization, and a lower risk of accidental disclosure or improper use of configuration data.

Security in this type of application modernization project is broader than protecting data alone. It also includes access control, deployment processes, encryption key management, network configuration, and the ability to restore services after a failure. Role-based access control, network policies, and clear operational procedures help address security concerns and reduce security vulnerabilities.

Container images should be built with security in mind. Minimal base images reduce the attack surface. During container image preparation, generating an SBOM with tools such as Syft or Trivy helps identify vulnerabilities in system libraries. Signing container images helps confirm their authenticity. Running containers without root privileges and using Linux namespace and cgroup isolation improves container security. Kubernetes security policies also support compliance with organizational requirements.

These best practices support enhanced security, but they must be implemented as part of a broader modernization plan rather than treated as separate tasks.

Kubernetes migration tools, monitoring tools, and operational planning

A safe Kubernetes migration requires the right migration tools, containerization tools, monitoring tools, and operational automation. In the SellX project, the process involved architecture design, infrastructure preparation, Kubernetes environment configuration, application containerization, service deployment, and support for the final production cutover.

The project achieved one of its most important results: migration without downtime for end users. This means that modernization work and the final environment switch were completed without disrupting system usage. For business-critical systems, minimal disruption is a major measure of success.

Observability was also important after the migration. It helps technical teams understand performance, resource usage, and the health of Kubernetes clusters. This supports faster incident response, better planning, and continuous optimization.

Best practices for a successful migration journey

The SellX project shows several best practices for moving applications to Kubernetes. First, the team needs a clear Kubernetes migration strategy based on the current infrastructure, business requirements, dependency analysis, and service landscape. Second, security must cover sensitive data, container images, role-based access control, network policies, and operational procedures.

Best practices also include separating workloads into containers, preparing repeatable images, using CI/CD pipelines, applying automation, and validating the Kubernetes environment before the production cutover. For cloud-native applications and Kubernetes applications, automated deployment and automated workflows reduce manual effort and improve release consistency.

Another best practice is to avoid treating Kubernetes migration as a simple technology swap. A successful migration requires architectural analysis, operational planning, application modernization, and alignment with business value. This is especially important when working with legacy applications, legacy systems, and existing systems that have grown over time.

Key results of the Kubernetes migration

The migration of SellX to Kubernetes delivered a set of concrete outcomes:

  • more than 25 production services were moved to Kubernetes,

  • the system now operates in a high-availability model,

  • the environment includes two independent data centers,

  • the migration was completed without downtime for end users,

  • replication and automatic service failover mechanisms were implemented,

  • the process of publishing new application versions was improved,

  • configuration and sensitive data storage were reorganized,

  • backups and data recovery mechanisms were implemented,

  • the risk of performance incidents was reduced,

  • the platform was prepared for further development,

  • infrastructure flexibility was increased,

  • security and resource management were improved,

  • the environment became better aligned with the development of new features.

These outcomes show the business value of application modernization and the Kubernetes project when the work is planned around availability, security, scalability, and operational reliability.

Project delivered by Core Logic

Core Logic was responsible for migrating the SellX leasing and insurance platform to the new environment. The scope included architecture design, infrastructure preparation, Kubernetes environment configuration, application containerization, service deployment, and support for the final production cutover.

The project was carried out across several levels at the same time: infrastructure, application, and operations. Maintaining control over the entire migration process was essential, from requirements analysis and environment preparation to the final production cutover. Thanks to this approach, the modernization was completed without affecting end users.

SellX ready for further application modernization and cloud-native growth

The SellX migration was a major technological and organizational step. The system moved from an architecture with limited scalability to a modern container environment that better supports the needs of a growing platform.

Through the project, SellX gained higher availability, greater resilience, safer change deployment, and better preparation for future updates. This is more than infrastructure modernization. It is a foundation for further product development and faster delivery of new features to users.

The new environment gives SellX greater stability, flexibility, and room for continued optimization. The platform is ready for the next stages of growth, new integrations, additional services, and increasing business needs. In this context, application modernization, cloud-native operations, and a carefully prepared Kubernetes migration strategy create long-term value for the organization.