Skip to content
Devflovv

FinanceInfrastructure

Cloud-to-on-premise application migration

We migrated a Canadian mortgage-brokerage SaaS application off cloud droplets onto hardware the client owned. That meant rebuilding a long-lived legacy PHP/AngularJS stack on end-of-life components, rehearsing the whole build in a matched virtual machine first, migrating the database, and configuring the web server, queue workers, verified backups and TLS, all while engineering the office network so the app could coexist with the client's existing services.

Illustration of Cloud-to-on-premise application migration

Problem

The client wanted its production application taken off a third-party cloud host and re-hosted on hardware it owned outright, without breaking the application, its integrations, or the pre-existing services already running on the office network.

Solution

The team reverse-engineered the true component inventory from the running cloud servers rather than trusting out-of-date docs, then rebuilt the entire legacy stack in a local virtual machine matched to the client's OS so every conflict was resolved before touching client hardware. It executed the proven runbook on the client machine: web server with PHP-FPM, supervisor-managed queue workers, scheduled cron jobs, and the production hourly/daily/weekly database backups replicated and independently verified as self-executing. Because the office router already forwarded the web ports to other services, the team designed a name-based reverse-proxy approach, reclaimed the ports after confirming stale rules, issued TLS certificates for the new subdomains, re-ran final database dumps at cut-over and moved DNS to the new host, and fixed PHP version-upgrade incompatibilities on a dedicated branch.

Key features

  • Component inventory and reproducible runbook for an undocumented legacy application
  • Rehearsal environment in a local VM matched to the client OS before touching client hardware
  • Legacy stack rebuild on end-of-life PHP and MySQL
  • Production database migration and re-dumped cut-over
  • Web server with PHP-FPM, supervisor-managed queue workers and scheduled cron jobs
  • Replicated and verified hourly/daily/weekly database backups
  • Reverse-proxy and port reclaim to coexist with existing office services
  • TLS certificates for the new subdomains, verified cross-browser
  • PHP version-upgrade compatibility fixes on a dedicated branch

Tech stack

  • AngularJS
  • Apache2
  • Certbot / Let's Encrypt
  • Composer
  • Dropbox API
  • DualMon
  • Fusebill
  • ImageMagick
  • Laravel
  • MySQL 5.6
  • Nginx
  • PDFtk
  • PHP
  • Pipedrive
  • Pusher
  • SendGrid
  • Supervisor
  • Ubuntu 16.04
  • VirtualBox
  • cron
  • php-fpm
  • poppler-utils
  • sshfs

Services behind this project

Read more

Let's Turn Your Idea Into Reality

Get Started