FAXOC Corporation — Cloud Infrastructure Migration
Cloud Hosting & Server Management

FAXOC Corporation — Cloud Infrastructure Migration

A full re-architecture and migration of a production platform from AWS to Linode (Akamai Cloud), delivering a three-tier private network, automated horizontal a…

Cloud MigrationDevOpsInfrastructureAutoscalingSecurity Hardening

Client

FAXOC Corporation

Category

Cloud Hosting & Server Management

Timeline

Multi-phase project

Technologies

12 used

01

The Problem

FAXOC Corporation's production platform had grown on AWS into a setup that was becoming expensive to run and difficult to scale. All compute ran on EC2 instances with no private network segmentation — every server was reachable from the public internet. There was no connection pooling, so database connections were being exhausted as traffic grew. All production deployments were done manually over SSH, meaning every release required a developer to log in and run commands by hand.

There was no automated capacity management. Scaling up under load required a developer to manually provision a new server, configure it, and add it to the load balancer. The platform had no CI/CD pipeline, no infrastructure-as-code, and no consistent security baseline across its servers.

The goal was not just to move to a cheaper provider — it was to rebuild the platform properly: with network isolation, automated scaling, deployment automation, hardened security, and a clear operational baseline that the team could hand over and maintain.

The Real Cost

Agencies managing 10+ client servers on managed hosting platforms spend $500–$1,000+ per month just for the convenience of not needing a Linux sysadmin. That cost compounds every year, forever.

02

What We Built

CloudHouse carried out a complete re-architecture of the FAXOC production environment across eight structured phases, rebuilding the entire platform on Linode (Akamai Cloud) in a private three-tier VPC network.

The bastion tier acts as the sole administrative entry point — the only server with a public-facing SSH port, routing all management traffic through a single hardened jump host. The application tier hosts the Django backend API, Celery task workers, the Angular frontend, a FastAPI CV search service, and full staging environments. The data tier runs Elasticsearch, two Redis instances, and RabbitMQ, with no public inbound network rules on any server and the managed PostgreSQL database accessible only from within the private network.

A custom horizontal autoscaling system was built independently for the backend and frontend. New nodes are cloned from golden image snapshots — they come up fully configured, attach to the private network, register with the load balancer, and pass a health check before receiving any traffic. If any provisioning step fails, the node is destroyed and the cluster count rolls back automatically. Scale-up is fast; scale-down is conservative, only removing a node after sustained low CPU to avoid premature capacity loss.

GitLab CI/CD pipelines were built to automate all backend, Celery worker, and frontend deployments. Database migrations always run and complete before Celery workers restart. No secrets are stored in the pipeline — all environment files remain on the servers.

What makes this migration different from a simple lift-and-shift is that CloudHouse re-architected the entire platform while moving it. The client did not just get the same infrastructure on a different cloud — they got a fundamentally better, more secure, and more scalable platform at the end of it.

Everything Included

Every feature you need to manage production servers — no add-ons, no extra charges.

Zero-downtime migration of entire production platform from AWS to Linode (Akamai Cloud)
Three-tier private VPC network — bastion, application, and data tiers with strict firewall isolation
SSH key-only access enforced across all 13 production servers — password login disabled
Custom horizontal autoscaling — 1 to 5 nodes per tier, CPU-triggered, Terraform-provisioned with safe rollback
Independent autoscaling systems for backend and frontend with separate load balancers
Automated CI/CD pipelines for backend (Django + Celery) and frontend (Angular) via GitLab
Akamai Managed PostgreSQL with PgBouncer connection pooling on every backend node
Media storage migrated from AWS S3 to Linode Object Storage — AWS fully decommissioned
CDN, DDoS protection, and SSL via Cloudflare (replacing rejected AWS CloudFront)
Transactional email via M91 with full DNS authentication — MX, SPF, and DKIM records configured
Internal private DNS zone — all services communicate by hostname, never by IP address
RabbitMQ, Elasticsearch, and Redis deployed in isolated data tier with zero public inbound access

By the Numbers

0 min

Server provisioning time

down from 3+ hours

0

Cloud providers supported

DO, Linode, Vultr, AWS, GCP

0%+

Reduction in support tickets

first quarter post-launch

0 cost

Migration to CloudStick

100% free with full support

03

The Result

The migration was completed across all 8 phases with every deliverable verified and handed over. 13 production servers are live on Linode (Akamai Cloud).

The platform now has automated horizontal scaling that grows from 1 to 5 nodes per tier based on CPU load, a hardened three-tier private network where no data service has any public inbound access, automated CI/CD deployments that replaced manual SSH releases, managed PostgreSQL with connection pooling to handle database connections as the backend scales, CDN and DDoS protection via Cloudflare, and object storage migrated entirely off AWS.

111 GB of legacy database backup files were cleaned from production disk. The engineering team went from manually deploying over SSH to fully automated pipelines triggered by a git push. Infrastructure changes that previously required manual server provisioning now happen automatically, with safe rollback if anything fails.

Diagram

Architecture Overview

Cloud Infrastructure Architecture — Akamai (Linode)🌐 Internet / UsersHTTPS Traffic☁ CloudflareCDN · DDoS Protection · SSL/TLS · WAF⚖ NodeBalancersLoad Balancing · SSL Termination · Health ChecksPrivate VPC NetworkApplication Tier (Auto-Scaled 1–5 Nodes)Django APIREST BackendPython · GunicornAngularFrontend SPANginx · TypeScriptFastAPIML / ProcessingPython · UvicornCelery WorkersAsync Task QueueRedis · RabbitMQData Tier (Private Subnet)PostgreSQLPrimary DatabasePgBouncer PoolingRedisCache · SessionsPub/Sub BrokerRabbitMQMessage BrokerTask QueuesElasticsearchFull-Text SearchLog AnalyticsBastion HostSSH Jump ServerAdmin Access OnlyFirewall HardenedObject StorageStatic AssetsBackupsMedia FilesGitLab CI/CD PipelineBuild → Test → Deploy → Health CheckTerraform IaCAuto-Scaling · ProvisioningMonitoringAlerting · Health ChecksLEGENDHTTPS / Public TrafficAdmin / Internal AccessTIERSApplication (Compute)Data (Storage / Messaging)

Project Highlights

Efficient Timeline

Delivered across 8 sequential phases — infrastructure migration, security hardening, DNS migration, backend autoscaling, frontend autoscaling, CDN and email routing, media storage migration, and CI/CD pipeline setup — each phase completed and verified before the next began.

Advanced Technologies

Terraform for infrastructure-as-code provisioning and autoscaling. Django (Gunicorn) + Celery on the backend. Angular frontend served via PM2. FastAPI for CV search. Akamai Managed PostgreSQL with PgBouncer connection pooling on every backend node. Redis, RabbitMQ, and Elasticsearch in an isolated data tier. GitLab CI/CD for automated deployments. Cloudflare for CDN, DDoS protection, and SSL.

Measurable Results

13 production servers migrated with zero production downtime. Manual SSH deployments replaced by automated CI/CD pipelines. Horizontal autoscaling live — 1 to 5 nodes per tier. 111 GB of legacy disk usage eliminated. All 25+ deliverables completed. AWS fully decommissioned.

Want something like this?

We can build it for you.

CloudHouse builds products that solve real problems — from cloud infrastructure tools to full SaaS platforms. If you have an idea or a problem that needs solving, let's talk.