UC Davis OpsWorks and Plone Consulting

Project Type:
University of California Davis
Davis, California

Move a complex, multi-site Plone deployment to the OpsWorks platform.

Working with Jazkarta was a great decision for our project. They brought a wide range of Plone experience - from DevOps to performance tuning to development of custom views - that would have taken us months to develop in-house and resulted in a much better product. Leveraging Jazkarta’s expertise allowed us to focus our efforts on working with our internal customers to meet their needs rather than on technical implementation. On top of that, Sally and her team were great to work with, bringing in experienced resources as needed, adapting quickly to our changing needs, and giving us sound and timely advice that have helped us build a great foundation.

Jeremy Phillips, IT Director
UC Davis OpsWorks and Plone Consulting

The UC Davis Division of Social Sciences had embarked on a large project to redesign and standardize their 23 Plone sites, consolidating them into a single, robust, multi-site deployment. They became interested in Jazkarta's work on AWS OpsWorks deployments, and used our publicly available recipes to launch a proof of concept. To ensure smooth sailing on this high profile project they decided to enlist our help. We updated our OpsWorks recipes to handle multiple sites in a single stack, advised DSS on the configuration of their AWS resources, and performed the final site migration.

To decide on the best approach to data storage, including "blobs" (binary large objects, things like files and images), we set up locust.io performance benchmarking sites on small servers to compare three different approaches.

  • Storing blobs in S3 - This was too slow.
  • Storing blobs in NFS - Upload times were fast but downloads were slower on average.
  • Storing blobs in RDS - For this we used RelStorage, a relational database storage implementation for Plone's object database. It had slower uploads compared to NFS but was still reasonably fast. Initial downloads were sometimes slower, but subsequent downloads were much faster as a result of local blob caching.  The RelStorage configuration was simpler and RDS provides the advantage of trouble-free redundancy and failover. This is the approach that we used.

After all sites were successfully migrated to OpsWorks, we worked on improving performance, including resolving difficult to debug issues with the theme's Diazo rules. We also created a custom event tile view, implemented a new datepicker widget for faceted navigation. and created a roadmap for preparing these sites for a  Plone 5 upgrade.