SlideShare a Scribd company logo
DEVOPS FOR HUMANS
F O R D R U P A L D E P L O Y M E N T V I C T O R Y !
DevOps Track - Thursday, June 5, 2014
2014
Me
• geerlingguy / Jeff Geerling
• Senior Application Developer, Mercy
• Owner, Midwestern Mac, LLC
Ansible for DevOps
• For sale on LeanPub
• 50% complete
This presentation
1. Drupal deployments are hard
2. Ansible is simple and powerful
3. Ansible is great for Drupal deployments

(and a lot more)
In the Beginning…
• Local Dev: MAMP/WAMP/XAMPP
• Deployments: git	
  pull	
  &&	
  drush	
  updb	
  
• Plus 15 other manual deployment steps…
• New servers: manual provisioning
http://devopsreactions.tumblr.com/
http://devopsreactions.tumblr.com/
 _______________________________________	
  	
  
/	
  I	
  once	
  had	
  to	
  go	
  to	
  a	
  sysadmin	
  with	
  a	
  	
  
	
  bottle	
  of	
  whiskey	
  to	
  get	
  a	
  deploy.	
  	
  	
  	
  /	
  
	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ^__^	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (oo)_______	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (__)	
  	
  	
  	
  	
  	
  	
  )/	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||-­‐-­‐-­‐-­‐w	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||	
  	
  	
  	
  	
  ||
@itababy at AnsibleFest NYC, 2014
Managed servers: 1
Managed servers: 1
circa
(Dries)
Managed servers: 50+
UAT
Test
Prod
Managed servers: 50+
UAT
Test
Prod
Dev
Managed servers: 50+
UAT
Test
Prod
circa
Dev
The Simsons™ and © Fox and its related companies. All rights reserved.
DevOps
• Solving Modern Problems:
• multi-server infrastructure (beyond LAMP)
• cloud provisioning, auto-scaling
• testable infrastructure
 _______________________________________	
  	
  
/	
  It	
  should	
  take	
  less	
  time	
  to	
  rebuild	
  a	
  	
  
	
  server	
  than	
  to	
  log	
  in	
  and	
  fix	
  it.	
  	
  	
  	
  	
  /	
  
	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ^__^	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (oo)_______	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (__)	
  	
  	
  	
  	
  	
  	
  )/	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||-­‐-­‐-­‐-­‐w	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ||	
  	
  	
  	
  	
  ||
http://www.slideshare.net/ItamarHassin/monitordriven-development-using-ansible-34920480
Puppet Chef Salt Ansible
Initial release 2005 2009 2011 2012
Configuration
Language DSL Ruby/DSL YAML YAML
Template
Language ERB ERB Jinja2 Jinja2
Agentless ✓
Simple ad-hoc
task execution ✓ ✓
GitHub ★s* 2,239 2,729 3,531 6,202
*As of 2014/06/02. Just a reference point. Stars don’t mean much in the grand scheme of things ;-)
Current solutions
Puppet Chef Salt Ansible
Initial release 2005 2009 2011 2012
Configuration
Language DSL Ruby/DSL YAML YAML
Template
Language ERB ERB Jinja2 Jinja2
Agentless ✓
Simple ad-hoc
task execution ✓ ✓
GitHub ★s* 2,239 2,729 3,531 6,202
Just like Drupal 8!
Just like Twig!
*As of 2014/06/02. Just a reference point. Stars don’t mean much in the grand scheme of things ;-)
Current solutions
Puppet Chef Salt Ansible
Initial release 2005 2009 2011 2012
Configuration
Language DSL Ruby/DSL YAML YAML
Template
Language ERB ERB Jinja2 Jinja2
Agentless ✓
Simple ad-hoc
task execution ✓ ✓
GitHub ★s* 2,239 2,729 3,531 6,202
Just like Drupal 8!
Just like Twig!
*As of 2014/06/02. Just a reference point. Stars don’t mean much in the grand scheme of things ;-)
#HugOps
Current solutions
Who uses ?
(and me: Server Check.in, Hosted Apache Solr, Midwestern Mac, LLC)
First Steps with
Inventory
Inventory
[lamp]	
  
example.com	
  
!
[lamp:vars]	
  
ansible_ssh_user=johndoe	
  
ansible_ssh_port=2222
(save in /etc/ansible/hosts)
Inventory
[lamp]	
  
example.com	
  
!
[lamp:vars]	
  
ansible_ssh_user=johndoe	
  
ansible_ssh_port=2222
(save in /etc/ansible/hosts)
Group name
Inventory
[lamp]	
  
example.com	
  
!
[lamp:vars]	
  
ansible_ssh_user=johndoe	
  
ansible_ssh_port=2222
(save in /etc/ansible/hosts)
Group name
Hosts in group
(just one, for now)
Inventory
[lamp]	
  
example.com	
  
!
[lamp:vars]	
  
ansible_ssh_user=johndoe	
  
ansible_ssh_port=2222
(save in /etc/ansible/hosts)
Group name
Hosts in group
(just one, for now)
Variables

(for all hosts in group)
Playbook Task
Playbook Task
-­‐	
  name:	
  Ensure	
  Apache	
  is	
  installed.	
  
	
  	
  apt:	
  pkg=apache2	
  state=latest
Playbook Task
-­‐	
  name:	
  Ensure	
  Apache	
  is	
  installed.	
  
	
  	
  apt:	
  pkg=apache2	
  state=latest
Documentation
Playbook Task
-­‐	
  name:	
  Ensure	
  Apache	
  is	
  installed.	
  
	
  	
  apt:	
  pkg=apache2	
  state=latest
Documentation
Module
Playbook Task
-­‐	
  name:	
  Ensure	
  Apache	
  is	
  installed.	
  
	
  	
  apt:	
  pkg=apache2	
  state=latest
Documentation
Arguments
Module
Playbook
-­‐-­‐-­‐	
  
-­‐	
  name:	
  Ensure	
  Apache/PHP	
  is	
  installed.	
  
	
  	
  apt:	
  "pkg={{	
  item	
  }}	
  state=latest"	
  
	
  	
  with_items:	
  
	
  	
  	
  	
  -­‐	
  apache2	
  
	
  	
  	
  	
  -­‐	
  php5-­‐common	
  
	
  	
  	
  	
  -­‐	
  libapache2-­‐mod-­‐php5	
  
	
  	
  	
  	
  -­‐	
  php5-­‐cli	
  
!
-­‐	
  name:	
  Ensure	
  Apache	
  is	
  started.	
  
	
  	
  service:	
  name=apache2	
  state=started
(save as web.yml)
Playbook
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  lamp	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
!
	
  	
  	
  	
  -­‐	
  include:	
  web.yml
(save as playbook.yml)
Playbook
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  lamp	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
!
	
  	
  	
  	
  -­‐	
  include:	
  web.yml
(save as playbook.yml)
Name of group/host defined in inventory
Playbook
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  lamp	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
!
	
  	
  	
  	
  -­‐	
  include:	
  web.yml
(save as playbook.yml)
Name of group/host defined in inventory
Include the playbook
we created earlier
ansible-­‐playbook run
ansible-­‐playbook run
Ansible ♥ Vagrant
Ansible ♥ Vagrant
• First-class provisioner
• Inside Vagrantfile:
	
  	
  	
  	
  config.vm.provision	
  "ansible"	
  do	
  |ansible|

	
  	
  	
  	
  	
  	
  	
  ansible.playbook	
  =	
  "playbook.yml"

	
  	
  	
  	
  	
  	
  	
  ansible.inventory_path	
  =	
  "inventory-­‐vagrant"

	
  	
  	
  	
  end
Deploy Drupal 8 with
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  d8	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  pre_tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
	
  	
  	
  	
  -­‐	
  apt_repository:	
  >	
  
	
  	
  	
  	
  	
  	
  	
  	
  repo='ppa:ondrej/php5-­‐oldstable'	
  
!
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.apache	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php-­‐mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.postfix	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.drupal
-­‐-­‐-­‐	
  
-­‐	
  
	
  	
  
!
	
  	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  	
  	
  	
  	
  repo='ppa:ondrej/php5-­‐oldstable'
!
	
  	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
	
  	
  	
  	
  -­‐	
  
(this actually works)
00:03:14 later…
Demo
Ansible Roles
• Encapsulation for configuration/tasks
Ansible Roles
• Encapsulation for configuration/tasks
Ansible Role
files/
tasks/
handlers/
vars/ meta/
templates/
Drupal Deployment Role
deploy/
roles/
site-deploy/
playbook.yml
Drupal Deployment Role
deploy/
roles/
site-deploy/
playbook.yml
Custom role!
'site-deploy'
tasks
-­‐-­‐-­‐	
  
-­‐	
  name:	
  Run	
  drush	
  commands	
  to	
  update	
  site.	
  
	
  	
  command:	
  >	
  
	
  	
  	
  	
  drush	
  -­‐y	
  {{	
  item	
  }}	
  
	
  	
  	
  	
  chdir={{	
  drupal_core_path	
  }}	
  
	
  	
  with_items:	
  	
  
	
  	
  	
  	
  -­‐	
  "cset	
  system.site	
  name	
  '{{	
  site_name	
  }}'"	
  
	
  	
  	
  	
  -­‐	
  "rap	
  'anonymous'	
  'search	
  content'"	
  
	
  	
  notify:	
  restart	
  webserver
site-deploy/tasks/main.yml
vars
-­‐-­‐-­‐	
  
site_name:	
  "Ansible	
  Deployment"	
  
drupal_core_path:	
  /var/www/drupal-­‐8.x-­‐dev
site-deploy/vars/main.yml
handlers
-­‐-­‐-­‐	
  
-­‐	
  name:	
  restart	
  webserver	
  
	
  	
  service:	
  >	
  
	
  	
  	
  	
  name=apache2	
  
	
  	
  	
  	
  state=restarted	
  
	
  	
  sudo:	
  yes
site-deploy/handlers/main.yml
deploy/
roles/
site-deploy/
playbook.yml
tasks/main.yml
vars/main.yml
handlers/main.yml
Drupal Deployment Role
deploy/
roles/
site-deploy/
playbook.yml
Drupal Deployment Role
playbook
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  d8	
  
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  site-­‐deploy
playbook.yml
Demo
Notifications
-­‐	
  name:	
  Send	
  IRC	
  message.	
  
	
  	
  irc:	
  >	
  
	
  	
  	
  	
  channel='#drupalcon'	
  
	
  	
  	
  	
  server='chat.freenode.net'	
  
	
  	
  	
  	
  nick='ansible-­‐ninja'	
  
	
  	
  	
  	
  msg={{	
  irc_message	
  }}	
  
	
  	
  delegate_to:	
  127.0.0.1
(also inside playbook.yml)
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  d8	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  pre_tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
	
  	
  	
  	
  -­‐	
  apt_repository:	
  >	
  
	
  	
  	
  	
  	
  	
  	
  	
  repo='ppa:ondrej/php5-­‐oldstable'	
  
!
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.apache	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php-­‐mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.postfix	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.drupal	
  
	
  	
  	
  	
  -­‐	
  site-­‐deploy
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  d8	
  
	
  	
  sudo:	
  yes	
  
!
	
  	
  pre_tasks:	
  
	
  	
  	
  	
  -­‐	
  apt:	
  update_cache=yes	
  
	
  	
  	
  	
  -­‐	
  apt_repository:	
  >	
  
	
  	
  	
  	
  	
  	
  	
  	
  repo='ppa:ondrej/php5-­‐oldstable'	
  
!
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.apache	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.php-­‐mysql	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.postfix	
  
	
  	
  	
  	
  -­‐	
  geerlingguy.drupal	
  
	
  	
  	
  	
  -­‐	
  site-­‐deploy
Add to provisioning

playbook.yml
reverse-proxy.yml
webserver.yml
database.yml
search.yml
cache.yml
reverse-proxy.yml
webserver.yml
database.yml
search.yml
cache.yml
infrastructure-playbook.yml
-­‐-­‐-­‐	
  
-­‐	
  hosts:	
  all	
  
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  security	
  
	
  	
  	
  	
  -­‐	
  monitoring	
  
	
  	
  	
  	
  -­‐	
  fileshare	
  
!
-­‐	
  hosts:	
  webservers	
  
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  nginx	
  
	
  	
  	
  	
  -­‐	
  php	
  
	
  	
  	
  	
  -­‐	
  drupal	
  
!
-­‐	
  hosts:	
  database	
  
	
  	
  roles:	
  
	
  	
  	
  	
  -­‐	
  postgres
for Drupal
Deployment Victory!
for Drupal
Deployment Victory!
• Easy to get started
for Drupal
Deployment Victory!
• Easy to get started
• OH: “it works on my machine”
• sysadmin burnout
for Drupal
Deployment Victory!
• Easy to get started
• OH: “it works on my machine”
• sysadmin burnout
• You’ll actually enjoy it!
for Drupal
Deployment Victory!
• Easy to get started
• OH: “it works on my machine”
• sysadmin burnout
• You’ll actually enjoy it!
• …but BEWARE THE GOLDEN HAMMER!
Things I wanted to cover,
but didn’t have time
• Ansible ♥’s:
• Packer
• Docker
• [AWS|DO|Linode|Rackspace|etc.]
Things I wanted to cover,
but didn’t have time
• Ansible ♥’s:
• Packer
• Docker
• [AWS|DO|Linode|Rackspace|etc.]
• Delegation, notifications, ad-hoc commands, async
commands, rolling updates, prompts, Ansible Vault, wait_for,
forks, dynamic inventory, and oh-so-much-more…
Things I wanted to cover,
but didn’t have time
Resources
• Docs
• Freenode: #ansible
• Google Group
• Ansible for DevOps
• Ansible Weekly (newsletter)
• Download Ansible
• Automate!
• Buy my book :)
Things you will do now:
WHAT DID YOU THINK?
EVALUATE THIS SESSI ON:
AUSTIN2014.DRUPAL.ORG/SCH ED ULE
Thank you!
2014

More Related Content

What's hot

DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
rmcleay
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
Orestes Carracedo
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
Arnaud LEMAIRE
 
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL MeetupAnsible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL Meetup
Jeff Geerling
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Jeff Geerling
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
Richard Donkin
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Simplilearn
 
Ansible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deploymentsAnsible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deployments
Jeff Geerling
 
Ansible intro
Ansible introAnsible intro
Ansible - A 'crowd' introduction
Ansible - A 'crowd' introductionAnsible - A 'crowd' introduction
Ansible - A 'crowd' introduction
Manuel de la Peña Peña
 
Ansible introduction - XX Betabeers Galicia
Ansible introduction - XX Betabeers GaliciaAnsible introduction - XX Betabeers Galicia
Ansible introduction - XX Betabeers Galicia
Juan Diego Pereiro Arean
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
Mehmet Ali Aydın
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihan
jbminn
 
Cyansible
CyansibleCyansible
Cyansible
Alan Norton
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
Ivan Serdyuk
 
Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)
Richard Donkin
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
Jeff Geerling
 
Ansible
AnsibleAnsible
Ansible
Vishal Yadav
 
Ansible
AnsibleAnsible
Ansible
Raul Leite
 
Managing Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with AnsibleManaging Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with Ansible
fmaccioni
 

What's hot (20)

DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL MeetupAnsible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL Meetup
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
 
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
 
Ansible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deploymentsAnsible for Drupal infrastructure and deployments
Ansible for Drupal infrastructure and deployments
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Ansible - A 'crowd' introduction
Ansible - A 'crowd' introductionAnsible - A 'crowd' introduction
Ansible - A 'crowd' introduction
 
Ansible introduction - XX Betabeers Galicia
Ansible introduction - XX Betabeers GaliciaAnsible introduction - XX Betabeers Galicia
Ansible introduction - XX Betabeers Galicia
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihan
 
Cyansible
CyansibleCyansible
Cyansible
 
Getting started with Ansible
Getting started with AnsibleGetting started with Ansible
Getting started with Ansible
 
Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
Ansible
AnsibleAnsible
Ansible
 
Ansible
AnsibleAnsible
Ansible
 
Managing Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with AnsibleManaging Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with Ansible
 

Viewers also liked

Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricks
bcoca
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
jimi-c
 
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
Irakli Nadareishvili
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
Sarah Z
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
Martin Etmajer
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
John Lynch
 
Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi cluster
Jeff Geerling
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
Robert Reiz
 
Monitor-Driven Development Using Ansible
Monitor-Driven Development Using AnsibleMonitor-Driven Development Using Ansible
Monitor-Driven Development Using Ansible
Itamar Hassin
 
Ansible fest Presentation slides
Ansible fest Presentation slidesAnsible fest Presentation slides
Ansible fest Presentation slides
Aaron Carey
 
Ansible 202 - sysarmy
Ansible 202 - sysarmyAnsible 202 - sysarmy
Ansible 202 - sysarmy
Sebastian Montini
 
Ansible 202
Ansible 202Ansible 202
Ansible 202
Sebastian Montini
 
Metaprogramming 101
Metaprogramming 101Metaprogramming 101
Metaprogramming 101
Nando Vieira
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
Alan Lok
 
docker build with Ansible
docker build with Ansibledocker build with Ansible
docker build with Ansible
Bas Meijer
 
Orchestration with Ansible at Fedora Project
Orchestration with Ansible at Fedora ProjectOrchestration with Ansible at Fedora Project
Orchestration with Ansible at Fedora Project
Aditya Patawari
 
Automation and ansible
Automation and ansibleAutomation and ansible
Automation and ansible
Boaventura Rodrigues Neto
 
ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home
Jeff Geerling
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
William Yeh
 

Viewers also liked (20)

Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricks
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
 
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...AnsibleBuilding a Docker-ized Microservice  In Node, Using Ansible - AnsibleF...
AnsibleBuilding a Docker-ized Microservice In Node, Using Ansible - AnsibleF...
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi cluster
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
Monitor-Driven Development Using Ansible
Monitor-Driven Development Using AnsibleMonitor-Driven Development Using Ansible
Monitor-Driven Development Using Ansible
 
Ansible fest Presentation slides
Ansible fest Presentation slidesAnsible fest Presentation slides
Ansible fest Presentation slides
 
Ansible 202 - sysarmy
Ansible 202 - sysarmyAnsible 202 - sysarmy
Ansible 202 - sysarmy
 
Ansible 202
Ansible 202Ansible 202
Ansible 202
 
Metaprogramming 101
Metaprogramming 101Metaprogramming 101
Metaprogramming 101
 
Ansible + WordPress
Ansible + WordPressAnsible + WordPress
Ansible + WordPress
 
docker build with Ansible
docker build with Ansibledocker build with Ansible
docker build with Ansible
 
Orchestration with Ansible at Fedora Project
Orchestration with Ansible at Fedora ProjectOrchestration with Ansible at Fedora Project
Orchestration with Ansible at Fedora Project
 
Automation and ansible
Automation and ansibleAutomation and ansible
Automation and ansible
 
ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home ProTips for Staying Sane while Working from Home
ProTips for Staying Sane while Working from Home
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 

Similar to DevOps for Humans - Ansible for Drupal Deployment Victory!

Introduction to Ansible - (dev ops for people who hate devops)
Introduction to Ansible - (dev ops for people who hate devops)Introduction to Ansible - (dev ops for people who hate devops)
Introduction to Ansible - (dev ops for people who hate devops)
Jude A. Goonawardena
 
Ansible Devops North East - slides
Ansible Devops North East - slides Ansible Devops North East - slides
Ansible Devops North East - slides
InfinityPP
 
Manage WordPress with Awesome using wp cli
Manage WordPress with Awesome using wp cliManage WordPress with Awesome using wp cli
Manage WordPress with Awesome using wp cli
GetSource
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with oci
DonghuKIM2
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
Cédric Delgehier
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of Ansible
DevOps Ltd.
 
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cliWordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
GetSource
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
Rayed Alrashed
 
DevOps for database
DevOps for databaseDevOps for database
DevOps for database
Osama Mustafa
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
Jeff Geerling
 
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
Омские ИТ-субботники
 
Drupal cambs ansible for drupal april 2015
Drupal cambs ansible for drupal april 2015Drupal cambs ansible for drupal april 2015
Drupal cambs ansible for drupal april 2015
Ryan Brown
 
Getting Started with Ansible
Getting Started with AnsibleGetting Started with Ansible
Getting Started with Ansible
ahamilton55
 
02 Hadoop deployment and configuration
02 Hadoop deployment and configuration02 Hadoop deployment and configuration
02 Hadoop deployment and configuration
Subhas Kumar Ghosh
 
Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)
Jun Hong Kim
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
Itamar Hassin
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestration
Paolo Tonin
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
Alexander Dean
 
Puppet getting started by Dirk Götz
Puppet getting started by Dirk GötzPuppet getting started by Dirk Götz
Puppet getting started by Dirk Götz
NETWAYS
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
Jesus Manuel Olivas
 

Similar to DevOps for Humans - Ansible for Drupal Deployment Victory! (20)

Introduction to Ansible - (dev ops for people who hate devops)
Introduction to Ansible - (dev ops for people who hate devops)Introduction to Ansible - (dev ops for people who hate devops)
Introduction to Ansible - (dev ops for people who hate devops)
 
Ansible Devops North East - slides
Ansible Devops North East - slides Ansible Devops North East - slides
Ansible Devops North East - slides
 
Manage WordPress with Awesome using wp cli
Manage WordPress with Awesome using wp cliManage WordPress with Awesome using wp cli
Manage WordPress with Awesome using wp cli
 
Ansible with oci
Ansible with ociAnsible with oci
Ansible with oci
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of Ansible
 
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cliWordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
WordCamp Vancouver 2012 - Manage WordPress with Awesome using wp-cli
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
DevOps for database
DevOps for databaseDevOps for database
DevOps for database
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
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
 
Drupal cambs ansible for drupal april 2015
Drupal cambs ansible for drupal april 2015Drupal cambs ansible for drupal april 2015
Drupal cambs ansible for drupal april 2015
 
Getting Started with Ansible
Getting Started with AnsibleGetting Started with Ansible
Getting Started with Ansible
 
02 Hadoop deployment and configuration
02 Hadoop deployment and configuration02 Hadoop deployment and configuration
02 Hadoop deployment and configuration
 
Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestration
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
 
Puppet getting started by Dirk Götz
Puppet getting started by Dirk GötzPuppet getting started by Dirk Götz
Puppet getting started by Dirk Götz
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
 

More from Jeff Geerling

Continuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub ActionsContinuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub Actions
Jeff Geerling
 
2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly
Jeff Geerling
 
There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)
Jeff Geerling
 
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi clusterEverything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
Jeff Geerling
 
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 KeynoteReal World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Jeff Geerling
 
Make your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalableMake your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalable
Jeff Geerling
 
Ansible and Kubernetes
Ansible and KubernetesAnsible and Kubernetes
Ansible and Kubernetes
Jeff Geerling
 
HTTPS and Ansible
HTTPS and AnsibleHTTPS and Ansible
HTTPS and Ansible
Jeff Geerling
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Jeff Geerling
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
Jeff Geerling
 
Server Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.jsServer Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.js
Jeff Geerling
 
Florissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys RedevelopmentFlorissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys Redevelopment
Jeff Geerling
 
How to Build a Drupal Module
How to Build a Drupal ModuleHow to Build a Drupal Module
How to Build a Drupal Module
Jeff Geerling
 

More from Jeff Geerling (13)

Continuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub ActionsContinuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub Actions
 
2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly2020 Drupal Local Development Tools Survey - CMS Philly
2020 Drupal Local Development Tools Survey - CMS Philly
 
There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)There's a role for that! (AnsibleFest 2019)
There's a role for that! (AnsibleFest 2019)
 
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi clusterEverything I know about Kubernetes I learned from a Raspberry Pi cluster
Everything I know about Kubernetes I learned from a Raspberry Pi cluster
 
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 KeynoteReal World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
Real World DevOps - Jeff Geerling's NEDCamp 2018 Keynote
 
Make your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalableMake your Ansible playbooks maintainable, flexible, and scalable
Make your Ansible playbooks maintainable, flexible, and scalable
 
Ansible and Kubernetes
Ansible and KubernetesAnsible and Kubernetes
Ansible and Kubernetes
 
HTTPS and Ansible
HTTPS and AnsibleHTTPS and Ansible
HTTPS and Ansible
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
Server Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.jsServer Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.js
 
Florissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys RedevelopmentFlorissant TIF - Cross Keys Redevelopment
Florissant TIF - Cross Keys Redevelopment
 
How to Build a Drupal Module
How to Build a Drupal ModuleHow to Build a Drupal Module
How to Build a Drupal Module
 

Recently uploaded

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 

Recently uploaded (20)

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 

DevOps for Humans - Ansible for Drupal Deployment Victory!