0
Scalable Plone hosting
with Amazon EC2
for Rice University’s
Rhaptos open learning
platform
Nate Aune - Jazkarta.com
Plone...
Agenda
• Benefits of cloud computing
• What services does Amazon provide?
• 5 minute launch of Plone on EC2
• Case study: R...
What makes the Cloud
so attractive?
3Sunday, November 7, 2010
Abstract resources
Focus on your needs, not on hardware specs.
As your needs change, so should your resources.
4Sunday, No...
On-demand provisioning
Ask for what you need, exactly when you need it.
Get rid of it when you don’t need it.
5Sunday, Nov...
Scalability in minutes
Scale out or in depending on usage needs.
6Sunday, November 7, 2010
Pay per consumption
No contracts or long-term commitments.
Pay only for what you use.
7Sunday, November 7, 2010
Efficiency of Experts
Utilize the skills, knowledge and resources of experts.
8Sunday, November 7, 2010
Most applications need:
• Compute
• Storage
• Messaging
• Payment
• Distribution
• Scale
• Analytics
9Sunday, November 7, ...
Flexible infrastructure
• Elastic Computing Cloud (EC2)
• Amazon Machine Images (AMI)
• Elastic IPs
• Elastic Block Storag...
Other services
• Simple Storage Solution (S3)
• CloudWatch (monitoring)
• CloudFront (CDN)
11Sunday, November 7, 2010
http://uec-images.ubuntu.com/
Text
12Sunday, November 7, 2010
mr.awsome
Buildout recipe to manage EC2 instances
13Sunday, November 7, 2010
Add an AWS part to buildout
[buildout]
parts = aws
[aws]
recipe = zc.recipe.egg
eggs = mr.awsome
entry-points =
aws=mr.aws...
Make a etc/aws.conf file
[securitygroup:demo-server]
description = Bristol Demo Server
connections =
tcp 22 22 0.0.0.0/0
tc...
Make a bash script:
etc/startup-demo-server
#!/bin/bash
set -e -x
export DEBIAN_FRONTEND=noninteractive
wget http://www.en...
Set your access keys
#!/bin/bash
export AWS_ACCESS_KEY_ID="<your_access_key_id>"
export AWS_SECRET_ACCESS_KEY="<your_secre...
Start the demo server
$ ./bin/aws start demo-server
INFO: Instance 'demo-server' unavailable
INFO: Creating instance 'demo...
Benefits of EC2
• Seamless disaster recovery with repeatable
deployments using buildout and mr.awsome
• Easy launching of t...
Connexions & Rhaptos
A case study in deploying OSS to the cloud
20Sunday, November 7, 2010
s
Log In Contact Us Report a Bug
Search
Search Site
Home Content Lenses About Us Help MyCNX
FEATURED CONTENT
New features
...
Search
Login Preferences Help/Guide About Trac
Wiki Timeline Roadmap Browse Source View Tickets New Ticket Search
Start Pa...
Virtualization of Rhaptos
Two primary reasons to move to the cloud:
1) Hurricane territory (disaster recovery)
2) Increase...
Deploy to Amazon EC2
with Python scripts
• Define server profiles with OS dependencies
and turn into an AMI (Amazon Machine ...
25Sunday, November 7, 2010
Distributed Architecture
Internet
Webserver
Cache Sys
Load Balancer
s1
s3
s4 s5
s2
proxy
frontend1
frontend2
frontend3
bac...
[macro:base-securitygroup]
connections =
tcp 22 22 0.0.0.0/0
tcp 80 80 0.0.0.0/0
[securitygroup:backend]
<= macro:base-sec...
[macro:base-instance]
image = ami-480df921
keypair = bristol-keypair
region = us-east-1
placement = us-east-1c
instance_ty...
[buildout]
parts =
backend-script
frontend-script
proxy-script
[backend-script]
recipe = collective.recipe.template
input ...
#!/bin/bash
set -e -x
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y
echo "----- Install syste...
[buildout]
backend-dns-name = ec2-174-129-192-63.compute-1.amazonaws.com
frontend1-dns-name = ec2-174-129-116-33.compute-1...
$ ./bin/aws start backend
$ ./bin/aws start frontend1
$ ./bin/aws start frontend2
$ ./bin/aws start proxy
Start up the ser...
Fault tolerant
Eliminating single points of failure.
33Sunday, November 7, 2010
Distributed Architecture
Internet
Webserver
Cache Sys
Load Balancer
s1
s3
s4 s5
s2
34Sunday, November 7, 2010
Heartbeat
monitors Zeo
server and moves to
backup in case of
failure
DRDB
Distributed storage
system similar in
principle ...
document jazhar_diagrams.graffle
modified 26 Oct 2009 20:51+0100 page 2
logical server
architecture
...
plone-fe-1.seas.harv...
Improvements to the
deployment process
• time to launch a new site
was days
• brittle non-repeatable
installation process
...
Fabric
Scripts to deploy to remote hosts.
http://www.fabfile.org
38Sunday, November 7, 2010
Fabric
set(fab_user='plone',
fab_hosts=['localhost'],
local='/home/plone/prod/',
remote='/opt/zope/prod/',
site='budapest....
Deploy
$ fab deploy
• Provides a local packaging of the source into
a tarball
• Removes the old remotely deployed code
• P...
Benefits of Fabric
• Chain local-command, remote-command,
and remote-copy commands
• Substitute variables, and the splittin...
Example Fabric file
• See Alex Clark’s Fabric file:
• http://github.com/aclark4life/Debian-Deploy-
Plone/blob/master/fabfile....
collective.hostout
Buildout-based recipe for deploying to remote host
http://plone.org/products/collective.hostout
43Sunda...
[buildout]
extends = buildout.cfg
parts += hostout prod
auto-checkout += collective.hostout
[sources]
collective.hostout =...
Run the deploy
commands
$ ./bin/buildout -N
Installing prod.
Generated script '/bin/hostout'.
$ bin/hostout deploy
Invalid...
Go to Dylan’s talk
• Deploying with collective.hostout with
Dylan Jay.
• Today at 16:10-16:55 in Duchess 1+2.
46Sunday, No...
Sprint idea
• Make a site to launch demo Plone sites using :
• t1.micro instances (free for 1st year)
• Enfold’s Ubuntu pa...
Questions?
• http://rhaptos.org
• http://pypi.python.org/pypi/mr.awsome
• http://fabfile.org
• http://pypi.python.org/pypi/...
Upcoming SlideShare
Loading in...5
×

Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open learning platform

2,820

Published on

Rhaptos is the Plone-based open source software that powers the popular educational materials portal CNX.org which receives 1-1.6 million visitors every month from all over the world. As a very popular resource for so many people, it's imperative that the site is architected for high availability. With data centers in Houston near hurricane territory, it was critical to have a backup plan for where to host the site in the event that the data center was destroyed.

This talk is a case study for how Rice University together with external consultants came up with a virtualization of the Rhaptos platform, to be able to quickly launch new instances on Amazon EC2. The deployment was completely automated for both multi-server production environments as well as one-off demo and testing instances. We'll show you how this was done and the tools and methods we used to make a rock solid solution.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,820
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Scalable Plone hosting with Amazon EC2 for Rice University's Rhaptos open learning platform"

  1. 1. Scalable Plone hosting with Amazon EC2 for Rice University’s Rhaptos open learning platform Nate Aune - Jazkarta.com Plone Conference 2010 Bristol, UK 1Sunday, November 7, 2010
  2. 2. Agenda • Benefits of cloud computing • What services does Amazon provide? • 5 minute launch of Plone on EC2 • Case study: Rhaptos hosting on EC2 • Questions? 2Sunday, November 7, 2010
  3. 3. What makes the Cloud so attractive? 3Sunday, November 7, 2010
  4. 4. Abstract resources Focus on your needs, not on hardware specs. As your needs change, so should your resources. 4Sunday, November 7, 2010
  5. 5. On-demand provisioning Ask for what you need, exactly when you need it. Get rid of it when you don’t need it. 5Sunday, November 7, 2010
  6. 6. Scalability in minutes Scale out or in depending on usage needs. 6Sunday, November 7, 2010
  7. 7. Pay per consumption No contracts or long-term commitments. Pay only for what you use. 7Sunday, November 7, 2010
  8. 8. Efficiency of Experts Utilize the skills, knowledge and resources of experts. 8Sunday, November 7, 2010
  9. 9. Most applications need: • Compute • Storage • Messaging • Payment • Distribution • Scale • Analytics 9Sunday, November 7, 2010
  10. 10. Flexible infrastructure • Elastic Computing Cloud (EC2) • Amazon Machine Images (AMI) • Elastic IPs • Elastic Block Storage (EBS) • Auto-scaling • Elastic Load Balancing (ELB) 10Sunday, November 7, 2010
  11. 11. Other services • Simple Storage Solution (S3) • CloudWatch (monitoring) • CloudFront (CDN) 11Sunday, November 7, 2010
  12. 12. http://uec-images.ubuntu.com/ Text 12Sunday, November 7, 2010
  13. 13. mr.awsome Buildout recipe to manage EC2 instances 13Sunday, November 7, 2010
  14. 14. Add an AWS part to buildout [buildout] parts = aws [aws] recipe = zc.recipe.egg eggs = mr.awsome entry-points = aws=mr.awsome:aws assh=mr.awsome:aws_ssh arguments = configpath="${buildout:directory}/etc" 14Sunday, November 7, 2010
  15. 15. Make a etc/aws.conf file [securitygroup:demo-server] description = Bristol Demo Server connections = tcp 22 22 0.0.0.0/0 tcp 80 80 0.0.0.0/0 tcp 8080 8080 0.0.0.0/0 [instance:demo-server] keypair = bristol-keypair securitygroups = demo-server region = us-east-1 placement = us-east-1a instance_type = t1.micro image = ami-480df921 startup_script = startup-demo-server fabfile = fabfile.py 15Sunday, November 7, 2010
  16. 16. Make a bash script: etc/startup-demo-server #!/bin/bash set -e -x export DEBIAN_FRONTEND=noninteractive wget http://www.enfoldsystems.com/pubkey.gpg apt-key add ./pubkey.gpg echo "deb http://dist.clients.enfoldsystems.com/ubuntu lucid universe" >> /etc/apt/sources.list apt-get update && apt-get upgrade -y apt-get install plone-default -y /etc/init.d/plone-default 16Sunday, November 7, 2010
  17. 17. Set your access keys #!/bin/bash export AWS_ACCESS_KEY_ID="<your_access_key_id>" export AWS_SECRET_ACCESS_KEY="<your_secret_access_key>" Set these environment variables. $ source setkeys.sh $ env File: setkeys.sh 17Sunday, November 7, 2010
  18. 18. Start the demo server $ ./bin/aws start demo-server INFO: Instance 'demo-server' unavailable INFO: Creating instance 'demo-server' INFO: Instance created, waiting until it's available .... INFO: Instance 'demo-server' available INFO: Instance running. INFO: Instances DNS name ec2-50-16-25-92.compute-1.amazonaws.com INFO: Instances public DNS name ec2-50-16-25-92.compute-1.amazonaws.com 18Sunday, November 7, 2010
  19. 19. Benefits of EC2 • Seamless disaster recovery with repeatable deployments using buildout and mr.awsome • Easy launching of testing, staging and QA servers that are isolated from your production environment (stop when not used to avoid paying for them) • Pay-for-what-you-use metered pricing to launch servers on-demand during peak periods • Auto-scaling to launch new Zeo client machines and shut them down when no longer needed 19Sunday, November 7, 2010
  20. 20. Connexions & Rhaptos A case study in deploying OSS to the cloud 20Sunday, November 7, 2010
  21. 21. s Log In Contact Us Report a Bug Search Search Site Home Content Lenses About Us Help MyCNX FEATURED CONTENT New features 1 2 3 MY ACCOUNT SPOTLIGHT Skip ConnexionsSections You are here: Home Connexions is: a place to view and share educational material made of small knowledge chunks called modules that can be organized as courses, books, reports, etc. Anyone may view or contribute: authors create and collaborate instructors rapidly build and share custom collections learners find and explore content More about us ... Advanced Algebra II The world of second-year algebra comes alive in Kenny Felder's Advanced Algebra II. Felder, a high school math teacher in North Carolina, designed his course using a nontraditional approach to a very traditional subject. Centered around a Homework and Activities book, along with accompanying Conceptual Explanations and Teacher's Guide collections, Advanced Algebra II tackles topics by focusing on comprehension rather than straight lecture delivery. Advanced Algebra II was selected by California's Free Digital Textbook Initiative to be included in a list of free textbooks available to California schools starting in Fall 2009. Collaborative Statistics Collaborative Statistics was written by two faculty members FIND CONTENT 16547 reusable modules woven into 1007 collections. or browse by ... Language Popularity Title, author, etc. CREATE CONTENT Creating content in Connexions is as easy as 1, 2, 3: Get an account and log in to your workspace. Make a module from scratch or convert it from a Word doc. Publish your works, sharing them with the world. Jump right in Get an account How to create a module in minutes How to create a collection with existing modules Guides and tutorials New author guide Connexions Tutorial and Reference Username Password Log in Get an account Forgot your password? User feedback "I enjoy using the Connexions site and the philosophy behind it encourages one to learn new fields and to network with others. Your site is my new homeschool on the internet. It is helping me to grow as a writer of academic materials as I read what others have written so as to shape my own. I am also amazed at the range of institutions where your writers come from. Thanks for the use of these great facilities." Go Arts Business Humanities Mathematics and Statistics Science and Technology Social Sciences Search Content Subject 21Sunday, November 7, 2010
  22. 22. Search Login Preferences Help/Guide About Trac Wiki Timeline Roadmap Browse Source View Tickets New Ticket Search Start Page Index History Last Change Welcome to Connexions and Rhaptos Software Development Connexions ( cnx.org) is legos for education. It is a world-wide repository and publishing system to build textbooks, courses, lessons, and journals. Individual authors, major content publishers, and educational organizations all contribute. Lenses provide a way for high-quality material to be endorsed, recommended, categorized, and aligned to standards. Rhaptos is the open source software that runs the Connexions site and Enterprise Rhaptos is the software for running private content installations. Read more about Connexions and Rhaptos mission and architecture here. Enterprise Rhaptos Connexions and Rhaptos Development API's for Accessing Data Quality Assurance and Testing Enterprise Rhaptos Enterprise Rhaptos enables the creation, sharing, modification, and vetting of educational materials accessible to anyone, anywhere, anytime via the World Wide Web. Rhaptos' unique features of permanent versions of all materials, a simple, semantic document language, and a powerful lensing system for post-publication quality control, customized tagging, and community-based search and discovery are the engine behind a truly reusable repository of knowledge and learning. Enterprise Rhaptos allows companies and individual organizations to host their own private authoring platform and publishing repository. Installation Instructions for Enterprise Rhaptos API's for Accessing Connexions Data Table of Contents Welcome to Connexions and Rhaptos Software Development Enterprise Rhaptos API's for Accessing Connexions Data Accessing content, feeds, and statistics Downloading, transforming and branding content Software Architecture and Application Programming Interfaces Connexions Rhaptos Development Developer Resources (Getting involved) Roadmap, Designs, Desires Starting Points for Connexions and Rhaptos Software Development Quality Assurance and Testing Test, Release, and Configuration Docs Using the Connexions Rhaptos Trac Bug System Release and Configuration Details for Connexions and Rhaptos More about TRAC 22Sunday, November 7, 2010
  23. 23. Virtualization of Rhaptos Two primary reasons to move to the cloud: 1) Hurricane territory (disaster recovery) 2) Increase adoption by other universities Cost was also a consideration but not a primary reason for carrying out the project. 23Sunday, November 7, 2010
  24. 24. Deploy to Amazon EC2 with Python scripts • Define server profiles with OS dependencies and turn into an AMI (Amazon Machine Image) • Install & configure application on EBS volume • Take snapshot of volume • Launch new AMIs and attach EBS volume created from saved snapshot. 24Sunday, November 7, 2010
  25. 25. 25Sunday, November 7, 2010
  26. 26. Distributed Architecture Internet Webserver Cache Sys Load Balancer s1 s3 s4 s5 s2 proxy frontend1 frontend2 frontend3 backend 26Sunday, November 7, 2010
  27. 27. [macro:base-securitygroup] connections = tcp 22 22 0.0.0.0/0 tcp 80 80 0.0.0.0/0 [securitygroup:backend] <= macro:base-securitygroup description = Bristol backend machine running Zeo server [securitygroup:frontend1] <= macro:base-securitygroup description = Bristol frontend machine running Zeo client 1 connections = tcp 8080 8080 0.0.0.0/0 [securitygroup:frontend2] <= macro:base-securitygroup description = Bristol frontend machine running Zeo client 2 connections = tcp 8080 8080 0.0.0.0/0 [securitygroup:proxy] <= macro:base-securitygroup description = Bristol proxy machine running Apache, Varnish, HAProxy aws.conf - define security groups 27Sunday, November 7, 2010
  28. 28. [macro:base-instance] image = ami-480df921 keypair = bristol-keypair region = us-east-1 placement = us-east-1c instance_type = t1.micro fabfile = fabfile.py [instance:backend] <= macro:base-instance securitygroups = backend startup_script = backend-startup.sh ip = xxx.xxx.xxx.xxx [instance:frontend1] <= macro:base-instance securitygroups = frontend1 startup_script = frontend-startup.sh ip = xxx.xxx.xxx.xxx [instance:frontend2] <= macro:base-instance securitygroups = frontend2 startup_script = frontend-startup.sh ip = xxx.xxx.xxx.xxx [instance:proxy] <= macro:base-instance securitygroups = proxy startup_script = proxy-startup.sh ip = xxx.xxx.xxx.xxx 28Sunday, November 7, 2010
  29. 29. [buildout] parts = backend-script frontend-script proxy-script [backend-script] recipe = collective.recipe.template input = deployment/templates/zope-startup-script.sh output = deployment/backend-startup.sh svn_url = http://svn.jazkarta.com/.../bristol-buildout/trunk buildout_config = backend.cfg [frontend-script] recipe = collective.recipe.template input = deployment/templates/zope-startup-script.sh output = deployment/frontend-startup.sh svn_url = http://svn.jazkarta.com/.../bristol-buildout/trunk buildout_config = frontend.cfg [proxy-script] recipe = collective.recipe.template input = deployment/templates/proxy-startup-script.sh output = deployment/proxy-startup.sh svn_url = http://svn.jazkarta.com/.../bristol-buildout/trunk buildout_config = proxy.cfg 29Sunday, November 7, 2010
  30. 30. #!/bin/bash set -e -x export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get upgrade -y echo "----- Install system packages for Plone" apt-get -y install python2.6-dev subversion build-essential echo "----- Create an unprivileged user zope with password disabled" adduser zope --disabled-password --gecos "" echo "----- Check out the buildout" cd /home/zope echo 'pn' | svn co http://svn.jazkarta.com/.../.../trunk buildout echo "----- Make the zope user the owner of this directory" chown -R zope:zope buildout echo "----- Run the buildout as user zope" cd buildout sudo -u zope python2.6 bootstrap.py -c backend.cfg sudo -u zope ./bin/buildout -v -c backend.cfg echo "----- Start Zeo processes" sudo -u zope ./bin/supervisord sudo -u zope ./bin/supervisorctl status echo "----- Make sure that Supervisor starts on reboot" ln -s /home/zope/buildout/etc/supervisor /etc/init.d/supervisor chmod +x /etc/init.d/supervisor update-rc.d supervisor defaults 30Sunday, November 7, 2010
  31. 31. [buildout] backend-dns-name = ec2-174-129-192-63.compute-1.amazonaws.com frontend1-dns-name = ec2-174-129-116-33.compute-1.amazonaws.com frontend2-dns-name = ec2-184-73-240-104.compute-1.amazonaws.com Must define the FQDN of the Zeo clients and Zeo servers When these names are resolved *on* the server, the DNS server returns the private IP, which means you avoid paying bandwidth charges for outgoing/incoming traffic. 31Sunday, November 7, 2010
  32. 32. $ ./bin/aws start backend $ ./bin/aws start frontend1 $ ./bin/aws start frontend2 $ ./bin/aws start proxy Start up the servers with one command 32Sunday, November 7, 2010
  33. 33. Fault tolerant Eliminating single points of failure. 33Sunday, November 7, 2010
  34. 34. Distributed Architecture Internet Webserver Cache Sys Load Balancer s1 s3 s4 s5 s2 34Sunday, November 7, 2010
  35. 35. Heartbeat monitors Zeo server and moves to backup in case of failure DRDB Distributed storage system similar in principle in RAID, but which works over the network. 35Sunday, November 7, 2010
  36. 36. document jazhar_diagrams.graffle modified 26 Oct 2009 20:51+0100 page 2 logical server architecture ... plone-fe-1.seas.harvard.eduplone-fe-0.seas.harvard.edu plone-zope-0.web.private plone-zope-1.web.private plone-zeo-0.web.private plone-zeo-1.web.private Zope Client ZEO Server ZEO Server Zope Client Zope Client Zope Client Apache Varnish Deliverance Pound browser clients backend frontend internet standard connection failover connection Apache Varnish Deliverance Pound Supervisor Supervisor • HTTP:8221 • HTTP:8222 • HTTP:8223 • HTTP:8220 • HTTP:8889 • HTTP:9999• HTTP:80 • HTTPS:443 • HTTP:8000 • HTTP:9999 ldap LDAPSupervisor • HTTP:9999 • LDAP:389• HTTP:8222 • HTTP:8223 Supervisor • HTTP:9999 host host passive resource active resource Supervisor • HTTP:9999 • HTTP:8220 • HTTP:8889 • HTTP:80 • HTTPS:443 • HTTP:8000 36Sunday, November 7, 2010
  37. 37. Improvements to the deployment process • time to launch a new site was days • brittle non-repeatable installation process • delay in procuring hardware and installing OS dependencies • time to launch a new site was minutes • streamlined and automated installation process • virtual machines are launched instantly and OS dependencies are already installed on the disk image. Before After 37Sunday, November 7, 2010
  38. 38. Fabric Scripts to deploy to remote hosts. http://www.fabfile.org 38Sunday, November 7, 2010
  39. 39. Fabric set(fab_user='plone', fab_hosts=['localhost'], local='/home/plone/prod/', remote='/opt/zope/prod/', site='budapest.buildout') def deploy(): local('cd $(local)$(site)') local('tar cvfz $(site).tgz buildout --exclude=.svn --exclude=*.pyc') run('cd $(remote)$(site); ./bin/supervisorctl shutdown') run('rm -rf $(remote)$(site)') put('$(site).tar.gz', '$(remote)$(site).tar.gz') run('cd $(root)$(site) && tar zxf $(site).tar.gz') start() def start(): run('cd $(remote)$(site)') run('./bin/supervisord') 39Sunday, November 7, 2010
  40. 40. Deploy $ fab deploy • Provides a local packaging of the source into a tarball • Removes the old remotely deployed code • Puts the source on the remote host • Restarts the site What does this one command do? 40Sunday, November 7, 2010
  41. 41. Benefits of Fabric • Chain local-command, remote-command, and remote-copy commands • Substitute variables, and the splitting of distinct operations (like in the case of the 'restart' command) so you run them separately, with a fab restart, for example. 41Sunday, November 7, 2010
  42. 42. Example Fabric file • See Alex Clark’s Fabric file: • http://github.com/aclark4life/Debian-Deploy- Plone/blob/master/fabfile.py 42Sunday, November 7, 2010
  43. 43. collective.hostout Buildout-based recipe for deploying to remote host http://plone.org/products/collective.hostout 43Sunday, November 7, 2010
  44. 44. [buildout] extends = buildout.cfg parts += hostout prod auto-checkout += collective.hostout [sources] collective.hostout = svn https://svn.plone.org/svn/collective/collective.hostout/trunk [hostout] recipe = collective.hostout user = root #password = blah identity-file = /Users/nateaune/id_rsa-gsg-keypair pre-commands = # ${buildout:directory}/bin/supervisorctl shutdown || echo 'Unable to shutdown' # post-commands = # ${buildout:directory}/bin/supervisord #effective-user = zope [prod] recipe = collective.hostout extends = hostout host = ec2-75-101-211-135.compute-1.amazonaws.com buildout = buildout.cfg path = /opt/zope/prod 44Sunday, November 7, 2010
  45. 45. Run the deploy commands $ ./bin/buildout -N Installing prod. Generated script '/bin/hostout'. $ bin/hostout deploy Invalid hostout hostouts are: prod $ bin/hostout deploy prod ... 45Sunday, November 7, 2010
  46. 46. Go to Dylan’s talk • Deploying with collective.hostout with Dylan Jay. • Today at 16:10-16:55 in Duchess 1+2. 46Sunday, November 7, 2010
  47. 47. Sprint idea • Make a site to launch demo Plone sites using : • t1.micro instances (free for 1st year) • Enfold’s Ubuntu package • xdv to show multitude of themes • Could later include bundles of popular add-ons: PloneEdu, multimedia, etc. 47Sunday, November 7, 2010
  48. 48. Questions? • http://rhaptos.org • http://pypi.python.org/pypi/mr.awsome • http://fabfile.org • http://pypi.python.org/pypi/collective.hostout • 48Sunday, November 7, 2010
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×