SlideShare a Scribd company logo
1 of 30
Prodution Architecture and Deployment with Fabric - Andy McCurdy - @andymccurdy
Whiskey Media
Whiskey Sites
Your First Django App
Basic Config (web) ,[object Object]
mod_wsgi
use daemon mode
threads more efficient
processes if you're unsure of thread safetyWSGIDaemonProcess my-site python-path=/home/code/                   processes=2 threads=150 maximum-requests=5000 WSGIProcessGroup my-site WSGIScriptAlias / /home/code/my-site/deploy/wsgi/my-site.wsgi
Basic Config (media) ,[object Object]
Use Nginx to proxy traffic to Apache
Meanwhile Nginx serves mediaupstream my-site {     server 127.0.0.1:8000; } server {     listen 80;     location ~ ^/media/ {         root /home/code/my-site;         expires 30d;     }     location / {         proxy_pass http://my-site;         proxy_set_header X-Real-IP $remote_addr;     } }
Basic Config (db) ,[object Object]
PostgreSQL
Frank Wiles @ www.revsys.com
MySQL
Percona @ www.mysqlperformanceblog.com,[object Object]
It's incredibly easy...# settings.py MIDDLEWARE_CLASSES = (     'django.middleware.cache.UpdateCacheMiddleware',     'django.middleware.common.CommonMiddleware',     'django.middleware.cache.FetchFromCacheMiddleware') CACHE_BACKEND = 'memcached://127.0.0.1:11211/' CACHE_MIDDLEWARE_SECONDS = 60*5                   # 5 minutes CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True
Basic Deployment ,[object Object]
Run DB migrations / syncdb
Bounce wsgi daemons,[object Object]
As much RAM as possible
Write-heavy (>10%)? Get fast disks
Tune your config file,[object Object]
Use a resource monitoring tool like Munin to understand if your app is CPU or memory bound,[object Object]
Multiple load balancers for redundancy
Message queues
Crons
Search daemons (Solr, Sphinx)
etc...,[object Object]

More Related Content

What's hot

Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2
IMC Institute
 

What's hot (20)

StackiFest16: Stacki 1600+ Server Journey - Dave Peterson, Salesforce
StackiFest16: Stacki 1600+ Server Journey - Dave Peterson, Salesforce StackiFest16: Stacki 1600+ Server Journey - Dave Peterson, Salesforce
StackiFest16: Stacki 1600+ Server Journey - Dave Peterson, Salesforce
 
Ansible - Crash course
Ansible - Crash courseAnsible - Crash course
Ansible - Crash course
 
Ansible best practices
Ansible best practicesAnsible best practices
Ansible best practices
 
Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Ansible leveraging 2.0
Ansible leveraging 2.0Ansible leveraging 2.0
Ansible leveraging 2.0
 
WordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry PiWordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry Pi
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
Hadoop on ec2
Hadoop on ec2Hadoop on ec2
Hadoop on ec2
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Creating and Deploying Static Sites with Hugo
Creating and Deploying Static Sites with HugoCreating and Deploying Static Sites with Hugo
Creating and Deploying Static Sites with Hugo
 
Foreman - Advanced use cases - Timo Goebel
Foreman - Advanced use cases - Timo GoebelForeman - Advanced use cases - Timo Goebel
Foreman - Advanced use cases - Timo Goebel
 
Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2
 
StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra StackiFest 16: Stacki Overview- Anoop Rajendra
StackiFest 16: Stacki Overview- Anoop Rajendra
 
DATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backupDATABASE AUTOMATION with Thousands of database, monitoring and backup
DATABASE AUTOMATION with Thousands of database, monitoring and backup
 
Configuration Management in Ansible
Configuration Management in Ansible Configuration Management in Ansible
Configuration Management in Ansible
 
A quick intro to Ansible
A quick intro to AnsibleA quick intro to Ansible
A quick intro to Ansible
 
StackiFest16: What's Next in Stacki - Mason Katz
StackiFest16: What's Next in Stacki - Mason Katz StackiFest16: What's Next in Stacki - Mason Katz
StackiFest16: What's Next in Stacki - Mason Katz
 
Usecase examples of Packer
Usecase examples of Packer Usecase examples of Packer
Usecase examples of Packer
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of Ansible
 

Viewers also liked

Final 97 SEM 2009 NCMPR District 1 Presentation November 2
Final 97 SEM 2009 NCMPR District 1 Presentation   November 2Final 97 SEM 2009 NCMPR District 1 Presentation   November 2
Final 97 SEM 2009 NCMPR District 1 Presentation November 2
Steve Bacher
 
MOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 FinalMOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 Final
Shadeed Eleazer
 

Viewers also liked (20)

MOSS 2007 / WSS 3.0 Certification Discussion
MOSS 2007 / WSS 3.0 Certification DiscussionMOSS 2007 / WSS 3.0 Certification Discussion
MOSS 2007 / WSS 3.0 Certification Discussion
 
5 Things Great Workers Do...And 1 Intention
5 Things Great Workers Do...And 1 Intention5 Things Great Workers Do...And 1 Intention
5 Things Great Workers Do...And 1 Intention
 
Final 97 SEM 2009 NCMPR District 1 Presentation November 2
Final 97 SEM 2009 NCMPR District 1 Presentation   November 2Final 97 SEM 2009 NCMPR District 1 Presentation   November 2
Final 97 SEM 2009 NCMPR District 1 Presentation November 2
 
MOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 FinalMOSS Content Deployment 12.18.2008 Final
MOSS Content Deployment 12.18.2008 Final
 
Emma Burlow, QSA Partners, Go Green December Business Breakfast, St Mary Redc...
Emma Burlow, QSA Partners, Go Green December Business Breakfast, St Mary Redc...Emma Burlow, QSA Partners, Go Green December Business Breakfast, St Mary Redc...
Emma Burlow, QSA Partners, Go Green December Business Breakfast, St Mary Redc...
 
8 b las telecomunicaciones sara giraldo
8 b las telecomunicaciones sara giraldo8 b las telecomunicaciones sara giraldo
8 b las telecomunicaciones sara giraldo
 
Never Be Late Again!
Never Be Late Again!Never Be Late Again!
Never Be Late Again!
 
Accelerated Startup @ TechCode
Accelerated Startup @ TechCodeAccelerated Startup @ TechCode
Accelerated Startup @ TechCode
 
Epivolve Manual
Epivolve ManualEpivolve Manual
Epivolve Manual
 
Creating Culture of Change for Retail Sustainability (Passion For Retail 09)
Creating Culture of Change for Retail Sustainability (Passion For Retail 09)Creating Culture of Change for Retail Sustainability (Passion For Retail 09)
Creating Culture of Change for Retail Sustainability (Passion For Retail 09)
 
How much is your feed system costing you?
How much is your feed system costing you?How much is your feed system costing you?
How much is your feed system costing you?
 
Wei-Ting Ko portfolio
Wei-Ting Ko portfolioWei-Ting Ko portfolio
Wei-Ting Ko portfolio
 
K453 (1)
K453 (1)K453 (1)
K453 (1)
 
Linked in ads made easy special free report - How to use Linkedin Adds -Lates...
Linked in ads made easy special free report - How to use Linkedin Adds -Lates...Linked in ads made easy special free report - How to use Linkedin Adds -Lates...
Linked in ads made easy special free report - How to use Linkedin Adds -Lates...
 
Death by Bad Design
Death by Bad DesignDeath by Bad Design
Death by Bad Design
 
Setembro jardim
Setembro jardimSetembro jardim
Setembro jardim
 
Туристическая карта Санкт-Петербурга
Туристическая карта Санкт-ПетербургаТуристическая карта Санкт-Петербурга
Туристическая карта Санкт-Петербурга
 
Buying an On-Demand Geofilter on Snapchat
Buying an On-Demand Geofilter on SnapchatBuying an On-Demand Geofilter on Snapchat
Buying an On-Demand Geofilter on Snapchat
 
88th Annual Academy Awards: The Oscars
88th Annual Academy Awards: The Oscars88th Annual Academy Awards: The Oscars
88th Annual Academy Awards: The Oscars
 
Market Reserach Potential for Snapchat
Market Reserach Potential for SnapchatMarket Reserach Potential for Snapchat
Market Reserach Potential for Snapchat
 

Similar to Deployment with Fabric

Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018
Ortus Solutions, Corp
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
tomcopeland
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with Capistrano
Almir Mendes
 

Similar to Deployment with Fabric (20)

Bangpypers april-meetup-2012
Bangpypers april-meetup-2012Bangpypers april-meetup-2012
Bangpypers april-meetup-2012
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and docker
 
Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby Team
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Capistrano Overview
Capistrano OverviewCapistrano Overview
Capistrano Overview
 
Pythonic Deployment with Fabric 0.9
Pythonic Deployment with Fabric 0.9Pythonic Deployment with Fabric 0.9
Pythonic Deployment with Fabric 0.9
 
Deployment Tactics
Deployment TacticsDeployment Tactics
Deployment Tactics
 
Fabric: A Capistrano Alternative
Fabric:  A Capistrano AlternativeFabric:  A Capistrano Alternative
Fabric: A Capistrano Alternative
 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with Capistrano
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Capistrano
CapistranoCapistrano
Capistrano
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Deployment with Fabric

  • 1. Prodution Architecture and Deployment with Fabric - Andy McCurdy - @andymccurdy
  • 5.
  • 9. processes if you're unsure of thread safetyWSGIDaemonProcess my-site python-path=/home/code/ processes=2 threads=150 maximum-requests=5000 WSGIProcessGroup my-site WSGIScriptAlias / /home/code/my-site/deploy/wsgi/my-site.wsgi
  • 10.
  • 11. Use Nginx to proxy traffic to Apache
  • 12. Meanwhile Nginx serves mediaupstream my-site { server 127.0.0.1:8000; } server { listen 80; location ~ ^/media/ { root /home/code/my-site; expires 30d; } location / { proxy_pass http://my-site; proxy_set_header X-Real-IP $remote_addr; } }
  • 13.
  • 15. Frank Wiles @ www.revsys.com
  • 16. MySQL
  • 17.
  • 18. It's incredibly easy...# settings.py MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware') CACHE_BACKEND = 'memcached://127.0.0.1:11211/' CACHE_MIDDLEWARE_SECONDS = 60*5 # 5 minutes CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True
  • 19.
  • 20. Run DB migrations / syncdb
  • 21.
  • 22. As much RAM as possible
  • 24.
  • 25.
  • 26. Multiple load balancers for redundancy
  • 28. Crons
  • 30.
  • 31.
  • 35. Add a new web server to the cluster
  • 36.
  • 37. Deployment Options Fabric + Very simple, tasks are just Python functions + Easy to chain together tasks to create complex scripts out of bite size pieces - No source control integration - No out of box support - Some bugs, although fairly easy to work around, and new maintainer is working on fixes
  • 38.
  • 41. be mindful of tasks that may fail
  • 42. each remote command starts fresh
  • 43.
  • 44. run() - Run a command remotely
  • 45. sudo() - Run a command remotely as another user
  • 46. put() - Copy a file from local to remote
  • 47. get() - Copy a file from remote to local
  • 48.
  • 50. Control access to root user via sudoers
  • 51.
  • 56. Global settings or all Fabric deployments
  • 57.
  • 58. Tasks # fabfile.py def uptime(): run('uptime') $> fab uptime -H 10.1.1.3 [10.1.1.3] run: uptime [10.1.1.3] out: 05:20:39 up 88 days, 12:00, 0 users, load average: 0.03, 0.03, 0.00
  • 59. Mapping Roles to Tasks # fabfile.py @roles('web') def uptime(): run('uptime') $> fab uptime [10.1.1.1] run: uptime [10.1.1.1] out: 05:20:39 up 88 days... [10.1.1.2] run: uptime [10.1.1.2] out: 05:20:39 up 88 days...
  • 60.
  • 61. Can't override decorated tasks at command line as docs suggestdef default_roles(*role_list): def selectively_attach(func): if not env.roles and not env.hosts: return roles(*role_list)(func) else: if env.hosts: func = hosts(*env.hosts)(func) if env.roles: func = roles(*env.roles)(func) return func return selectively_attach
  • 62. All better now #fabfile.py @default_roles('web', 'db') def uptime(): run('uptime') $> fab uptime # runs on all hosts in the 'web' and 'db' roles $> fab uptime --roles lb # runs only on hosts in the 'lb' role
  • 63.
  • 64. Use a context manager when failures are anticipated# fabfile.py from __future__ import with_statement # py2.5 def symlink_me(): with settings(warn_only=True): run('rm /path/to/symlink') run('ln -s /home/andy /path/to/symlink')
  • 65.
  • 66. Great for sys-admin and one-off tasks# fabfile.py @default_roles('all') def invoke(command): "Invoke an arbritrary command" sudo(command) # install new packages on all hosts in one command $> fab invoke:"apt-get install git-core"
  • 67. Real World Tasks $> fab --list Available commands: bounce_wsgi_procs Bounce the WSGI procs by touching the files deploy Full deployment deploy_media Push media to S3 invoke Invoke an arbritrary command migrate Run any migrations via South reload_nginx Update Nginx's running config splash_off Configure Nginx to serve the site splash_on Configure Nginx to serve a downed-site page update_repositories Push code to servers update_dependencies Update dependencies to third party libs
  • 68. Whiskey's Deployment def deploy(splash='no'): "Full deployment" deploy_media() update_cached_repositories() update_dependencies() generate_releases() if splash == 'yes': splash_on() _symlink_code() migrate() bounce_wsgi_procs() if splash == 'yes': splash_off() $> fab deploy:splash=yes