Overview

A SaaS product team had outgrown a single large VPS and ad-hoc deployment scripts. Releases were risky, scaling was manual, and outages were increasingly common.

Webomage was brought in to design and execute a migration to a managed Kubernetes platform on AWS (EKS), with infrastructure-as-code, observability, and a safer deployment story.

Challenges

  • Single point of failure – one big VPS hosting the main app, background workers, and cron jobs.
  • Manual, brittle deploys – SSH + custom scripts, with limited rollbacks and little visibility.
  • Growing traffic and data – more users, more integrations, and higher expectations around uptime.
  • No clear environments – production and “staging” were too similar, making safe testing hard.
  • Limited observability – logs scattered across the VPS, minimal metrics and alerting.

Approach

  1. Discovery & baseline
    • Mapped existing services, dependencies, and deployment paths.
    • Identified resource usage patterns and peak-load scenarios.
    • Documented external integrations and data stores (DBs, queues, third-party APIs).
  2. Target architecture & migration plan
    • Designed an AWS EKS-based architecture with managed node groups and autoscaling.
    • Defined Kubernetes resources for web, workers, and scheduled jobs.
    • Chose Terraform for infrastructure-as-code and Git-based workflows for manifests.
  3. Incremental migration
    • Containerised the application (web + workers) with clear separation of config and secrets.
    • Created dev/staging/prod environments with separate namespaces and config.
    • Gradually moved traffic from the VPS to EKS using controlled DNS and load balancer changes.
  4. Observability & operations
    • Introduced metrics, dashboards, and alerts for pods, nodes, and key application flows.
    • Standardised logging, capturing both platform and app logs in a central place.
    • Documented runbooks for common operational tasks and failure modes.
  5. Handover & enablement
    • Ran walkthroughs with the client team on how to operate the new platform.
    • Provided examples of safe deployment patterns (blue/green, canary) and rollback procedures.
    • Left a clear backlog of future improvements, rather than a black-box setup.

Outcomes

  • Reduced deployment risk – repeatable, observable deploys with easier rollbacks and environment separation.
  • Better scalability – the platform could handle load spikes without manual intervention on a single VPS.
  • Improved reliability – fewer outages tied to single-host failures, plus clearer monitoring and alerts.
  • Team enablement – the internal team could ship changes faster and with more confidence.

Relevant capabilities

This engagement drew on several of Webomage’s strengths:

  • Kubernetes and containerisation on AWS EKS.
  • Terraform-based infrastructure-as-code and GitOps-style workflows.
  • Observability and SRE practices for production SaaS workloads.
  • Pragmatic, incremental migrations from “one big server” to a managed platform.

➡️ Planning a similar migration or struggling with a fragile platform? Start a conversation.