SlideShare a Scribd company logo
By Pablo Godel
@pgodel
Deploying
Photo by @old_sound
Symfony
Catalunya
2016
Deployment
?
Deployment
Deployment
Software deployment is all of the activities that
make a software system available for use.
http://en.wikipedia.org/wiki/Software_deployment
A very important critical part
of the application life-cycle
Deployment
It should not be an
after thought
Deployment
It should be
predictable
Deployment
It is also…
Deployment
It is also BORING
Deployment
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Why is it BORING?
Deployment
It’s repetitive
Deployment
It’s repetitive
Deployment
• Copy files to server(s)
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
• Build assets
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
• Build assets
• Run migrations
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
• Build assets
• Run migrations
• Restart web server(s)
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
• Build assets
• Run migrations
• Restart web server(s)
REPEAT INDEFINITELY
Developers != Musicians
It’s repetitive
Deployment
• Copy files to server(s)
• Setup parameters
• Build assets
• Run migrations
• Restart web server(s)LET’S AUTOMATE
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Automation Benefits
Deployment
Automation Benefits
• Easy launch
Deployment
Automation Benefits
• Easy launch
• Consistent results
Deployment
Automation Benefits
• Easy launch
• Consistent results
• Rollbacks
Deployment
Automation Benefits
• Easy launch
• Consistent results
• Rollbacks
• Scalable & secure
Deployment
Automation Benefits
• Easy launch
• Consistent results
• Rollbacks
• Scalable & secure
• Documented procedure
Deployment
Automation Benefits
• Easy launch
• Consistent results
• Rollbacks
• Scalable & secure
• Documented procedure
• No human intervention
Deployment
Automation Benefits
• Easy launch
• Consistent results
• Rollbacks
• Scalable & secure
• Documented procedure
• No human intervention
Deployment
Automation Benefits
• No human intervention
Deployment
Automation Benefits
• No human intervention
Automation Benefits
• No human intervention
Deployment
Automation Benefits
• No human intervention
Deployment
Automation Benefits
• No human intervention
Deployment
$ sudo rm -rf / var/log/*
Simplest Automation
Deployment
git push origin master github.com
Simplest Automation
Deployment
git push origin master
www.example.com/
hook.php
github.com
Simplest Automation
Deployment
git push origin master
www.example.com/
hook.php
git pull
github.com
<?php
exec(‘/usr/bin/env -i HOME=/var/www git pull’);
echo “All done!”;
hook.php
GitHub hook
Deployment
Simplest Automation
<?php
exec(‘/usr/bin/env -i HOME=/var/www git pull’);
exec(‘/usr/bin/env -i HOME=/var/www composer install’);
exec(‘/usr/bin/env -i HOME=/var/www app/console ca:cl’);
echo “All done!”;
hook.php
Deployment
Simplest Automation
Deployment: Copying files
Avoid insecure &
inconsistent methods
• FTP
• SCP
• rsync
• git pull
Deployment: Copying files
Create consistency
|-- releases
Deployment: Copying files
Create consistency
|-- releases
| `-- 20160712
Deployment: Copying files
Create consistency
|-- releases
| `-- 20160712
| `-- 20160715
Deployment: Copying files
Create consistency
|-- releases
| `-- 20160712
| `-- 20160715
`——current -> 20160715
Deployment: Copying files
Create consistency
|-- releases
| `-- 20160712
| `-- 20160715
| `—current -> 20160715
`-- shared
|-- logs
`-- uploads
Deployment: Copying files
Create consistency
|-- releases
| `-- 20160712
| `-- 20160715
| `—current -> 20160712
`-- shared
|-- logs
`-- uploads
Deploying
Deploying
Not rocket science!
Deploying
http://symfony.com/doc/current/cookbook/deployment/tools.html
Deploying
1) Upload/Install Code
Deploying
1) Upload/Install Code
2) Install dependencies
Deploying
1) Upload/Install Code
2) Install dependencies
3) Run DB migrations
Deploying
1) Upload/Install Code
2) Install dependencies
3) Run DB migrations
4) Install/Build assets
Deploying
1) Upload/Install Code
2) Install dependencies
3) Run DB migrations
4) Install/Build assets
5) Clear/Warm cache
Deploying
1) Upload/Install Code
2) Install dependencies
3) Run DB migrations
4) Install/Build assets
5) Clear/Warm cache
6) Reload Server/Queues/Other
Deploying
$ git clone / git pull / git checkout -b branch tag
Deploying
$ git clone / git pull / git checkout -b branch tag
$ composer.phar install
Deploying
$ git clone / git pull / git checkout -b branch tag
$ composer.phar install
$ app/console doctrine:migration:migrate --no-iteration
Deploying
$ git clone / git pull / git checkout -b branch tag
$ composer.phar install
$ app/console doctrine:migration:migrate --no-iteration
$ app/console assets:install web --symlink
Deploying
$ git clone / git pull / git checkout -b branch tag
$ composer.phar install
$ app/console doctrine:migration:migrate --no-iteration
$ app/console assets:install web --symlink
$ app/console assetic:dump --env=prod
Deploying
$ git clone / git pull / git checkout -b branch tag
$ composer.phar install
$ app/console doctrine:migration:migrate --no-iteration
$ app/console assets:install web --symlink
$ app/console assetic:dump --env=prod
$ app/console cache:clear --env=prod —no-debug
Deployment
Automating the process
Deployment: Automating
Deployment: Automating
http://deployer.org/
Deployment: Automating
http://deployer.org/
Magallanes
Deployment: Automating
Fabric
http://deployer.org/
Magallanes
Deployment: Automating
Fabric
http://deployer.org/
Magallanes
Deployment: Automating
Fabric
http://deployer.org/
Magallanes
Deployment: Automating
Fabric
http://deployer.org/
Magallanes
Deployment: Automating
Deployment: Automating
• Friendly, simple to configure & maintain
Deployment: Automating
• Friendly, simple to configure & maintain
• Flexible and extensible
Deployment: Automating
• Friendly, simple to configure & maintain
• Flexible and extensible
• Agentless
Deployment: Automating
• Friendly, simple to configure & maintain
• Flexible and extensible
• Agentless
• Integration with Cloud and Containers
Deploy apps. Manage systems. Crush complexity.
Ansible helps you build a strong foundation for DevOps.
AUTOMATION FOR EVERYONE
The Basics: inventory
Define hosts in inventory file
[webservers]
foo.example.com
bar.example.com

www[01:50].example.com
[dbservers]
one.example.com
two.example.com
three.example.com
hosts/dev
[webservers]
www.dev.example.com
[dbservers]
db1.dev.example.com
hosts/prod
[webservers]
prod-[1-5].example.com
[dbservers]
db1.example.com
The Basics: inventory
hosts/dev
$ ansible -i hosts/dev webservers -a “uptime”
hosts/prod
$ ansible -i hosts/prod all -a “uptime”
The Basics: inventory
setup.yml
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/https/www.slideshare.net/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache
service: name=httpd state=restarted
The Basics: playbooks
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/https/www.slideshare.net/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache
service: name=httpd state=restarted
setup.yml
The Basics: playbooks
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/https/www.slideshare.net/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache
service: name=httpd state=restarted
setup.yml
The Basics: playbooks
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/https/www.slideshare.net/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache
service: name=httpd state=restarted
setup.yml
The Basics: playbooks
The Basics: playbooks
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/https/www.slideshare.net/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service: name=httpd state=started
handlers:
- name: restart apache
service: name=httpd state=restarted
setup.yml
The Basics: roles
Installing roles from Ansible Galaxy
$ ansible-galaxy install servergrove.symfony2
https://galaxy.ansible.com/
The Basics: roles
deploy.yml
- hosts: webservers
roles:
- {
role: servergrove.symfony2,
symfony2_project_root: /var/www/vhosts/
example.com/,
symfony2_project_name: demo,
symfony2_project_branch: master ,
symfony2_project_release: 1
}
The Basics: execution
Executing a playbook
$ ansible-playbook -i hosts/prod deploy.yml -v
The Basics: execution
Executing a playbook
The Basics: roles
Roles for deploying Symfony
The Basics: roles
• servergrove.symfony2
The Basics: roles
• servergrove.symfony2
• ansistrano
The Basics: roles
• servergrove.symfony2
• ansistrano
• cbrunnkvist.ansistrano-symfony-deploy
Ansistrano
ansistrano.deploy and ansistrano.rollback are Ansible
Galaxy roles to easily manage the deployment process for
scripting applications such as PHP, Python and Ruby.
http://ansistrano.com/
Ansistrano
ansistrano.deploy and ansistrano.rollback are Ansible
Galaxy roles to easily manage the deployment process for
scripting applications such as PHP, Python and Ruby.
http://ansistrano.com/
Ansistrano
ansistrano.deploy and ansistrano.rollback are Ansible
Galaxy roles to easily manage the deployment process for
scripting applications such as PHP, Python and Ruby.
http://ansistrano.com/
Ansistrano
ansistrano.deploy and ansistrano.rollback are Ansible
Galaxy roles to easily manage the deployment process for
scripting applications such as PHP, Python and Ruby.
http://ansistrano.com/
Ansistrano
ansistrano.deploy and ansistrano.rollback are Ansible
Galaxy roles to easily manage the deployment process for
scripting applications such as PHP, Python and Ruby.
$ ansible-galaxy install
carlosbuenosvinos.ansistrano-deploy
carlosbuenosvinos.ansistrano-rollback
Ansistrano: workflow
Ansistrano: variables
Ansistrano: variables
Ansistrano: variables
Ansistrano: variables
Ansistrano: deploy
---
- name: Deploy example app to my-server.com
hosts: all
vars:
ansistrano_deploy_from: "{{ playbook_dir }}/../my-app"
ansistrano_deploy_to: “/var/www/my-app.com”
ansistrano_keep_releases: 3
ansistrano_deploy_via: copy
roles:
- { role: carlosbuenosvinos.ansistrano-deploy }
Ansistrano: deploy
---
- name: Deploy example app to my-server.com
hosts: all
vars:
ansistrano_deploy_from: "{{ playbook_dir }}/../my-app"
ansistrano_deploy_to: “/var/www/my-app.com”
ansistrano_keep_releases: 3
ansistrano_deploy_via: copy
roles:
- { role: carlosbuenosvinos.ansistrano-deploy }
Ansistrano: deploy
---
- name: Deploy example app to my-server.com
hosts: all
vars:
ansistrano_deploy_from: "{{ playbook_dir }}/../my-app"
ansistrano_deploy_to: “/var/www/my-app.com”
ansistrano_keep_releases: 3
ansistrano_deploy_via: copy
roles:
- { role: carlosbuenosvinos.ansistrano-deploy }
Ansistrano: deploy
---
- name: Deploy example app to my-server.com
hosts: all
vars:
ansistrano_deploy_from: "{{ playbook_dir }}/../my-app"
ansistrano_deploy_to: “/var/www/my-app.com”
ansistrano_keep_releases: 3
ansistrano_deploy_via: copy
roles:
- { role: carlosbuenosvinos.ansistrano-deploy }
Ansistrano: deploy
$ ansible-playbook -i hosts deploy.yml
Ansistrano: deploy
$ ansible-playbook -i hosts deploy.yml
-- /var/www/my-app.com
|-- current -> /var/www/my-app.com/releases/20100509145325
|-- releases
| |-- 20100509145325
|-- shared
---
- name: Rollback example app to my-server.com
hosts: all
vars:
ansistrano_deploy_to: “/var/www/my-app.com"
roles:
- { role: carlosbuenosvinos.ansistrano-rollback }
Ansistrano: rollback
rollback.yml
---
- name: Rollback example app to my-server.com
hosts: all
vars:
ansistrano_deploy_to: “/var/www/my-app.com"
roles:
- { role: carlosbuenosvinos.ansistrano-rollback }
Ansistrano: rollback
rollback.yml
Ansistrano: rollback
$ ansible-playbook -i hosts rollback.yml
Ansistrano: hooks
---
- name: hook | Restart php-fpm
service: name=php5-fpm state=restarted
when: symfony_project_env == "prod"
my-after-symlink-tasks.yml
ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/
<your-deployment-config>/my-after-symlink-tasks.yml"
Adding a hook to deploy.ml to restart php-fpm
Ansistrano: hooks
---
- name: hook | Copy local.yml
copy: src=config/local.yml
dest={{ansistrano_release_path.stdout}}/config/local.yml
owner=web group=web mode=0644
my-before-symlink-shared-tasks.yml
ansistrano_before_symlink_shared_tasks_file: "{{ playbook_dir }}/
<your-deployment-config>/my-before-symlink-shared-tasks.yml"
Adding a hook to deploy.ml to copy local.yml
Ansistrano: hooks
---
- name: hook | Render local.yml
template: src=ansible/templates/local.yml.j2
dest={{ansistrano_release_path.stdout}}/config/local.yml
owner=web group=web mode=0644
my-before-symlink-shared-tasks.yml
ansistrano_before_symlink_shared_tasks_file: "{{ playbook_dir }}/
<your-deployment-config>/my-before-symlink-shared-tasks.yml"
Adding a hook to deploy.ml to copy local.yml
ansistrano-symfony-deploy
https://github.com/cbrunnkvist/ansistrano-symfony-deploy
Deploying
ansistrano-symfony-deploy
Deploying
ansistrano-symfony-deploy
symfony_env: prod
symfony_php_path: php # The PHP executable to use for all command line tasks
symfony_run_composer: true
symfony_composer_path: "{{ ansistrano_deploy_to }}/composer.phar"
symfony_composer_options: '--no-dev --optimize-autoloader --no-interaction'
symfony_composer_self_update: true # Always attempt a composer self-update
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
Role variables
ansistrano-symfony-deploy
symfony_env: prod
symfony_php_path: php # The PHP executable to use for all command line tasks
symfony_run_composer: true
symfony_composer_path: "{{ ansistrano_deploy_to }}/composer.phar"
symfony_composer_options: '--no-dev --optimize-autoloader --no-interaction'
symfony_composer_self_update: true # Always attempt a composer self-update
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
Role variables
ansistrano-symfony-deploy
symfony_env: prod
symfony_php_path: php # The PHP executable to use for all command line tasks
symfony_run_composer: true
symfony_composer_path: "{{ ansistrano_deploy_to }}/composer.phar"
symfony_composer_options: '--no-dev --optimize-autoloader --no-interaction'
symfony_composer_self_update: true # Always attempt a composer self-update
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
Role variables
ansistrano-symfony-deploy
symfony_env: prod
symfony_php_path: php # The PHP executable to use for all command line tasks
symfony_run_composer: true
symfony_composer_path: "{{ ansistrano_deploy_to }}/composer.phar"
symfony_composer_options: '--no-dev --optimize-autoloader --no-interaction'
symfony_composer_self_update: true # Always attempt a composer self-update
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
Role variables
ansistrano-symfony-deploy
symfony_env: prod
symfony_php_path: php # The PHP executable to use for all command line tasks
symfony_run_composer: true
symfony_composer_path: "{{ ansistrano_deploy_to }}/composer.phar"
symfony_composer_options: '--no-dev --optimize-autoloader --no-interaction'
symfony_composer_self_update: true # Always attempt a composer self-update
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
Role variables
ansistrano-symfony-deploy
symfony_run_assets_install: true
symfony_assets_options: '--no-interaction'
symfony_run_assetic_dump: true
symfony_assetic_options: '--no-interaction'
symfony_run_cache_clear_and_warmup: true
symfony_cache_options: ''
##########################################################
symfony_run_doctrine_migrations: false
symfony_doctrine_options: '--no-interaction'
Role variables
ansistrano-symfony-deploy
---
- hosts: all
gather_facts: false
vars:
ansistrano_deploy_from: ../my-project-checkout
ansistrano_deploy_to: /home/app-user/my-project-deploy/
ansistrano_before_symlink_tasks_file: "{{playbook_dir}}/config/
app_specific_setup.yml"
roles:
- cbrunnkvist.ansistrano-symfony-deploy
deploy.yml
ansistrano-symfony-deploy
---
- hosts: all
gather_facts: false
vars:
ansistrano_deploy_from: ../my-project-checkout
ansistrano_deploy_to: /home/app-user/my-project-deploy/
ansistrano_before_symlink_tasks_file: "{{playbook_dir}}/config/
app_specific_setup.yml"
roles:
- cbrunnkvist.ansistrano-symfony-deploy
deploy.yml
ansistrano-symfony-deploy
---
- hosts: all
gather_facts: false
vars:
ansistrano_deploy_from: ../my-project-checkout
ansistrano_deploy_to: /home/app-user/my-project-deploy/
ansistrano_before_symlink_tasks_file: "{{playbook_dir}}/config/
app_specific_setup.yml"
roles:
- cbrunnkvist.ansistrano-symfony-deploy
deploy.yml
ansistrano-symfony-deploy
---
- hosts: all
gather_facts: false
vars:
ansistrano_deploy_from: ../my-project-checkout
ansistrano_deploy_to: /home/app-user/my-project-deploy/
ansistrano_before_symlink_tasks_file: "{{playbook_dir}}/config/
app_specific_setup.yml"
roles:
- cbrunnkvist.ansistrano-symfony-deploy
deploy.yml
ansistrano-symfony-deploy
$ ansible-playbook -i hosts deploy.yml
Extras: fpm
Packaging apps with fpm
Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
https://github.com/jordansissel/fpm
$ fpm -s dir -t rpm -n "myapp" -v 1.0 /var/www/myapp
$ fpm -s dir -t deb -a all -n myapp -v 1.0 /etc/apache2/
conf.d/my.conf /var/www/myapp
ExtrasDeploying
Continuous Delivery
Workflow
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Developer
Tests
build artifact
Ansible Production
GitHub
Jenkins QA deploy
Integration 

Tests
Notifications
Extras: workflowDeploying
Thank you!
http://slideshare.net/pgodel
@pgodel
Deploying
Symfony
Catalunya
2016

More Related Content

PDF
The Modern Developer Toolbox
Pablo Godel
 
PDF
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Pablo Godel
 
PDF
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Pablo Godel
 
PPTX
Vagrant to-aws-flow
Kimberly Macias
 
PPTX
DevOps Hackathon - Session 1: Vagrant
Antons Kranga
 
KEY
Vagrant
Michael Peacock
 
PDF
Ansible Crash Course
Peter Sankauskas
 
PDF
Ansible 實戰:top down 觀點
William Yeh
 
The Modern Developer Toolbox
Pablo Godel
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Pablo Godel
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Pablo Godel
 
Vagrant to-aws-flow
Kimberly Macias
 
DevOps Hackathon - Session 1: Vagrant
Antons Kranga
 
Ansible Crash Course
Peter Sankauskas
 
Ansible 實戰:top down 觀點
William Yeh
 

What's hot (20)

PPTX
Ansible for beginners
Kuo-Le Mei
 
PDF
Vagrant for real codemotion (moar tips! ;-))
Michele Orselli
 
PDF
Development with Ansible & VMs
Jeff Schenck
 
PDF
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Puppet
 
KEY
Puppet for dummies - ZendCon 2011 Edition
Joshua Thijssen
 
PDF
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
Pablo Godel
 
PPTX
DevOps hackathon Session 2: Basics of Chef
Antons Kranga
 
PDF
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
PDF
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
PDF
EC2 AMI Factory with Chef, Berkshelf, and Packer
George Miranda
 
PDF
Introduction to Ansible (Pycon7 2016)
Ivan Rossi
 
PDF
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
PDF
DevOps for Humans - Ansible for Drupal Deployment Victory!
Jeff Geerling
 
PDF
A quick intro to Ansible
Dan Vaida
 
ODP
ATDD with Behat and Selenium (LDNSE6)
Shashikant Jagtap
 
PDF
DevOps(3) : Ansible - (MOSG)
Soshi Nemoto
 
PDF
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Puppet
 
PDF
Create Development and Production Environments with Vagrant
Brian Hogan
 
PPT
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
PPTX
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
Ansible for beginners
Kuo-Le Mei
 
Vagrant for real codemotion (moar tips! ;-))
Michele Orselli
 
Development with Ansible & VMs
Jeff Schenck
 
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Puppet
 
Puppet for dummies - ZendCon 2011 Edition
Joshua Thijssen
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
Pablo Godel
 
DevOps hackathon Session 2: Basics of Chef
Antons Kranga
 
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
George Miranda
 
Introduction to Ansible (Pycon7 2016)
Ivan Rossi
 
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
DevOps for Humans - Ansible for Drupal Deployment Victory!
Jeff Geerling
 
A quick intro to Ansible
Dan Vaida
 
ATDD with Behat and Selenium (LDNSE6)
Shashikant Jagtap
 
DevOps(3) : Ansible - (MOSG)
Soshi Nemoto
 
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Puppet
 
Create Development and Production Environments with Vagrant
Brian Hogan
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
Ad

Viewers also liked (20)

PPTX
Deploying Symfony2 app with Ansible
Roman Rodomansky
 
PDF
Maa s360 presentacion_intro_clientes
Catalina Romero
 
PPTX
react-jsonschema-formについて
Masakazu Muraoka
 
PDF
Multi kernelowa aplikacja w oparciu o Symfony 3 i microkernele
Radek Baczynski
 
PDF
From * to Symfony2
Manuel Baldassarri
 
PDF
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Ignacio Martín
 
PDF
SaaS con Symfony2
Matteo Moretti
 
PDF
Scaling symfony apps
Matteo Moretti
 
PDF
Symfony day 2016
Samuele Lilli
 
PDF
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Alexander Lisachenko
 
PDF
Nuvola: a tale of migration to AWS
Matteo Moretti
 
PPTX
Design Thinking at Sparkloft
Matt Alex
 
PPT
Unit 3
Angela Grafton
 
PDF
Implantes Cocleares
Rigoberto José Meléndez Cuauro
 
PPTX
Social Media and Social Networking Town Hall Discussion - William Toll at Pro...
ProductCamp Boston
 
PDF
Reaching Audiences While They Reach You
fuzeconf
 
PDF
More Than Hair, Nails & Makeup
Hannah Slaughter
 
PPTX
Sound waves
Samantha Yang
 
PPTX
SharePoint Saturday Cambridge 2016 Session
Rick Van Rousselt
 
PPT
Reuse, recycle, reduce: exploiting existing metadata at National Library of S...
Gill Hamilton
 
Deploying Symfony2 app with Ansible
Roman Rodomansky
 
Maa s360 presentacion_intro_clientes
Catalina Romero
 
react-jsonschema-formについて
Masakazu Muraoka
 
Multi kernelowa aplikacja w oparciu o Symfony 3 i microkernele
Radek Baczynski
 
From * to Symfony2
Manuel Baldassarri
 
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Ignacio Martín
 
SaaS con Symfony2
Matteo Moretti
 
Scaling symfony apps
Matteo Moretti
 
Symfony day 2016
Samuele Lilli
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Alexander Lisachenko
 
Nuvola: a tale of migration to AWS
Matteo Moretti
 
Design Thinking at Sparkloft
Matt Alex
 
Social Media and Social Networking Town Hall Discussion - William Toll at Pro...
ProductCamp Boston
 
Reaching Audiences While They Reach You
fuzeconf
 
More Than Hair, Nails & Makeup
Hannah Slaughter
 
Sound waves
Samantha Yang
 
SharePoint Saturday Cambridge 2016 Session
Rick Van Rousselt
 
Reuse, recycle, reduce: exploiting existing metadata at National Library of S...
Gill Hamilton
 
Ad

Similar to Deploying Symfony | symfony.cat (20)

PDF
Rock Solid Deployment of Web Applications
Pablo Godel
 
PDF
Evolution of deploy.sh
Leonid Mamchenkov
 
PDF
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
Pablo Godel
 
PDF
Build & deploy PHP application (intro level)
Anton Babenko
 
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
PDF
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot
 
PDF
Deployment Tactics
Ian Barber
 
PDF
Automated Deployment and Configuration Engines. Ansible
Alberto Molina Coballes
 
PDF
Ansible Project Deploy (phpbenelux 2015)
Ramon de la Fuente
 
PDF
Automated deployment
Sardorbek Muminov
 
PDF
High Stakes Continuous Delivery in the Real World #OpenWest
Joshua Warren
 
PDF
Rock-solid Magento Development and Deployment Workflows
AOE
 
PDF
Getting Started with Ansible - Jake.pdf
ssuserd254491
 
PDF
Advanced Topics in Continuous Deployment
Mike Brittain
 
PDF
Deployer - Deployment tool for PHP
hernanibf
 
PPTX
PaaSing Your Code Around
Chris Tankersley
 
PDF
Building and Deploying PHP Applications, PHPTour 2016
Martins Sipenko
 
PPTX
Symfony 2 under control
Max Romanovsky
 
PDF
Ansible project-deploy (NomadPHP lightning talk)
Ramon de la Fuente
 
PDF
Continuous Integration and Deployment Patterns for Magento
AOE
 
Rock Solid Deployment of Web Applications
Pablo Godel
 
Evolution of deploy.sh
Leonid Mamchenkov
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
Pablo Godel
 
Build & deploy PHP application (intro level)
Anton Babenko
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot
 
Deployment Tactics
Ian Barber
 
Automated Deployment and Configuration Engines. Ansible
Alberto Molina Coballes
 
Ansible Project Deploy (phpbenelux 2015)
Ramon de la Fuente
 
Automated deployment
Sardorbek Muminov
 
High Stakes Continuous Delivery in the Real World #OpenWest
Joshua Warren
 
Rock-solid Magento Development and Deployment Workflows
AOE
 
Getting Started with Ansible - Jake.pdf
ssuserd254491
 
Advanced Topics in Continuous Deployment
Mike Brittain
 
Deployer - Deployment tool for PHP
hernanibf
 
PaaSing Your Code Around
Chris Tankersley
 
Building and Deploying PHP Applications, PHPTour 2016
Martins Sipenko
 
Symfony 2 under control
Max Romanovsky
 
Ansible project-deploy (NomadPHP lightning talk)
Ramon de la Fuente
 
Continuous Integration and Deployment Patterns for Magento
AOE
 

More from Pablo Godel (20)

PDF
SymfonyCon Cluj 2017 - Symfony at OpenSky
Pablo Godel
 
PDF
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Pablo Godel
 
PDF
DeSymfony 2017 - Symfony en OpenSky
Pablo Godel
 
PDF
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
Pablo Godel
 
PDF
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
Pablo Godel
 
PDF
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Pablo Godel
 
PDF
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel
 
PDF
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
Pablo Godel
 
PDF
Creating Mobile Apps With PHP & Symfony2
Pablo Godel
 
PDF
Tek13 - Creating Mobile Apps with PHP and Symfony
Pablo Godel
 
PDF
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Pablo Godel
 
PDF
Soflophp 2013 - SysAdmin skills for PHP developers
Pablo Godel
 
PDF
Symfony2 and MongoDB - MidwestPHP 2013
Pablo Godel
 
PDF
Codeworks'12 Rock Solid Deployment of PHP Apps
Pablo Godel
 
PDF
PFCongres 2012 - Rock Solid Deployment of PHP Apps
Pablo Godel
 
PDF
Symfony2 y MongoDB - deSymfony 2012
Pablo Godel
 
PDF
Declare independence from your it department sysadmin skills for symfony dev...
Pablo Godel
 
PDF
Symfony2 and MongoDB
Pablo Godel
 
PDF
Introduction to symfony2
Pablo Godel
 
PDF
Creación de aplicaciones móviles con PHP y Symfony2
Pablo Godel
 
SymfonyCon Cluj 2017 - Symfony at OpenSky
Pablo Godel
 
Symfony Live San Francisco 2017 - Symfony @ OpenSky
Pablo Godel
 
DeSymfony 2017 - Symfony en OpenSky
Pablo Godel
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
Pablo Godel
 
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
Pablo Godel
 
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Pablo Godel
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
Pablo Godel
 
Creating Mobile Apps With PHP & Symfony2
Pablo Godel
 
Tek13 - Creating Mobile Apps with PHP and Symfony
Pablo Godel
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Pablo Godel
 
Soflophp 2013 - SysAdmin skills for PHP developers
Pablo Godel
 
Symfony2 and MongoDB - MidwestPHP 2013
Pablo Godel
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Pablo Godel
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
Pablo Godel
 
Symfony2 y MongoDB - deSymfony 2012
Pablo Godel
 
Declare independence from your it department sysadmin skills for symfony dev...
Pablo Godel
 
Symfony2 and MongoDB
Pablo Godel
 
Introduction to symfony2
Pablo Godel
 
Creación de aplicaciones móviles con PHP y Symfony2
Pablo Godel
 

Recently uploaded (20)

PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
This slide provides an overview Technology
mineshkharadi333
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
Coupa-Overview _Assumptions presentation
annapureddyn
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Architecture of the Future (09152021)
EdwardMeyman
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
This slide provides an overview Technology
mineshkharadi333
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Doc9.....................................
SofiaCollazos
 
Coupa-Overview _Assumptions presentation
annapureddyn
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Architecture of the Future (09152021)
EdwardMeyman
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 

Deploying Symfony | symfony.cat