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
PDF
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
PDF
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
PPTX
Vagrant to-aws-flow
PPTX
DevOps Hackathon - Session 1: Vagrant
KEY
PDF
Ansible Crash Course
PDF
Ansible 實戰:top down 觀點
The Modern Developer Toolbox
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Vagrant to-aws-flow
DevOps Hackathon - Session 1: Vagrant
Ansible Crash Course
Ansible 實戰:top down 觀點

What's hot (20)

PPTX
Ansible for beginners
PDF
Vagrant for real codemotion (moar tips! ;-))
PDF
Development with Ansible & VMs
PDF
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
KEY
Puppet for dummies - ZendCon 2011 Edition
PDF
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PPTX
DevOps hackathon Session 2: Basics of Chef
PDF
Vagrant for real (codemotion rome 2016)
PDF
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
PDF
EC2 AMI Factory with Chef, Berkshelf, and Packer
PDF
Introduction to Ansible (Pycon7 2016)
PDF
Multi-provider Vagrant and Chef: AWS, VMware, and more
PDF
DevOps for Humans - Ansible for Drupal Deployment Victory!
PDF
A quick intro to Ansible
ODP
ATDD with Behat and Selenium (LDNSE6)
PDF
DevOps(3) : Ansible - (MOSG)
PDF
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
PDF
Create Development and Production Environments with Vagrant
PPT
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
PPTX
PHP & JavaScript & CSS Coding style
Ansible for beginners
Vagrant for real codemotion (moar tips! ;-))
Development with Ansible & VMs
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Puppet for dummies - ZendCon 2011 Edition
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
DevOps hackathon Session 2: Basics of Chef
Vagrant for real (codemotion rome 2016)
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
EC2 AMI Factory with Chef, Berkshelf, and Packer
Introduction to Ansible (Pycon7 2016)
Multi-provider Vagrant and Chef: AWS, VMware, and more
DevOps for Humans - Ansible for Drupal Deployment Victory!
A quick intro to Ansible
ATDD with Behat and Selenium (LDNSE6)
DevOps(3) : Ansible - (MOSG)
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Create Development and Production Environments with Vagrant
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
PHP & JavaScript & CSS Coding style
Ad

Viewers also liked (20)

PPTX
Deploying Symfony2 app with Ansible
PDF
Maa s360 presentacion_intro_clientes
PPTX
react-jsonschema-formについて
PDF
Multi kernelowa aplikacja w oparciu o Symfony 3 i microkernele
PDF
From * to Symfony2
PDF
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
PDF
SaaS con Symfony2
PDF
Scaling symfony apps
PDF
Symfony day 2016
PDF
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
PDF
Nuvola: a tale of migration to AWS
PPTX
Design Thinking at Sparkloft
PPT
PDF
PPTX
Social Media and Social Networking Town Hall Discussion - William Toll at Pro...
PDF
Reaching Audiences While They Reach You
PDF
More Than Hair, Nails & Makeup
PPTX
Sound waves
PPTX
SharePoint Saturday Cambridge 2016 Session
PPT
Reuse, recycle, reduce: exploiting existing metadata at National Library of S...
Deploying Symfony2 app with Ansible
Maa s360 presentacion_intro_clientes
react-jsonschema-formについて
Multi kernelowa aplikacja w oparciu o Symfony 3 i microkernele
From * to Symfony2
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
SaaS con Symfony2
Scaling symfony apps
Symfony day 2016
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Nuvola: a tale of migration to AWS
Design Thinking at Sparkloft
Social Media and Social Networking Town Hall Discussion - William Toll at Pro...
Reaching Audiences While They Reach You
More Than Hair, Nails & Makeup
Sound waves
SharePoint Saturday Cambridge 2016 Session
Reuse, recycle, reduce: exploiting existing metadata at National Library of S...
Ad

Similar to Deploying Symfony | symfony.cat (20)

PDF
Rock Solid Deployment of Web Applications
PDF
Evolution of deploy.sh
PDF
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
PDF
Build & deploy PHP application (intro level)
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
PDF
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
PDF
Deployment Tactics
PDF
Automated Deployment and Configuration Engines. Ansible
PDF
Ansible Project Deploy (phpbenelux 2015)
PDF
Automated deployment
PDF
High Stakes Continuous Delivery in the Real World #OpenWest
PDF
Rock-solid Magento Development and Deployment Workflows
PDF
Getting Started with Ansible - Jake.pdf
PDF
Advanced Topics in Continuous Deployment
PDF
Deployer - Deployment tool for PHP
PPTX
PaaSing Your Code Around
PDF
Building and Deploying PHP Applications, PHPTour 2016
PPTX
Symfony 2 under control
PDF
Ansible project-deploy (NomadPHP lightning talk)
PDF
Continuous Integration and Deployment Patterns for Magento
Rock Solid Deployment of Web Applications
Evolution of deploy.sh
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
Build & deploy PHP application (intro level)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Deployment Tactics
Automated Deployment and Configuration Engines. Ansible
Ansible Project Deploy (phpbenelux 2015)
Automated deployment
High Stakes Continuous Delivery in the Real World #OpenWest
Rock-solid Magento Development and Deployment Workflows
Getting Started with Ansible - Jake.pdf
Advanced Topics in Continuous Deployment
Deployer - Deployment tool for PHP
PaaSing Your Code Around
Building and Deploying PHP Applications, PHPTour 2016
Symfony 2 under control
Ansible project-deploy (NomadPHP lightning talk)
Continuous Integration and Deployment Patterns for Magento

More from Pablo Godel (20)

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

Recently uploaded (20)

PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
PDF
Advanced IT Governance
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Cloud computing and distributed systems.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Advanced IT Governance
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Electronic commerce courselecture one. Pdf
Cloud computing and distributed systems.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Per capita expenditure prediction using model stacking based on satellite ima...
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
Diabetes mellitus diagnosis method based random forest with bat algorithm
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Spectral efficient network and resource selection model in 5G networks

Deploying Symfony | symfony.cat