The College of Engineering at the University of Notre Dame wanted to minimize site outages and fix performance issues with their website. In addition, they needed to comply with the university mandate to standardize on Amazon Web Services (AWS).
The AWS infrastructure is always innovating, which means new features and options are constantly released. Amazon's documentation is also having trouble keeping up with the pace of change and can be out of date. This provides for interesting challenges throughout any AWS deployment project.
The College of Engineering wanted a highly available deployment that could be managed by their operations team. They specifically wanted to be able to automatically deploy and destroy a Testing environment at will. So the Six Feet Up team designed a deployment system as "push button" as possible.
The project started with a performance baseline of the legacy system.
Then the Six Feet Up team set up SaltStack to automate the infrastructure release and orchestration software deployment. This consisted of configuring Elastic Load Balancers (ELB), CloudFront Distribution, multi-AZ RDS, EC2, Elastic File System (EFS) mount points to store Plone's blobstorage.
Six Feet Up set up HAProxy for failover and HTTPS termination. We used SaltStack to install the Plone application dependencies in a consistent and repeatable fashion.
We created a "push button" release process for the university's development team. With one command, they could run a dozen commands and any other processes typically involved in a release action.
The Six Feet Up engineers also created an open source cache invalidation product for Plone that supports CloudFront natively.
The College of Engineering's sites have been much faster and more reliable due to the CloudFront CDN and the load-balancer that were put in place. And the internal team can now perform their own code releases.