SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
Zero Downtime Deployment with Ansible
DevOpsCon Berlin 2016
@steinim
stein.inge.morisbak@BEKK.no
OPEN
Slides
http://steinim.github.io/slides/devopscon/zero-downtime-ansible
Source code
git@github.com:steinim/zero-downtime-ansible.git
Full tutorial
http://steinim.github.io/slides/devopscon/zero-downtime-
ansible/tutorial.html
What's a provisioning framework?
Automated setup of servers
Configuration as code
Not immutable (in itself)
Examples
Create users
Install software
Generate and manipulate config files
Start/stop/restart processes
Set up dependencies between operations
Describe what to do (imperative)
#!/bin/bash
if$(command-vvim>/dev/null2>&1);then
echo"vimisalreadyinstalled."
else
apt-getinstallvim
fi
if$(grep-Fxq"filetypeindentoff"/etc/vim/vimrc);then
echo"setfiletypeindentoffisalreadyin/etc/vim/vimrc."
else
echo"filetypeindentoff">>/etc/vim/vimrc
#TODO:Donotcontinueifthisfails.
fi
#TODO:Rollbackifsomethingfails.
Describe state (declarative)
-name:ensureinstalledvim
apt:pkg=vimstate=installed
-name:setfiletypeindentoffforvim
lineinfile:
dest=/etc/vim/vimrc
line='filetypeindentoff'
state=present
Pros
In source control.
Self documenting (it's code!).
Refactoring.
Less differences between environments.
Deterministic.
Prevents manual steps.
Fast and easy to configure up a new environment.
Easier to test server setup.
Ansible
SSH-based
Client only (no server)
YAML configuration
Push (and pull)
Supports more than setup and provisioning:
Application deployment
Remote command execution
Bring up the boxes
vagrantup
Layout (convention over configuration)
├──ansible.cfg
├──hosts
├──site.yml
├──group_vars
│  └──<groupname>
├──host_vars
│  └──<hostname>
├──roles
│  ├──<role>
│  │  ├──files
│  │   └──<file>
│  │  └──templates
│  │   └──<template>.j2
│  │  ├──handlers
│  │  │  └──main.yml
│  │  ├──tasks
│  │  │  └──main.yml
│  │  ├──vars
│  │  │  └──main.yml
Play!
ansible-playbooksite.yml
Facts
Ansible by default gathers “facts” about the machines under
management.
These facts can be accessed in Playbooks and in templates.
ansible-msetupapp1.local
The task
An app user 'devops', with:
Home directory: /home/devops
ssh-key
A PostgresSQL database.
Nginx as a reverse proxy.
An init script installed as a service.
Deploy an application that uses the provisioned infrastructure.
Help!
http://docs.ansible.com/list_of_all_modules.html
Task1: Install and configure software
Modify roles/common/tasks/apt.yml.
Install Vim.
Insert the line 'filetype indent off' in /etc/vim/vimrc
Help:
http://docs.ansible.com/apt_module.html
http://docs.ansible.com/lineinfile_module.html
Task1: Solution
-name:Ensureinstalledvim
apt:
pkg=vim
state=present
update_cache=no
tags:
-vim
-name:Setfiletypeindentoff
lineinfile:
dest=/etc/vim/vimrc
line='filetypeindentoff'
state=present
tags:
-vim
Run it!
ansible-playbooksite.yml--tagsvim
ProTip:Use'--tags','--skip-tags','--limit' and/or'gather_facts:False'
toreduceexecutiontime.
Progress
Installed software
Manipulated files
Variables
Use variables! → Infrastructure as data.
Where should variables be defined? Ansible has very many options.
Inventory (./hosts)
group_vars and host_vars
Playbook (site.yml)
Facts (local or server)
Command line (as arguments)
Access variables from playbooks: "{{ variable }}"
http://docs.ansible.com/playbooks_variables.html
Task2: Create an application user
Create roles/users/tasks/main.yml
Home directory: /home/devops
ssh-key
Use variables! (group_vars)
Help:
(createadirectory)
(.ssh/authorized_keys)
http://docs.ansible.com/group_module.html
http://docs.ansible.com/user_module.html
http://docs.ansible.com/file_module.html
http://docs.ansible.com/lineinfile_module.html
http://docs.ansible.com/playbooks_best_practices.html#group-and-host-variables
Define some variables
#group_vars/appservers
user:devops
group:devops
user_name:"Devopsappuser"
Task2: Solution
#roles/users/tasks/main.yml
-name:Creategroup
group:name={{group}}state=present
tags:
-users
-name:Createuser
user:
name={{user}}
comment="{{user_name}}"
group={{group}}
createhome=yes
home=/home/{{user}}
shell=/bin/bash
state=present
tags:
-users
-name:Ensuresshdirectoryexistsforuser
Run it!
ansible-playbooksite.yml--limitappservers--skip-tagsapt,vim,java
Try it!
sshdevops@app1.local
Progress
Installed software
Manipulated files
Created a user and set up a ssh-key
Task3: Install and configure PostgreSQL
roles/postgresql
├──files
│  └──postgresql.conf
├──handlers
│  └──main.yml
├──tasks
│  ├──main.yml
│  └──...
└──templates
└──pg_hba.conf.j2
Usevariables(group_vars/dbservers).
Template:roles/postgresql/templates/pg_hba.conf.j2
Usehandlertorestartpostgresqluponnotification
Help:
(pg_hba.conf.j2)http://docs.ansible.com/template_module.html
http://docs.ansible.com/postgresql_user_module.html
http://docs.ansible.com/postgresql_db_module.html
http://docs.ansible.com/playbooks_intro.html#handlers-running-operations-on-change
Define some variables
#group_vars/dbservers
postgresql:
version:9.4
repo:'debhttp://apt.postgresql.org/pub/repos/apt/precise-pgdgmain'
user:postgres
group:postgres
data_dir:/var/lib/pgsql/data
address:192.168.101.0/24
db:
name:devops
user:devops
password:devops123
Create a template
#roles/postgresql/templates/pg_hba.conf.j2
#TYPE DATABASE USER ADDRESS METHOD
local all all trust
host {{db.name}} {{db.user}} {{postgresql.address}} md5
Create a handler
#roles/postgresql/handlers/main.yml
-name:Restartpostgresql
service:name=postgresqlstate=restarted
Task3: Solution
#roles/postgresql/tasks/postgresql.yml
-name:InstallPostgresqlanddependencies
apt:pkg={{item}}state=installedupdate_cache=yes
with_items:
-postgresql-{{postgresql.version}}
-python-psycopg2
tags:
-pg_install
-name:Installpostgresql.conf
copy:src=postgresql.conf
dest=/etc/postgresql/{{postgresql.version}}/main/postgresql.conf
owner={{postgresql.user}}
group={{postgresql.group}}
notify:
-Restartpostgresql
tags:
-pg_install
Run it!
ansible-playbooksite.yml--limitdbservers--tagspg_install
Try it!
$vagrantsshdb
vagrant@db:~$psql-ddevops-Udevops-W
devops=>q
Progress
Installed software
Manipulated files
Created a user and set up a ssh-key
Installed and configured a database and a db user
Task4: Deploy!
roles/app
├──files
│  └──init.sh
├──tasks
│  └──main.yml
└──templates
└──config.properties.j2
NB!Usevariables(./hosts).
Set'serial:1'forappserversintheplaybook(site.yml).
Help:
http://docs.ansible.com/service_module.html
Browse to
Run it!
ansible-playbooksite.yml--limitappservers--tagsdeploy
Try it!
http://app1.local:1234/
What just happened?
/home/devops
├──config.properties
├──current->/home/devops/devops_1416228023.jar
├──previous->/home/devops/devops_1416221573.jar
├──devops_1416221573.jar
├──devops_1416228023.jar
└──logs
├──stderr.log
└──stdout.log
/etc/init.d
└──devops
Progress
Installed software
Manipulated files
Created a user and set up a ssh-key
Installed and configured a database and a db user
Deployed an application to two appservers and enabled it as a
service
Task5: Deploy database
roles/db
├──files
│  └──migrate_db.sql
└──tasks
└──main.yml
Help:
http://docs.ansible.com/command_module.html
Task5: Solution
-name:Copydbmigrationscript
copy:src=migrate_db.sqldest=/tmp/migrate_db.sql
become_user:postgres
tags:
-deploy
-name:Rundbmigrationscript
command:psql-d{{db.name}}-q-f/tmp/migrate_db.sql
become_user:postgres
tags:
-deploy
Browse to
Run it!
ansible-playbooksite.yml--limitdbservers--tagsdeploy
Try it!
$vagrantsshdb
vagrant@db:~$psql-ddevops-Udevops-W
devops=>dt
devops=>select*fromhello;
devops=>q
http://app1.local:1234/
Progress
Installed software
Manipulated files
Created a user and set up a ssh-key
Installed and configured a database and a db user
Deployed an application to two appservers and enabled it as a
service
Migrated the database schema and fetched data from it through the
application
Task6: Set up proxy
roles/nginx
├──handlers
│  └──main.yml
├──tasks
│  ├──config_nginx.yml
│  ├──install_nginx.yml
│  └──main.yml
└──templates
└──devops.conf.j2
Help:
http://wsgiarea.pocoo.org/jinja/docs/loops.html
Task6: Solution
upstreambackend {
{%forappserveringroups.appservers%}
server{{appserver}}:{{app_port}}fail_timeout=1s;
{%endfor%}
}
server{
listen80;
server_name_;
access_log/var/log/nginx/devops-access.log;
location/{
proxy_pass http://backend;
proxy_redirect off;
proxy_next_upstream errortimeoutinvalid_headerhttp_500http_502;
proxy_connect_timeout 2;
}
}
Browse to # refresh me many times
Run it!
ansible-playbooksite.yml--limitproxies--tagsnginx
Try it!
http://proxy.local/
Progress
Installed software
Manipulated files
Created a user and set up a ssh-key
Installed and configured a database and a db user
Deployed an application to two appservers and enabled it as a
service
Migrated the database schema and fetched data from it through the
application
Set up a reverse proxy for automatic failover between the two
appservers
The Expand/Contract pattern
Expand Contract
Add tables
Add columns
Tweak indexes
Remove tables
Remove columns
Remove/add constraints
Play time :-)
Suggestions:
Change database table name from HELLO to MESSAGES and
deploy a new version without downtime.
Implement automated rollback.
September 5th and 6th 2016
Thank you!
@steinim
stein.inge.morisbak@BEKK.no

Más contenido relacionado

La actualidad más candente

Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Julian Dunn
 
DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!Jeff Geerling
 
Python virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesLarry Cai
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Making environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeMaking environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeSoshi Nemoto
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)Soshi Nemoto
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile InfrastructuresAntons Kranga
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Puppet
 
Django deployment best practices
Django deployment best practicesDjango deployment best practices
Django deployment best practicesErik LaBianca
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Ontico
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Puppet
 
Continuous infrastructure testing
Continuous infrastructure testingContinuous infrastructure testing
Continuous infrastructure testingDaniel Paulus
 
Take control of your Jenkins jobs via job DSL.
Take control of your Jenkins jobs via job DSL.Take control of your Jenkins jobs via job DSL.
Take control of your Jenkins jobs via job DSL.Łukasz Proszek
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)Soshi Nemoto
 
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test EverythingPortland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test EverythingPuppet
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetMichael Lessard
 

La actualidad más candente (20)

Ansible best practices
Ansible best practicesAnsible best practices
Ansible best practices
 
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.Orchestration? You Don't Need Orchestration. What You Want is Choreography.
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
 
Front-end tools
Front-end toolsFront-end tools
Front-end tools
 
DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!DevOps for Humans - Ansible for Drupal Deployment Victory!
DevOps for Humans - Ansible for Drupal Deployment Victory!
 
Python virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutes
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Making environment for_infrastructure_as_code
Making environment for_infrastructure_as_codeMaking environment for_infrastructure_as_code
Making environment for_infrastructure_as_code
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Django deployment best practices
Django deployment best practicesDjango deployment best practices
Django deployment best practices
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Continuous infrastructure testing
Continuous infrastructure testingContinuous infrastructure testing
Continuous infrastructure testing
 
Take control of your Jenkins jobs via job DSL.
Take control of your Jenkins jobs via job DSL.Take control of your Jenkins jobs via job DSL.
Take control of your Jenkins jobs via job DSL.
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test EverythingPortland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 

Destacado

Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Alex S
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deploymentKarthik .P.R
 
Configuration management and deployment with ansible
Configuration management and deployment with ansibleConfiguration management and deployment with ansible
Configuration management and deployment with ansibleIvan Dimitrov
 
Talk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeTalk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeSATOSHI TAGOMORI
 
Automating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageAutomating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageVishal Uderani
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deploymentRemote MySQL DBA
 
Introduction to Automated Deployments with Ansible
Introduction to Automated Deployments with AnsibleIntroduction to Automated Deployments with Ansible
Introduction to Automated Deployments with AnsibleMartin Etmajer
 
Ansible Oxford - Cows & Containers
Ansible Oxford - Cows & ContainersAnsible Oxford - Cows & Containers
Ansible Oxford - Cows & Containersjonatanblue
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with AnsibleMartin Etmajer
 
Breakfast in Luarca
 Breakfast in Luarca  Breakfast in Luarca
Breakfast in Luarca gonzanafer
 
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...Michael Levine-Clark
 
Ning presentation 10 13-10
Ning presentation 10 13-10Ning presentation 10 13-10
Ning presentation 10 13-10mtmathieu
 
Pioneers of stop motion (done)
Pioneers of stop motion (done)Pioneers of stop motion (done)
Pioneers of stop motion (done)ecsmedia
 
Eurosocialnetwork THE PROJECT
Eurosocialnetwork THE PROJECTEurosocialnetwork THE PROJECT
Eurosocialnetwork THE PROJECTIrecoop Toscana
 
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...Michael Levine-Clark
 

Destacado (20)

Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deployment
 
Monitoring @haptik
Monitoring @haptikMonitoring @haptik
Monitoring @haptik
 
Configuration management and deployment with ansible
Configuration management and deployment with ansibleConfiguration management and deployment with ansible
Configuration management and deployment with ansible
 
Talk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as CodeTalk about Ansible and Infrastructure as Code
Talk about Ansible and Infrastructure as Code
 
Automating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngageAutomating aws infrastructure and code deployments using Ansible @WebEngage
Automating aws infrastructure and code deployments using Ansible @WebEngage
 
Ansible for large scale deployment
Ansible for large scale deploymentAnsible for large scale deployment
Ansible for large scale deployment
 
Introduction to Automated Deployments with Ansible
Introduction to Automated Deployments with AnsibleIntroduction to Automated Deployments with Ansible
Introduction to Automated Deployments with Ansible
 
Deployment z Ansible
Deployment z AnsibleDeployment z Ansible
Deployment z Ansible
 
Ansible Oxford - Cows & Containers
Ansible Oxford - Cows & ContainersAnsible Oxford - Cows & Containers
Ansible Oxford - Cows & Containers
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
Breakfast in Luarca
 Breakfast in Luarca  Breakfast in Luarca
Breakfast in Luarca
 
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...
Niso ddLevine-Clark, Michael, “New forms of Discovery and Purchase in Librari...
 
Ning presentation 10 13-10
Ning presentation 10 13-10Ning presentation 10 13-10
Ning presentation 10 13-10
 
Pioneers of stop motion (done)
Pioneers of stop motion (done)Pioneers of stop motion (done)
Pioneers of stop motion (done)
 
Eurosocialnetwork THE PROJECT
Eurosocialnetwork THE PROJECTEurosocialnetwork THE PROJECT
Eurosocialnetwork THE PROJECT
 
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...
Levine-Clark, Michael, “Measuring Discovery: The Impact of Discovery Systems ...
 
Eurosocialnetwork bg
Eurosocialnetwork bgEurosocialnetwork bg
Eurosocialnetwork bg
 

Similar a Zero Downtime Deployment with Ansible

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 waySylvain Rayé
 
Infrastructure = code - 1 year later
Infrastructure = code - 1 year laterInfrastructure = code - 1 year later
Infrastructure = code - 1 year laterChristian Ortner
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOpsОмские ИТ-субботники
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidenceJohn Congdon
 
Node.js basics
Node.js basicsNode.js basics
Node.js basicsBen Lin
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
How to install and configure LEMP stack
How to install and configure LEMP stackHow to install and configure LEMP stack
How to install and configure LEMP stackRootGate
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabSoftware Guru
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby TeamArto Artnik
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to AnsibleCédric Delgehier
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slidesharetomcopeland
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingHenry Schreiner
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)Future Insights
 
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 2014biicode
 

Similar a Zero Downtime Deployment with Ansible (20)

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
 
Infrastructure = code - 1 year later
Infrastructure = code - 1 year laterInfrastructure = code - 1 year later
Infrastructure = code - 1 year later
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
 
Node.js basics
Node.js basicsNode.js basics
Node.js basics
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
How to install and configure LEMP stack
How to install and configure LEMP stackHow to install and configure LEMP stack
How to install and configure LEMP stack
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con Gitlab
 
Toolbox of a Ruby Team
Toolbox of a Ruby TeamToolbox of a Ruby Team
Toolbox of a Ruby Team
 
Nodejs in Production
Nodejs in ProductionNodejs in Production
Nodejs in Production
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
 
Angular2 ecosystem
Angular2 ecosystemAngular2 ecosystem
Angular2 ecosystem
 
Intro django
Intro djangoIntro django
Intro django
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)
 
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
 

Más de Stein Inge Morisbak

Orkestrering av IT-utvikling i Store Organisasjoner
Orkestrering av IT-utvikling i Store OrganisasjonerOrkestrering av IT-utvikling i Store Organisasjoner
Orkestrering av IT-utvikling i Store OrganisasjonerStein Inge Morisbak
 
Verdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranserVerdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranserStein Inge Morisbak
 
Du kan ikke levere kontinuerlig om du har nedetid
Du kan ikke levere kontinuerlig om du har nedetidDu kan ikke levere kontinuerlig om du har nedetid
Du kan ikke levere kontinuerlig om du har nedetidStein Inge Morisbak
 
Er du moden for å levere kontinuerlig?
Er du moden for å levere kontinuerlig?Er du moden for å levere kontinuerlig?
Er du moden for å levere kontinuerlig?Stein Inge Morisbak
 
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!Hvis du ikke leverer kontinuerlig, så er du ikke smidig!
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!Stein Inge Morisbak
 

Más de Stein Inge Morisbak (10)

Orkestrering av IT-utvikling i Store Organisasjoner
Orkestrering av IT-utvikling i Store OrganisasjonerOrkestrering av IT-utvikling i Store Organisasjoner
Orkestrering av IT-utvikling i Store Organisasjoner
 
Slutt med IT-prosjekter!
Slutt med IT-prosjekter!Slutt med IT-prosjekter!
Slutt med IT-prosjekter!
 
Devops or die!
Devops or die!Devops or die!
Devops or die!
 
Devops eller dø!
Devops eller dø!Devops eller dø!
Devops eller dø!
 
Verdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranserVerdien av kontinuerlige leveranser
Verdien av kontinuerlige leveranser
 
Du kan ikke levere kontinuerlig om du har nedetid
Du kan ikke levere kontinuerlig om du har nedetidDu kan ikke levere kontinuerlig om du har nedetid
Du kan ikke levere kontinuerlig om du har nedetid
 
Er du moden for å levere kontinuerlig?
Er du moden for å levere kontinuerlig?Er du moden for å levere kontinuerlig?
Er du moden for å levere kontinuerlig?
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!Hvis du ikke leverer kontinuerlig, så er du ikke smidig!
Hvis du ikke leverer kontinuerlig, så er du ikke smidig!
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

Último

Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrsaastr
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 

Último (20)

Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 

Zero Downtime Deployment with Ansible