Emerson Fry
Summary
Re-engineered a single server Ubuntu/Drupal eCommerce site with a very inefficient once nightly sync to the Netsuite ERP backend. Built into a load balanced, automatic horizontally scaling fleet of servers with a one minute sync delay to Netsuite. With mobile optimized themes/layouts and a CDN to make image heavy site blazingly fast.
"It's all about the build systems..."
Interesting Problems Solved
The Drupal to Netsuite middleware was a custom Drupal plugin based on a Netsuite provided API and PHP SDK. The SDK from Netsuite was not particularly well documented, so a fair amount of debugging was necessary, but eventually what had been a once nightly cron job because it often took close to half an hour and froze the site became a once per minute cron job that synced only changes since the last successful sync, with no perceptible impact on the site.
The web stack became a distributed fleet, with the database broken off into it’s own optimized EC2 server, and a minimum of 1 web server EC2, that ran the LAMP stack and Drupal, which could scale horizontally by spinning up more web servers.
With the web layer sitting behind a load balancer, if the response time for key pages dropped below 1 second, additional web servers would spin up. And were also set to spin down when traffic decreased.
There were several “recipes” developed for the AWS Dashboard, and the client was able to easily select whether the auto scaling fleet used “small”, “medium”, or “large” EC2 instances to scale…amongst other easily translatable performance tuning options. This allowed an excellent degree of control for non developer staff.
Along with a CDN for the many lush images and significant custom mobile optimized code for the Drupal theme, this was a highly optimized and performant stack!
"Can't over overrate how important it is to iterate."
Tech Stack
Not an exhaustive list, but the big players:
"Any tech problem can be solved with enough coffee, code, and creativity..."