Getting Started with Plone Hosting on Amazon EC2
This 1 day technical training will guide you through the best practices for architecting your Plone hosting infrastructure on Amazon EC2, and introduce you to various tools to automate and make repeatable deployments. It is intended for developers, integrators, system administrators, and others responsible for deploying Plone sites.
Students are expected to have built basic Plone sites, either Plone 4 or 5. A typical student has attended Jazkarta developer training or has equivalent experience, and wishes to expand their scope of operational knowledge.
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 deployment that you can use for further exploration.
Note: You must sign up for Amazon AWS prior to the class, and already have a working AWS account.
The following syllabus may be adjusted depending on student interests.
MORNING: GETTING ORIENTED WITH AMAZON EC2 BASICS
- Overview of Amazon AWS services and benefits
- Get your local environment set up with key pairs
- Create a buildout configuration for use with Amazon EC2
- Set up Amazon security groups to only allow incoming traffic on certain ports
- Launching your first EC2 instance and configuring the server with a user-data script
LUNCH BREAK
12:00 PM - 1:00 PM
AFTERNOON: DEPLOYING PLONE TO EC2 FOR PRODUCTION
- Using instance store instances that include all dependencies
- Storing data on S3
- Writing scripts to create instance stores, make snapshots, and do other sysadmin tasks
- Using mr.awsome to do automated deployments from scripts
- Using RelStorage and SQL databases to leverage simple master/slave replication for better geographic distribution
- Overview of a multi-server deployment with front end proxy server, multiple Zeo clients and Zeo server
- Setting up EC2 instances to talk to each other, for example in a load balancing scenario with multiple Zeo clients talking to another server running the Zeo server
- Simplifying and automating devops tasks with Amazon's OpsWorks