SlideShare a Scribd company logo
Deploy  Python  apps  
   in  5  minutes
    with  a  PaaS
             Nate  Aune
    PyCon  on  the  Charles,  part  1
           Feb.  25,  2013
Jazkarta  (2004-­‐current)
2010-­‐2011

• Nothing  equivalent  to  Heroku  for  Django  
  developers
• Built  my  own  PaaS  (“How  hard  can  it  be?”)
• Shut  down  last  year.  Increased  compeTTon  
  from  big  corps  meant  a  race  to  the  boUom
Appsembler  (2012-­‐current)
Agenda

• Why  should  I  care?  
• What  is  a  PaaS?  What  are  the  advantages?
• Which  PaaS  should  I  use?
• When  might  I  not  want  to  use  a  PaaS?
Where  are  you  
deploying/hosTng  today?
• Shared  hosTng  (i.e.  WebfacTon)
• Running  your  own  servers  (co-­‐located)?
• Using  an  IaaS  provider  (i.e.  AWS  or  Rackspace)
• Already  using  a  plaZorm-­‐as-­‐a-­‐service  (PaaS)
Meet  Dave
Deploy Python apps in 5 min with a PaaS
Configuring  a  server

         • deciding  what  size  to  get  (memory,  disk)
         • ge]ng  all  the  dependencies  installed  on  it
         • SSHing  into  the  machine  to  deploy  stuff  
           (feels  dirty,  but  he’s  under  Tme  pressure)
1  day      1  day
Maintaining  the  server




1  day   1  day   1  day
Security




1  day   1  day   1  day    1  day
Scaling




1  day   1  day   1  day   1  day   1  day
Oh  sh*t  moment.
Sysadmin $80k
te
sed


        DBA $90k
                       Train new guy

                   6
Why  touch  servers  if  
you  don’t  have  to?
PaaS
Is  it  the  promised  land?
What is a PaaS?
  Platform-as-a-service enables developers to create
innovative applications without operational overhead
 around configuration, deployment and management.
Layers of infrastructure




Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
Source: AppFog “Evolution of the Cloud: Toward a NoOps World” Jan 2012
http://gigaom.com/cloud/why-2013-is-the-year-of-noops-for-programmers-infographic/
Efficient, Elastic, Secure

• Lots of applications co-located on a few servers
 • Drastically reduces resources
 • Add/remove servers depending on load
 • All secured using SELinux or LXC
Let them do
    the boring stuff
• Patches and updates
• Migrating applications
• Backups / snapshots
• Configuring everything (web servers, load
  balancers, modules, databases)
Define  OS  dependencies

         www:
          type: python
          systempackages:
            - openoffice.org
            - mysql-client-5.1


5  min
Backups




5m 5m




        https://devcenter.heroku.com/articles/heroku-postgres-fork
SSL




5m 5m 5m
Scaling




5m 5m 5m 5m




              https://openshift.redhat.com/community/developers/scaling
Caching




5m 5m 5m 5m 5m
IaaS  vs.  PaaS
   IaaS  -­‐  days



  PaaS  -­‐  minutes
Which  PaaS?

• Hosted
• DIY
• Hybrid  (public  with  opTon  to  go  private)
Who are the players?

• CloudFoundry • Heroku
  (open source by VMWare)   (now Salesforce)
                                               • OpenShift
                                                 (Redhat’s open source PaaS)


• AppFog       • Dotcloud                      • App Engine
                                                 (Google)

• Stackato
  (ActiveState)
               • Gondor     (Python only)      • Elastic Beanstalk
                                                 (Amazon)


                                               • Azure
                                                 (Microsoft)
Who are the players?
                  We’ll look at these ones tonight.


• CloudFoundry • Heroku • OpenShift
  (open source by VMWare)    (now Salesforce)   (Redhat’s open source PaaS)


• AppFog       • Dotcloud • App Engine          (Google)

• Stackato • Gondor
  (ActiveState)           • Elastic Beanstalk
                             (Python only)
                                                (Amazon)


                          • Azure               (Microsoft)
Dotcloud
polyglot from the start, very flexible, most Python centric
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaS
Anatomy of a
     Django app
    on Dotcloud
customized settings.py for Dotcloud

createdb.py to create the database
dotcloud.yml to store config info
mkadmin.py to make the admin user
nginx.conf to config URL rewriting
postinstall to run syncdb, collectstatic

wsgi.py to serve using uWSGI
Heroku
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaS
Anatomy of a
    Django app
    on Heroku

customized settings.py for Heroku


Procfile to configure process

requirements.txt to define dependencies
Stackato
                     by ActiveState
     Python 3, Run anywhere, New Relic integration




http://appsembler.com/blog/django-deployment-using-stackato/
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaS
Anatomy of
Django app on
   Stackato

customized settings file




stackato.yml to define services
wsgi.py to serve using uWSGI
OpenShift
                       by Redhat
         Open source, Auto-scaling, Jenkins builds




http://appsembler.com/blog/django-deployment-using-openshift/
Deploy Python apps in 5 min with a PaaS
Action hooks for running commands
   during build, deploy, post-deploy, etc.



/data/ dir to store uploaded media files

     Anatomy of an
     OpenShift repo
   .htaccess to serve up static files
  application inside of wsgi dir

 setup.py instead of requirements.txt
Stackato OpenShift Dotcloud                                      Heroku
Python           2.7, 3.2 2.6 (2.7) 2.6.5, 2.7.2,                                 2.7.2
                stackato runtimes
                                                       3.1.2, 3.2.2
PostgreSQL         9.1                 8.4                 9.0                     9.1.6
MySQL              5.5                 5.1                 5.1                 (Yes, via RDS)

Persisted FS       Yes                 Yes                 Yes                  (Yes, via S3)

Redis            Yes, 2.4              No              Yes, 2.4.11            (Yes, via addon)

MongoDB          Yes, 2.0            Yes, 2.2           Yes, 2.2.1            (Yes, via addon)

Memcached        Yes, 1.4              No                  Yes                (Yes, via addon)

RabbitMQ         Yes, 2.4              No               Yes, 2.8.5            (Yes, via addon)

Solr               No                  No               Yes, 3.4.0           (Yes, via Websolr)

Cron               Yes                 Yes                 Yes                       Yes
Extensible     Yes, apt-get install Yes, DIY cartridge Yes, custom service      Yes, buildpacks

WebSockets           Yes                Yes                  Yes             Yes, via Pusher add-on
Stackato OpenShift Dotcloud                                      Heroku
Memory       Configurable            1.5GB             Unlimited
                                    RAM               sandbox



Apps         Configurable              No              Yes, 2.8.5            (Yes, via addon)


Solr              No                  No              Yes, 3.4.0           (Yes, via Websolr)


Cron              Yes                 Yes                  Yes                     Yes

Extensible   Yes, apt-get install Yes, DIY cartridge Yes, custom service      Yes, buildpacks




WebSockets        Yes                   ?                  Yes             Yes, via Pusher add-on
Why  not  PaaS?

• Already  invested  in  your  own  infrastructure.
• Need  to  run  on  servers  outside  U.S.
• Special  requirements  not  met  by  PaaS  services
OpenShid  Pricing
Dotcloud  pricing
Heroku pricing
Other resources
• Wrap-up from PaaS bake-off
  http://appsembler.com/blog/wrap-up-from-paas-bake-off/

• Django deployment using PaaS
  http://appsembler.com/blog/django-deployment-using-paas/

• django-deployer
  https://github.com/natea/django-deployer

• paasbakeoff - code examples
   https://github.com/appsembler/paasbakeoff/

More Related Content

What's hot (19)

PPT
2 Linux Container and Docker
Fabio Fumarola
 
PDF
Chef & OpenStack: OSCON 2014
Matt Ray
 
PDF
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
pkill
 
PDF
Colleen Murphy: Puppet and OpenStack
Puppet
 
PDF
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
Tommy Lee
 
PDF
Chef 11 Preview/Chef for OpenStack
Matt Ray
 
PDF
20121204 open technet_openstack_이틀만하면나처럼할수있다
Nalee Jang
 
PDF
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Alvaro Viebrantz
 
PDF
OpenStack Deployments with Chef
Matt Ray
 
PDF
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
Daniel Krook
 
PDF
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
PPT
3 Git
Fabio Fumarola
 
PDF
Red Hat Cloud Infrastructure Conference 2013 - Presentation about OpenStack ...
Elos Technologies s.r.o.
 
PDF
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
Matt Ray
 
PDF
Introduction openstack-meetup-nov-28
Sadique Puthen
 
PDF
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
OpenStack Korea Community
 
PPT
An introduction to maven gradle and sbt
Fabio Fumarola
 
PPTX
Immutable infrastructure 介紹與實做:以 kolla 為例
kao kuo-tung
 
PDF
Open stack
Luan Cestari
 
2 Linux Container and Docker
Fabio Fumarola
 
Chef & OpenStack: OSCON 2014
Matt Ray
 
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
pkill
 
Colleen Murphy: Puppet and OpenStack
Puppet
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Ranchers
Tommy Lee
 
Chef 11 Preview/Chef for OpenStack
Matt Ray
 
20121204 open technet_openstack_이틀만하면나처럼할수있다
Nalee Jang
 
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Alvaro Viebrantz
 
OpenStack Deployments with Chef
Matt Ray
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
Daniel Krook
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
Red Hat Cloud Infrastructure Conference 2013 - Presentation about OpenStack ...
Elos Technologies s.r.o.
 
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
Matt Ray
 
Introduction openstack-meetup-nov-28
Sadique Puthen
 
[OpenStack Day in Korea 2015] Track 1 - Triple O를 이용한 빠르고 쉬운 OpenStack 설치
OpenStack Korea Community
 
An introduction to maven gradle and sbt
Fabio Fumarola
 
Immutable infrastructure 介紹與實做:以 kolla 為例
kao kuo-tung
 
Open stack
Luan Cestari
 

Viewers also liked (20)

PDF
PyCon talk: Deploy Python apps in 5 min with a PaaS
Appsembler
 
PPT
Corredor Norte De La Isla Hispaniola Creole
guesta96e92
 
PDF
Maintaining an up to date application stack (in a containerized world)
Christoph Görn
 
PDF
Visual Design with Data
Seth Familian
 
PDF
Simplifying and Securing your OpenShift Network with Project Calico
Andrew Randall
 
PDF
Red Hat Storage Day Boston - Persistent Storage for Containers
Red_Hat_Storage
 
PDF
Openstack benelux 2015
Microsoft
 
PDF
DailyTranslate Brochure
Bilavschi Justin
 
PDF
Dev opsmeetup sept2013-leaseweb
Microsoft
 
PDF
PerfUG 3 - perfs système
Ludovic Piot
 
DOC
Resume Shavez Hasan (1)
Shavez Mirza
 
PPTX
Docker open stack
Guangya Liu
 
PDF
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Red Hat Developers
 
PDF
Docker meetup - PaaS interoperability
Ludovic Piot
 
PDF
New Features of Kubernetes v1.2.0 beta
Giragadurai Vallirajan
 
PPTX
Movie recommendation system using Apache Mahout and Facebook APIs
Smitha Mysore Lokesh
 
PPTX
Intro to Mahout
Uri Lavi
 
PDF
From legacy to modern CI/CD in tis with concourse
isshan
 
PPTX
Scalling development teams using Docker
Daniel Oliveira Filho
 
PPTX
Las redes sociales 1ro a
Mariuxi Cuasqui
 
PyCon talk: Deploy Python apps in 5 min with a PaaS
Appsembler
 
Corredor Norte De La Isla Hispaniola Creole
guesta96e92
 
Maintaining an up to date application stack (in a containerized world)
Christoph Görn
 
Visual Design with Data
Seth Familian
 
Simplifying and Securing your OpenShift Network with Project Calico
Andrew Randall
 
Red Hat Storage Day Boston - Persistent Storage for Containers
Red_Hat_Storage
 
Openstack benelux 2015
Microsoft
 
DailyTranslate Brochure
Bilavschi Justin
 
Dev opsmeetup sept2013-leaseweb
Microsoft
 
PerfUG 3 - perfs système
Ludovic Piot
 
Resume Shavez Hasan (1)
Shavez Mirza
 
Docker open stack
Guangya Liu
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Red Hat Developers
 
Docker meetup - PaaS interoperability
Ludovic Piot
 
New Features of Kubernetes v1.2.0 beta
Giragadurai Vallirajan
 
Movie recommendation system using Apache Mahout and Facebook APIs
Smitha Mysore Lokesh
 
Intro to Mahout
Uri Lavi
 
From legacy to modern CI/CD in tis with concourse
isshan
 
Scalling development teams using Docker
Daniel Oliveira Filho
 
Las redes sociales 1ro a
Mariuxi Cuasqui
 
Ad

Similar to Deploy Python apps in 5 min with a PaaS (20)

PDF
Running a business in the Cloud with AWS
Conor O'Neill
 
PDF
meetPHP#8 - PHP startups prototypes
Max Małecki
 
PPTX
vBACD - Crash Course in Open Source Cloud Computing - 2/28
CloudStack - Open Source Cloud Computing Project
 
PDF
Cf intro for spring devs
Eric Bottard
 
ZIP
Introduction to Google App Engine
mdc11
 
PDF
A Day in the Life of a Silicon Valley Startup
Sachin Rekhi
 
PDF
Cloud PaaS with Java
Eberhard Wolff
 
PPTX
Build a Cloud Day SF - Crash Course on Open Source Cloud Computing
Mark Hinkle
 
PDF
Midwest php 2013 deploying php on paas- why & how
dotCloud
 
PPTX
The DevOps PaaS Infusion - May meetup
Norm Leitman
 
PPTX
GigaSpaces Cloudify - The PaaS Jailbreaker
Uri Cohen
 
PPT
Cloud Computing for Barcamp NOLA 2009
Steven Evatt
 
KEY
Rails Usergroup Hamburg: Heroku
Ralph von der Heyden
 
PPTX
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
PDF
Delivering Infrastructure-as-a-Service with Open Source Software
Mark Hinkle
 
PDF
Cloud Foundry Introduction and Overview
Andy Piper
 
KEY
Services inception in Ruby
Dave McCrory
 
PDF
Introduction to Cloud Computing (New)
Chathuranga Bandara
 
PDF
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
IndicThreads
 
PDF
Public PaaS Throwdown!
Ronak Mallik
 
Running a business in the Cloud with AWS
Conor O'Neill
 
meetPHP#8 - PHP startups prototypes
Max Małecki
 
vBACD - Crash Course in Open Source Cloud Computing - 2/28
CloudStack - Open Source Cloud Computing Project
 
Cf intro for spring devs
Eric Bottard
 
Introduction to Google App Engine
mdc11
 
A Day in the Life of a Silicon Valley Startup
Sachin Rekhi
 
Cloud PaaS with Java
Eberhard Wolff
 
Build a Cloud Day SF - Crash Course on Open Source Cloud Computing
Mark Hinkle
 
Midwest php 2013 deploying php on paas- why & how
dotCloud
 
The DevOps PaaS Infusion - May meetup
Norm Leitman
 
GigaSpaces Cloudify - The PaaS Jailbreaker
Uri Cohen
 
Cloud Computing for Barcamp NOLA 2009
Steven Evatt
 
Rails Usergroup Hamburg: Heroku
Ralph von der Heyden
 
Overview: Building Open Source Cloud Computing Environments
Mark Hinkle
 
Delivering Infrastructure-as-a-Service with Open Source Software
Mark Hinkle
 
Cloud Foundry Introduction and Overview
Andy Piper
 
Services inception in Ruby
Dave McCrory
 
Introduction to Cloud Computing (New)
Chathuranga Bandara
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
IndicThreads
 
Public PaaS Throwdown!
Ronak Mallik
 
Ad

More from Appsembler (9)

PDF
Anatomy of Open edX at DjangoBoston October 2018
Appsembler
 
PDF
Eucalyptus Release of Open edX
Appsembler
 
PDF
Open edX Conference 2016 Review
Appsembler
 
PDF
Open edX & Interoperability: Making Open edX play nicely with others
Appsembler
 
PDF
Open edX for Corporate Learning - Open edX Conference 2016
Appsembler
 
PDF
What's new: Open edX Dogwood release
Appsembler
 
PDF
Open edX & Interoperability: Making Open edX play nicely with others
Appsembler
 
PDF
A Survey of XBlocks for extending Open edX
Appsembler
 
PDF
Scaling Open edX with Kubernetes
Appsembler
 
Anatomy of Open edX at DjangoBoston October 2018
Appsembler
 
Eucalyptus Release of Open edX
Appsembler
 
Open edX Conference 2016 Review
Appsembler
 
Open edX & Interoperability: Making Open edX play nicely with others
Appsembler
 
Open edX for Corporate Learning - Open edX Conference 2016
Appsembler
 
What's new: Open edX Dogwood release
Appsembler
 
Open edX & Interoperability: Making Open edX play nicely with others
Appsembler
 
A Survey of XBlocks for extending Open edX
Appsembler
 
Scaling Open edX with Kubernetes
Appsembler
 

Recently uploaded (20)

PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
July Patch Tuesday
Ivanti
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Biography of Daniel Podor.pdf
Daniel Podor
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 

Deploy Python apps in 5 min with a PaaS

  • 1. Deploy  Python  apps   in  5  minutes with  a  PaaS Nate  Aune PyCon  on  the  Charles,  part  1 Feb.  25,  2013
  • 3. 2010-­‐2011 • Nothing  equivalent  to  Heroku  for  Django   developers • Built  my  own  PaaS  (“How  hard  can  it  be?”) • Shut  down  last  year.  Increased  compeTTon   from  big  corps  meant  a  race  to  the  boUom
  • 5. Agenda • Why  should  I  care?   • What  is  a  PaaS?  What  are  the  advantages? • Which  PaaS  should  I  use? • When  might  I  not  want  to  use  a  PaaS?
  • 6. Where  are  you   deploying/hosTng  today? • Shared  hosTng  (i.e.  WebfacTon) • Running  your  own  servers  (co-­‐located)? • Using  an  IaaS  provider  (i.e.  AWS  or  Rackspace) • Already  using  a  plaZorm-­‐as-­‐a-­‐service  (PaaS)
  • 9. Configuring  a  server • deciding  what  size  to  get  (memory,  disk) • ge]ng  all  the  dependencies  installed  on  it • SSHing  into  the  machine  to  deploy  stuff   (feels  dirty,  but  he’s  under  Tme  pressure) 1  day 1  day
  • 10. Maintaining  the  server 1  day 1  day 1  day
  • 11. Security 1  day 1  day 1  day 1  day
  • 12. Scaling 1  day 1  day 1  day 1  day 1  day
  • 14. Sysadmin $80k te sed DBA $90k Train new guy 6
  • 15. Why  touch  servers  if   you  don’t  have  to?
  • 16. PaaS Is  it  the  promised  land?
  • 17. What is a PaaS? Platform-as-a-service enables developers to create innovative applications without operational overhead around configuration, deployment and management.
  • 18. Layers of infrastructure Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
  • 19. Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
  • 20. Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
  • 21. Source: EngineYard “PaaS - State of the Market Survey” May 2012 - http://venturebeat.com/2012/07/05/engine-yard-paas-infographic/
  • 22. Source: AppFog “Evolution of the Cloud: Toward a NoOps World” Jan 2012 http://gigaom.com/cloud/why-2013-is-the-year-of-noops-for-programmers-infographic/
  • 23. Efficient, Elastic, Secure • Lots of applications co-located on a few servers • Drastically reduces resources • Add/remove servers depending on load • All secured using SELinux or LXC
  • 24. Let them do the boring stuff • Patches and updates • Migrating applications • Backups / snapshots • Configuring everything (web servers, load balancers, modules, databases)
  • 25. Define  OS  dependencies www: type: python systempackages: - openoffice.org - mysql-client-5.1 5  min
  • 26. Backups 5m 5m https://devcenter.heroku.com/articles/heroku-postgres-fork
  • 28. Scaling 5m 5m 5m 5m https://openshift.redhat.com/community/developers/scaling
  • 30. IaaS  vs.  PaaS IaaS  -­‐  days PaaS  -­‐  minutes
  • 31. Which  PaaS? • Hosted • DIY • Hybrid  (public  with  opTon  to  go  private)
  • 32. Who are the players? • CloudFoundry • Heroku (open source by VMWare) (now Salesforce) • OpenShift (Redhat’s open source PaaS) • AppFog • Dotcloud • App Engine (Google) • Stackato (ActiveState) • Gondor (Python only) • Elastic Beanstalk (Amazon) • Azure (Microsoft)
  • 33. Who are the players? We’ll look at these ones tonight. • CloudFoundry • Heroku • OpenShift (open source by VMWare) (now Salesforce) (Redhat’s open source PaaS) • AppFog • Dotcloud • App Engine (Google) • Stackato • Gondor (ActiveState) • Elastic Beanstalk (Python only) (Amazon) • Azure (Microsoft)
  • 34. Dotcloud polyglot from the start, very flexible, most Python centric
  • 37. Anatomy of a Django app on Dotcloud customized settings.py for Dotcloud createdb.py to create the database dotcloud.yml to store config info mkadmin.py to make the admin user nginx.conf to config URL rewriting postinstall to run syncdb, collectstatic wsgi.py to serve using uWSGI
  • 41. Anatomy of a Django app on Heroku customized settings.py for Heroku Procfile to configure process requirements.txt to define dependencies
  • 42. Stackato by ActiveState Python 3, Run anywhere, New Relic integration http://appsembler.com/blog/django-deployment-using-stackato/
  • 45. Anatomy of Django app on Stackato customized settings file stackato.yml to define services wsgi.py to serve using uWSGI
  • 46. OpenShift by Redhat Open source, Auto-scaling, Jenkins builds http://appsembler.com/blog/django-deployment-using-openshift/
  • 48. Action hooks for running commands during build, deploy, post-deploy, etc. /data/ dir to store uploaded media files Anatomy of an OpenShift repo .htaccess to serve up static files application inside of wsgi dir setup.py instead of requirements.txt
  • 49. Stackato OpenShift Dotcloud Heroku Python 2.7, 3.2 2.6 (2.7) 2.6.5, 2.7.2, 2.7.2 stackato runtimes 3.1.2, 3.2.2 PostgreSQL 9.1 8.4 9.0 9.1.6 MySQL 5.5 5.1 5.1 (Yes, via RDS) Persisted FS Yes Yes Yes (Yes, via S3) Redis Yes, 2.4 No Yes, 2.4.11 (Yes, via addon) MongoDB Yes, 2.0 Yes, 2.2 Yes, 2.2.1 (Yes, via addon) Memcached Yes, 1.4 No Yes (Yes, via addon) RabbitMQ Yes, 2.4 No Yes, 2.8.5 (Yes, via addon) Solr No No Yes, 3.4.0 (Yes, via Websolr) Cron Yes Yes Yes Yes Extensible Yes, apt-get install Yes, DIY cartridge Yes, custom service Yes, buildpacks WebSockets Yes Yes Yes Yes, via Pusher add-on
  • 50. Stackato OpenShift Dotcloud Heroku Memory Configurable 1.5GB Unlimited RAM sandbox Apps Configurable No Yes, 2.8.5 (Yes, via addon) Solr No No Yes, 3.4.0 (Yes, via Websolr) Cron Yes Yes Yes Yes Extensible Yes, apt-get install Yes, DIY cartridge Yes, custom service Yes, buildpacks WebSockets Yes ? Yes Yes, via Pusher add-on
  • 51. Why  not  PaaS? • Already  invested  in  your  own  infrastructure. • Need  to  run  on  servers  outside  U.S. • Special  requirements  not  met  by  PaaS  services
  • 55. Other resources • Wrap-up from PaaS bake-off http://appsembler.com/blog/wrap-up-from-paas-bake-off/ • Django deployment using PaaS http://appsembler.com/blog/django-deployment-using-paas/ • django-deployer https://github.com/natea/django-deployer • paasbakeoff - code examples https://github.com/appsembler/paasbakeoff/