Migrating to Kubernetes: Checklist

You can use this checklist to plan and execute the migration of xUML services from Bridge/Docker to Kubernetes.

1. General Preparation

  • Clarify responsibilities between project team and DevOps team

  • Confirm PAS version on Kubernetes

  • Align on migration window and rollback strategy

2. Inventory & Analysis

List all xUML services to be migrated (incl. version, owner).

For each service:

  • Check if the same version is deployed in Test and Production

  • Identify whether the service uses:

    • PState database

    • Local file access (mappings, certificates, configs, …)

    • Exposed UI (SOAP UI, web UI)

    • Inbound APIs (REST/SOAP)

  • Document dependencies between services (who calls whom)

  • Clarify coexistence scenario:

    • Are process instances still running on the old system?

    • Are they triggered externally or by other services?

3. Global Configuration & Automation

  • Export list of global variables from Bridge

  • Clean up variables (remove obsolete entries)

  • Create/update global variables in PAS on Kubernetes

  • Identify automations using Bridge API

  • Migrate these automations to the corresponding PAS APIs

4. DevOps Prerequisites

Coordinate with DevOps:

  • MongoDB databases and users created (if required)

  • MariaDB storage sizing clarified (capacity sufficient)

  • Firewall rules checked/extended for Kubernetes communication

  • Nginx routes prepared for:

    • UIs

    • APIs that must be reachable from outside / old system

5. Database & State

Per service (if applicable):

  • Switch PState to external MariaDB in the model

  • Plan and execute data migration (SQLite → MariaDB)

  • Verify that the StateDB alias and type (MariaDB) are set correctly

  • Test service startup with the new database configuration

6. File Access & Shares

  • Identify all file usages (paths, shares, certificates, mappings, …)

  • Define shared folders per environment (DEV, TEST, PROD)

  • Mount shares on Kubernetes nodes

    • Use consistent share names across environments

  • Adapt service configuration:

    • Use internal mount paths (e.g. /mnt/service-files/…)

    • Remove/replace Windows-style backslashes

7. Service Configuration (Per Service)

  • Export service (including settings) from old environment

  • Deploy service in Kubernetes

  • Review and adapt service settings:

    • Global variables used where appropriate

    • All file paths adjusted to mount/S3

    • All host names updated (no more localhost)

  • For inter-service communication:

    • Replace localhost with $(PLATFORM_NAME)-<KubernetesServiceName> pattern

    • Avoid direct communication between old server and Kubernetes where possible

8. UIs & API Management

  • Create list of UIs:

    • Service name

    • SOAP UI port / URL

  • DevOps: Configure Nginx routes for UIs

  • API Management:

    • Update backend URLs for migrated services

    • Create routes if old system must call new services

    • Secure routes (e.g. IP whitelist)

9. Designer-Specific Tasks

For Designer-based xUML services:

  • Recompile services

  • Redeploy to Kubernetes

  • Verify updated URLs for xUML applications

  • Update API Management and any external references to new URLs

10. Testing & Go-Live

  • Deploy services to Kubernetes test environment

  • Run functional tests:

    • Service logic

    • Inter-service calls

    • Database access (PState, business data)

    • File access via mounts/S3

    • UIs (through Nginx routes)

    • APIs (through API Management)

  • Review logs for errors and warnings

  • Perform performance/sanity checks (RAM limits, response times)

  • Execute go-live in production

  • Monitor services after go-live and adjust memory limits if necessary

📗
📘

Related Documentation: