Soumettre la recherche
Mettre en ligne
Repeatable Deployments and Installations
•
25 j'aime
•
2,833 vues
Idan Gazit
Suivre
Using virtualenv, pip, and fabric
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 56
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Amazon Ec2
Amazon Ec2
snusmumrik
Cocoapods
Cocoapods
Robert Gogolok
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Puppet
Docker puppetcamp london 2013
Docker puppetcamp london 2013
Tomas Doran
Openstack Vagrant plugin overview
Openstack Vagrant plugin overview
Marton Kiss
Master the New Core of Drupal 8 Now: with Symfony and Silex
Master the New Core of Drupal 8 Now: with Symfony and Silex
Ryan Weaver
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
Pei-Tang Huang
Docker @ Data Science Meetup
Docker @ Data Science Meetup
Daniel Nüst
Recommandé
Amazon Ec2
Amazon Ec2
snusmumrik
Cocoapods
Cocoapods
Robert Gogolok
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Puppet
Docker puppetcamp london 2013
Docker puppetcamp london 2013
Tomas Doran
Openstack Vagrant plugin overview
Openstack Vagrant plugin overview
Marton Kiss
Master the New Core of Drupal 8 Now: with Symfony and Silex
Master the New Core of Drupal 8 Now: with Symfony and Silex
Ryan Weaver
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
Pei-Tang Huang
Docker @ Data Science Meetup
Docker @ Data Science Meetup
Daniel Nüst
Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013
Puppet
Docker for data science
Docker for data science
Calvin Giles
IOS 11 setup with appium latest
IOS 11 setup with appium latest
Harikrishna Recharla
Docker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
Martin Scharm
Cloud focker を試してみた public
Cloud focker を試してみた public
Takehiko Amano
Deploying Rails applications with Moonshine
Deploying Rails applications with Moonshine
Robot Mode
Appsec rump reverse-i_os_machook
Appsec rump reverse-i_os_machook
Cyber Security Alliance
PagerDuty | OSCON 2016 Failure Testing
PagerDuty | OSCON 2016 Failure Testing
PagerDuty
The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)
Olaf Alders
Mangling
Mangling
Olaf Alders
Deploying phalcon on heroku
Deploying phalcon on heroku
Tung Ns
Building aosp
Building aosp
gvercoutere
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Ryan Weaver
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
SQALab
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)
Ryan Weaver
Swing when you're winning - an introduction to Ruby and Sinatra
Swing when you're winning - an introduction to Ruby and Sinatra
Matt Gifford
Using python and docker for data science
Using python and docker for data science
Calvin Giles
No Hugging, No Learning
No Hugging, No Learning
Olaf Alders
Using docker for data science - part 2
Using docker for data science - part 2
Calvin Giles
The Symfony CLI
The Symfony CLI
Sarah El-Atm
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
VMware Tanzu
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
Soshi Nemoto
Contenu connexe
Tendances
Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013
Puppet
Docker for data science
Docker for data science
Calvin Giles
IOS 11 setup with appium latest
IOS 11 setup with appium latest
Harikrishna Recharla
Docker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
Martin Scharm
Cloud focker を試してみた public
Cloud focker を試してみた public
Takehiko Amano
Deploying Rails applications with Moonshine
Deploying Rails applications with Moonshine
Robot Mode
Appsec rump reverse-i_os_machook
Appsec rump reverse-i_os_machook
Cyber Security Alliance
PagerDuty | OSCON 2016 Failure Testing
PagerDuty | OSCON 2016 Failure Testing
PagerDuty
The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)
Olaf Alders
Mangling
Mangling
Olaf Alders
Deploying phalcon on heroku
Deploying phalcon on heroku
Tung Ns
Building aosp
Building aosp
gvercoutere
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Ryan Weaver
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
SQALab
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)
Ryan Weaver
Swing when you're winning - an introduction to Ruby and Sinatra
Swing when you're winning - an introduction to Ruby and Sinatra
Matt Gifford
Using python and docker for data science
Using python and docker for data science
Calvin Giles
No Hugging, No Learning
No Hugging, No Learning
Olaf Alders
Using docker for data science - part 2
Using docker for data science - part 2
Calvin Giles
The Symfony CLI
The Symfony CLI
Sarah El-Atm
Tendances
(20)
Puppet without Root - PuppetConf 2013
Puppet without Root - PuppetConf 2013
Docker for data science
Docker for data science
IOS 11 setup with appium latest
IOS 11 setup with appium latest
Docker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
Cloud focker を試してみた public
Cloud focker を試してみた public
Deploying Rails applications with Moonshine
Deploying Rails applications with Moonshine
Appsec rump reverse-i_os_machook
Appsec rump reverse-i_os_machook
PagerDuty | OSCON 2016 Failure Testing
PagerDuty | OSCON 2016 Failure Testing
The MetaCPAN VM Part II (Using the VM)
The MetaCPAN VM Part II (Using the VM)
Mangling
Mangling
Deploying phalcon on heroku
Deploying phalcon on heroku
Building aosp
Building aosp
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
Symfony: Your Next Microframework (SymfonyCon 2015)
Symfony: Your Next Microframework (SymfonyCon 2015)
Swing when you're winning - an introduction to Ruby and Sinatra
Swing when you're winning - an introduction to Ruby and Sinatra
Using python and docker for data science
Using python and docker for data science
No Hugging, No Learning
No Hugging, No Learning
Using docker for data science - part 2
Using docker for data science - part 2
The Symfony CLI
The Symfony CLI
Similaire à Repeatable Deployments and Installations
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
VMware Tanzu
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
Soshi Nemoto
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Pablo Godel
Flask
Flask
Fadwa Gmiden
Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CI
Bruno Rocha
Dev to Delivery with Puppet - PuppetConf 2014
Dev to Delivery with Puppet - PuppetConf 2014
Puppet
Fabric for fun_and_profit
Fabric for fun_and_profit
Javier Jair Trejo García
Mcollective introduction
Mcollective introduction
Javier Turégano Molina
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
Quinlan Jung
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Ted Won
Virtualenv
Virtualenv
Jon Nials
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
Outlyer
Composer for busy developers - DPC13
Composer for busy developers - DPC13
Rafael Dohms
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
Markus Zapke-Gründemann
PHP-VCR behat case study
PHP-VCR behat case study
Pascal Thormeier
Yeoman Workflow
Yeoman Workflow
John-Philip Johansson
Vagrant
Vagrant
Nathan Howard
Continous Delivering a PHP application
Continous Delivering a PHP application
Javier López
Writing your Third Plugin
Writing your Third Plugin
Justin Ryan
Virtualenv
Virtualenv
WEBdeBS
Similaire à Repeatable Deployments and Installations
(20)
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Flask
Flask
Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CI
Dev to Delivery with Puppet - PuppetConf 2014
Dev to Delivery with Puppet - PuppetConf 2014
Fabric for fun_and_profit
Fabric for fun_and_profit
Mcollective introduction
Mcollective introduction
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Virtualenv
Virtualenv
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
Composer for busy developers - DPC13
Composer for busy developers - DPC13
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
PHP-VCR behat case study
PHP-VCR behat case study
Yeoman Workflow
Yeoman Workflow
Vagrant
Vagrant
Continous Delivering a PHP application
Continous Delivering a PHP application
Writing your Third Plugin
Writing your Third Plugin
Virtualenv
Virtualenv
Plus de Idan Gazit
Datadesignmeaning
Datadesignmeaning
Idan Gazit
Designers Make It Go to Eleven!
Designers Make It Go to Eleven!
Idan Gazit
Web typography
Web typography
Idan Gazit
CSS Extenders
CSS Extenders
Idan Gazit
CSS for Designers
CSS for Designers
Idan Gazit
CSS for Designers
CSS for Designers
Idan Gazit
CSS: selectors and the box model
CSS: selectors and the box model
Idan Gazit
CSS: selectors and the box model
CSS: selectors and the box model
Idan Gazit
Why Django
Why Django
Idan Gazit
An Introduction to Celery
An Introduction to Celery
Idan Gazit
Django 1.1 Tour
Django 1.1 Tour
Idan Gazit
Plus de Idan Gazit
(11)
Datadesignmeaning
Datadesignmeaning
Designers Make It Go to Eleven!
Designers Make It Go to Eleven!
Web typography
Web typography
CSS Extenders
CSS Extenders
CSS for Designers
CSS for Designers
CSS for Designers
CSS for Designers
CSS: selectors and the box model
CSS: selectors and the box model
CSS: selectors and the box model
CSS: selectors and the box model
Why Django
Why Django
An Introduction to Celery
An Introduction to Celery
Django 1.1 Tour
Django 1.1 Tour
Dernier
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Zilliz
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
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
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Jago de Vreede
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Remote DBA Services
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
apidays
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
Dernier
(20)
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
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, ...
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Repeatable Deployments and Installations
1.
repeatable INSTALLS and
DEPLOYMENTS PIP, VIRTUALENV and FABRIC IDAN GAZIT PyWeb-IL 10, Nov 30th 2009
2.
SO YOU HAVE
A PROJECT HOORAY.
3.
NOW YOU HAVE
A NEW DEVELOPER NEW SERVER NEW VERSION
4.
NOW YOU HAVE
A HUNDRED NEW DEVELOPERS NEW SERVERS NEW VERSIONS
5.
MAKING SHIT OVERHEAD
6.
http://www.flickr.com/photos/derpunk/3875534682
7.
THE OVERHEAD WILL
KILL YOU KILL IT FIRST
8.
ONE CLICK ANY MORE
AND YOU'RE F*CKED
9.
ELIMINATE OVERHEAD
THESE TOOLS WILL HELP
10.
ISOLATION PROTECT
YOUR APP FROM OTHER APPS REPEATABILITY PULL TOGETHER ALL THE PARTS OF YOUR APP SCALABILITY O(1) DEPLOYMENTS
11.
VIRTUALENV by IAN
BICKING
12.
http://www.flickr.com/photos/fensterbme/145621388
13.
LIKE GOGGLES FOR
YOUR PYTHON NOT REALLY.
14.
ISOLATED PYTHON ENVIRONMENTS
"PRIVATE" SITE-PACKAGES
15.
APP X
APP Y FOO 0.8 BLAH 2.2 BAR 1.23 BAR 1.23 BAZ 6.0c9 BLING 9.1b2
16.
APP X
APP Y FOO 0.8 BLAH 2.2 BAR 1.23 BAR 1.24 BAZ 6.0c9 BLING 9.1b2
17.
GLOBAL SITE-PACKAGES
LIKE A VIRGIN
18.
$ python virtualenv.py
ENV CREATE THE VIRTUALENV
19.
--no-site-packages
COMPLETE ISOLATION
20.
ME, PERSONALLY? A FEW
GLOBAL PACKAGES (IPYTHON, IPDB)
21.
$ source ENV/bin/activate
TO ENTER THE MATRIX
22.
(ENV)$ easy_install kungfu
WOAH.
23.
(ENV)$ python theone.py
I CAN DODGE BULLETS
24.
(ENV)$ deactivate OPERATOR,
I NEED AN EXIT!
25.
MORE USE CASES DIFFERENT
VERSIONS OF THE SAME APP
26.
DEPLOYING? SETUP THE SAME
VIRTUALENV
27.
WEB APPS IT'S JUST
PYTHONPATH
28.
INDEPENDENT VIRTUALENV
YOU GOTTA KEEP'EM SEPARATED
29.
http://www.flickr.com/photos/wendycopley/3025707754
30.
VIRTUALENVWRAPPER
by DOUG HELLMANN
31.
$ mkvirtualenv ENV $
workon ENV
32.
PIP also by IAN
BICKING
33.
PIP INSTALLS PACKAGES
GOODBYE, EASY_INSTALL
34.
SMARTER
NO PARTIAL INSTALLS NON-SUCKY CONSOLE OUTPUT INSTALL FROM VCS REQUIREMENTS FILES UNINSTALL
35.
$(ENV) pip install
-E ENV mypackage PIP is VIRTUALENV-AWARE
36.
$(ENV) pip freeze
-E ENV > reqs.txt BOOM. I HAZ REQUIREMENTZ FILE.
37.
$(ENV) pip install
-E ENV -r reqs.txt SIT BACK AND RELAX
38.
REQUIREMENTS FILE
FRAMEWORK==0.2 LIBRARY>=1.3 -e svn+http://myrepo/svn/MyApp#egg=MyApp
39.
SUPPORTED VCS's
SUBVERSION GIT MERCURIAL BAZAAR
40.
FRESH DEPLOY
1. PULL FROM VCS 2. CREATE VENV 3. PIP INSTALL FROM REQUIREMENTS FILE 4. THERE IS NO STEP FOUR
41.
ROCKSTAR.
http://www.flickr.com/photos/an-di/274127482
42.
NOT SO FAST 4
STEPS IS 3 STEPS TOO MANY
43.
FABRIC maintained by JEFF
FORCIER
44.
AUTOMATE REMOTE COMMANDS OVER
SSH (LOCAL COMMANDS TOO)
45.
IT'S KIND OF
LIKE ‘MAKE' EXCEPT PYTHONIC AND DELICIOUS
46.
FABFILE.PY
47.
FABFILE.PY from __future__ import
with_statement from fabric.api import * env.hosts = ['server1.foo.com', 'server2.foo.com'] def test(): with settings(warn_only=True): result = local('./manage.py test my_app', capture=False) if result.failed: abort("Aborting at user request.") def pack(): local('tar czf /tmp/my_project.tgz .', capture=False) def prepare(): test() pack() def deploy(): put('/tmp/my_project.tgz', '/tmp/') with cd('/srv/django/my_project/'): run('tar xzf /tmp/my_project.tgz') run('touch app.wsgi')
48.
$ fab prepare RUNS
test() AND pack()
49.
$ fab prepare
deploy ONE STEP NIRVANA.
50.
FABFILE.PY from __future__ import
with_statement from fabric.api import * def staging(): env.hosts = ['staging.foo.com'] def production(): env.hosts = ['prod1.foo.com', 'prod2.foo.com'] # ... more fab actions ... def deploy(): put('/tmp/my_project.tgz', '/tmp/') with cd('/srv/django/my_project/'): run('tar xzf /tmp/my_project.tgz') run('touch app.wsgi')
51.
$ fab staging
deploy DEPLOY TO STAGING IN ONE LINE
52.
FABRIC BUILTINS
LOCAL RUN SUDO GET/PUT PROMPT
53.
VIRTUALENV
TO ISOLATE YOUR PROJECT PIP REPEATABLE DEPENDENCY INSTALLS FABRIC FOR AUTOMATED DEPLOYMENTS
54.
VIRTUALENV http://pypi.python.org/pypi/virtualenv
PIP http://pip.openplans.org/ FABRIC http://docs.fabfile.org/
55.
QUESTIONS?
56.
THANK YOU!
@IDANGAZIT IDAN@PIXANE.COM http://bit.ly/repeatable-deployments
Télécharger maintenant