Application & web Representative engagement

A PHP application that could not be deployed without downtime, now deployed any afternoon

LAMP / LEMP application cluster

Client
Publishing platform · North America
Region
Two datacentres
Scale
6 application nodes · 2 database nodes · 4M monthly visitors
Timeline
8 weeks

Where they started

A monolithic PHP application ran on six nodes with local file uploads and sticky sessions. Deployments required a maintenance window because nodes held different code versions.

The problem, precisely

Deployment risk meant releases happened monthly in a weekend window, and the business wanted to ship weekly during working hours.

What we did

Moved state out of the application nodes — uploads to object storage, sessions to Redis — which is what actually made rolling deployments possible.

Delivered

  • State extracted from application nodes: uploads to object storage, sessions to Redis
  • Release-directory deployment with atomic symlink switch and instant rollback
  • Health-check-gated rolling deployment, draining nodes before replacement
  • Read replicas used for reporting, keeping heavy queries off the primary path
  • Deployment runbook with a rollback decision point and a defined abort threshold

Technologies used

  • nginx + PHP-FPM
  • Redis-backed sessions
  • Ceph RGW / S3-compatible object storage for uploads
  • Galera for the database tier
  • HAProxy health-based routing
  • Deployer / Git-based release directories

Measured result

Every number below was measured and reported to the customer. Where we do not have a measured figure, the entry is a fact rather than a percentage — we would rather be precise than impressive.

  • monthly → weekly release cadence in business hours
  • 0 maintenance windows required for deployment
  • < 5 min measured rollback to the previous release
  • 4M monthly visitors served with no session loss in deploys
The reusable part

Rolling deployments are a state problem, not a tooling problem. Until sessions and uploads leave the application node, no deployment tool will make releases safe.

Something here look familiar?

Most of these started with a cluster audit: two weeks, fixed price, and a risk map that names the single points of failure before you commit to any work. Keep the report either way.