Best Practices for Deploying and Optimizing Plone Sites

Configuring robust, repeatable deployments

This 1 day technical class is for system administrators and others responsible for deploying Plone sites. It covers buildout configurations, reliable backup procedures, configuration of caching and load balancing tools, and more. Students are expected to have built basic Plone sites, either Plone 4 or Plone 5.

Students will get the most out of this class if they already have the following skills:

  • Basic Python
  • Shell scripting
  • Linux system administration

This is a hands-on class and students should bring a laptop computer. Examples will be used and at the end of the course, you will have a working production buildout that you can use for further exploration.

The following syllabus may be adjusted slightly depending on student interests.

MORNING: CREATING A REPEATABLE DEPLOYMENT

  • Managing your code with a version control system (Subversion or Git)
  • Releasing eggs to pypi, plone.org and private egg servers
  • Creating buildout configurations for local development and production deployment
  • Pinning the egg versions in your buildout
  • Deploying your buildout to a production server 

LUNCH BREAK

12:00 PM - 1:00 PM

AFTERNOON: SETTING UP THE PRODUCTION ENVIRONMENT

  • Installing all operating system dependencies on a destination Linux server
  • Configuring Varnish and Plone for caching 
  • Configuring Pound and Zeo clusters for load balancing
  • Creating Apache vhosts
  • Alternative http servers such as nginx
  • Configuring cron jobs to pack the ZODB
  • Configuring cron jobs for repozo to make backups of Data.fs
  • Configuring log file rotation