SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
DEVELOPING LOCALLY WITH VIRTUAL MACHINES
William Hurley, Manager of Programming
April 11, 2014
Monday, April 14, 14
About Forum One
1,500	
  projects	
  since	
  1996
Full	
  Service	
  Strategy	
  +	
  UX	
  +	
  Tech	
  +	
  Support
100%	
  Open	
  Source!
Monday, April 14, 14
75	
  Staff	
  Members	
  in
Alexandria,	
  SeaJle,
San	
  Francisco	
  and	
  more!
Monday, April 14, 14
The Challenge
Monday, April 14, 14
In 2008
LAMPi
n
u
x
p
a
c
h
e
y
S
q
l
H
P
Monday, April 14, 14
In 2008
4	
  languages
PHP
SQL
CSS	
  /	
  JS
3	
  services
Apache
MySQL
PHP	
  with	
  mod_php
5	
  Developers
1	
  Themer
2	
  System	
  
Administrators
Everyone	
  in	
  one	
  
building
Monday, April 14, 14
In 2014
LNMPSVMi
n
u
x
n
g
i
n
x
y
S
q
l
H
P
o
l
r
a
r
n
i
s
h
e
m
c
a
c
h
e
d
Monday, April 14, 14
In 2014
15	
  Developers
5	
  Interface	
  Engineers
2	
  Technical	
  PM
10	
  Contractors
2	
  System	
  
Administrators
Working	
  across	
  the	
  US	
  
and	
  Europe
7	
  languages
PHP
SQL
Ruby
Java
SASS	
  /	
  CSS	
  /	
  JS
7	
  services
Apache
nginx
MySQL
PostgreSQL
Solr
Varnish
Memcached
Redis
NodeJS
Monday, April 14, 14
Develop and Support
Launched	
  29	
  sites	
  in	
  2013
AcUvely	
  host	
  and	
  support	
  65+	
  sites
Drupal	
  6	
  and	
  7,	
  even	
  some	
  Drupal	
  5
WordPress
Custom	
  applicaUons	
  in	
  Python,	
  NodeJS,	
  Zend	
  
Framework,	
  Code	
  Igniter	
  and	
  others
Hosted	
  by	
  Forum	
  One,	
  Acquia,	
  Pantheon	
  and	
  
others
Monday, April 14, 14
Software and Versions Matter
Apache	
  or	
  nginx?
FPM	
  or	
  mod_php?
PHP	
  5.2,	
  5.3	
  or	
  5.4?
Ruby	
  1.8.7,	
  1.9	
  or	
  2.0?
Solr	
  3.5,	
  3.6,	
  4.4	
  or	
  4.6?
Redis	
  or	
  memcached
Varnish
Monday, April 14, 14
Looking to the Future
Web	
  properUes	
  ge`ng	
  more	
  complex
New	
  technologies	
  -­‐-­‐	
  not	
  yet	
  easily	
  installed	
  
on	
  consumer	
  systems
HHVM
PageSpeed
Mahout	
  /	
  Hadoop
Larger	
  and	
  more	
  distributed	
  teams
Monday, April 14, 14
Solutions
Monday, April 14, 14
Monday, April 14, 14
What is it?
“Vagrant	
  is	
  a	
  tool	
  for	
  building	
  complete	
  
development	
  environments.	
  With	
  an	
  easy-­‐
to-­‐use	
  workflow	
  and	
  focus	
  on	
  automaUon,	
  
Vagrant	
  lowers	
  development	
  environment	
  
setup	
  Ume,	
  increases	
  development/
producUon	
  parity,	
  and	
  makes	
  the	
  "works	
  on	
  
my	
  machine"	
  excuse	
  a	
  relic	
  of	
  the	
  past.”
Monday, April 14, 14
What Does that Mean?
Manages	
  per-­‐project	
  virtual	
  machines
Eases	
  configuraUon	
  for:
Port	
  forwarding
Shared	
  folders	
  including	
  NFS
SSH	
  agent	
  forwarding
Integrates	
  with	
  system	
  configuraUon	
  
management
Monday, April 14, 14
Why Does it Matter?
Easily	
  create	
  new	
  projects	
  -­‐-­‐	
  just	
  
run	
  “vagrant	
  up”
Keep	
  each	
  project	
  isolated
Keep	
  everyone	
  working	
  in	
  the	
  
same	
  environment
Monday, April 14, 14
Vagrant Workflow
Check	
  out	
  repository
Run	
  “vagrant	
  up”
Log	
  in	
  to	
  VM	
  by	
  running	
  “vagrant	
  ssh”
Run	
  git	
  or	
  drush	
  from	
  the	
  VM	
  or	
  locally
Work	
  with	
  files	
  locally
Monday, April 14, 14
Easy First Steps
Create	
  a	
  single	
  virtual	
  machine	
  with	
  
sojware	
  you	
  need
Generate	
  template
Share	
  with	
  team
Monday, April 14, 14
Challenges
More	
  system	
  resources	
  necessary
Requires	
  use	
  of	
  the	
  command-­‐line
Does	
  not	
  preserve	
  idiosyncraUc	
  preferences
Requires	
  addiUonal	
  sojware	
  -­‐-­‐	
  some	
  
changing	
  frequently
Not	
  all	
  drush	
  commands	
  work	
  well	
  from	
  
outside	
  the	
  VM
Monday, April 14, 14
Common Issues
On	
  some	
  machines	
  Intel	
  VirtualizaUon	
  
Technology	
  for	
  Directed	
  I/O	
  (VT-­‐d)	
  is	
  not	
  
enabled
SSH	
  commands	
  need	
  the	
  host	
  SSH	
  key	
  in	
  
the	
  SSH	
  agent	
  -­‐-­‐	
  ssh-­‐add
NaUve	
  file	
  sharing	
  on	
  OSX	
  and	
  Linux	
  is	
  slow	
  
-­‐-­‐	
  use	
  NFS
Monday, April 14, 14
Monday, April 14, 14
What is it?
“Puppet	
  is	
  IT	
  automaUon	
  sojware	
  that	
  helps	
  
system	
  administrators	
  manage	
  infrastructure	
  
throughout	
  its	
  lifecycle,	
  from	
  provisioning	
  and	
  
configuraUon	
  to	
  orchestraUon	
  and	
  reporUng.	
  
Using	
  Puppet,	
  you	
  can	
  easily	
  automate	
  
repeUUve	
  tasks,	
  quickly	
  deploy	
  criUcal	
  
applicaUons,	
  and	
  proacUvely	
  manage	
  change,	
  
scaling	
  from	
  10s	
  of	
  servers	
  to	
  1000s,	
  on-­‐
premise	
  or	
  in	
  the	
  cloud.”
Monday, April 14, 14
What Does that Mean?
Ensures	
  current	
  environment	
  matches	
  
configuraUon
Domain	
  specific	
  language	
  to	
  configure:
Services
Files
Permissions
Se`ngs
Monday, April 14, 14
Alternatives
Monday, April 14, 14
Why Does it Matter?
Ability	
  to	
  customize	
  sojware	
  for	
  each	
  
project	
  independently
Ability	
  to	
  customize	
  se`ngs	
  for	
  each	
  
project	
  independently	
  and	
  share	
  those	
  
se`ngs	
  with	
  each	
  team	
  member
Leverage	
  experUse	
  in	
  certain	
  technologies	
  
across	
  the	
  enUre	
  team
Monday, April 14, 14
Challenges
Centralizes	
  knowledge	
  and	
  experUse
Takes	
  Ume	
  to	
  provision	
  virtual	
  machine
Achieving	
  parity	
  with	
  developer	
  desired	
  
tools	
  -­‐-­‐	
  e.g.	
  XDebug,	
  XHProf
Change	
  can	
  be	
  difficult
Monday, April 14, 14
PuPHPet
Monday, April 14, 14
Other Examples
Drupal-­‐VM	
  (github.com/Bussmeyer/drupal-­‐vm)
Varying	
  Vagrant	
  Vagrants	
  (github.com/Varying-­‐
Vagrant-­‐Vagrants/VVV)
Kalabox	
  (www.kalamuna.com/products/kalabox)
Monday, April 14, 14
Or Roll Your Own
Advantages
Control	
  over	
  all	
  aspects	
  of	
  the	
  provisioning
Easy	
  to	
  use	
  organizaUon	
  specific	
  configuraUon	
  -­‐-­‐	
  
e.g.	
  Varnish,	
  Solr,	
  nginx
Challenges
Takes	
  Ume	
  to	
  learn	
  tool
Limits	
  your	
  community
Monday, April 14, 14
Key Components
Librarian	
  Puppet
Puppet	
  modules	
  -­‐-­‐	
  Puppet	
  Forge,	
  Git
Hiera
Monday, April 14, 14
Hiera
---
classes:
- forumone::varnish
- forumone::nodejs
- forumone::ruby
- memcached
forumone::webserver::webserver: nginx
forumone::php::modules:
- pecl-memcached
- xcache
- gd
php::modules:
xcache:
settings:
xcache.size: "96M"
---
classes:
- forumone::webserver
- forumone::php
- forumone::drush
- forumone::mailcatcher
forumone::php::modules:
- xml
- pdo
- mbstring
- mysql
- pecl-xdebug
php::ini:
display_errors: "On"
memory_limit: "256M"
upload_max_filesize: "50M"
post_max_size: "100M"
sendmail_path: "/usr/bin/env catchmail"
percona::conf:
max_allowed_packets:
content: "[mysqld]nmax_allowed_packet=100M"
innodb_file_per_table:
content: "[mysqld]ninnodb_file_per_table"
query_cache_size:
content: "[mysqld]nquery_cache_size = 128M"
table_open_cache:
content: "[mysqld]ntable_open_cache = 2048"
memory_buffers:
content: "[mysqld]ntmp_table_size =
128nmax_heap_table_size = 128Mnjoin_buffer_size = 1M
nmyisam_sort_buffer_size = 8Mnsort_buffer_size = 2M"
php::modules:
xdebug:
pkgname: "pecl-xdebug"
zend: "/usr/lib64/php/modules"
settings:
---
forumone::databases:
web:
username: web
forumone::webserver::vhosts:
vagrant:
path: "/vagrant/public"
forumone::php::prefix: "php53u"
forumone::solr::collections:
drupal:
order: 1
Server Platform Site
Monday, April 14, 14
THANK YOU!
Any questions?
whurley@forumone.com
Monday, April 14, 14

Contenu connexe

Tendances

FOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula ProjectFOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula ProjectOpenNebula Project
 
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategiesrahulbot
 
The swiss knife of a word press developer
The swiss knife of a word press developerThe swiss knife of a word press developer
The swiss knife of a word press developerIvelina Dimova
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-runningJoe Ferguson
 
Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Alec Reynolds
 
Drupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowDrupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowvaluebound
 
NWJS. Web on desktop
NWJS. Web on desktopNWJS. Web on desktop
NWJS. Web on desktopAigars Zeiza
 
Deploy an Asp.Net Core App on Azure
Deploy an Asp.Net Core App on AzureDeploy an Asp.Net Core App on Azure
Deploy an Asp.Net Core App on AzureMichele Aponte
 
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebula Project
 
Saving Time and Money with Vagrant
Saving Time and Money with VagrantSaving Time and Money with Vagrant
Saving Time and Money with VagrantTim Broder
 
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier FontanOpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier FontanNETWAYS
 
Symfony presentation
Symfony presentationSymfony presentation
Symfony presentationmaxpower57
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechChristopher Bumgardner
 
Portable PHP
Portable PHPPortable PHP
Portable PHPweltling
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowAnn Cascarano
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
 

Tendances (20)

FOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula ProjectFOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula Project
 
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
The swiss knife of a word press developer
The swiss knife of a word press developerThe swiss knife of a word press developer
The swiss knife of a word press developer
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-running
 
Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)
 
Drupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowDrupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflow
 
NWJS. Web on desktop
NWJS. Web on desktopNWJS. Web on desktop
NWJS. Web on desktop
 
Deploy an Asp.Net Core App on Azure
Deploy an Asp.Net Core App on AzureDeploy an Asp.Net Core App on Azure
Deploy an Asp.Net Core App on Azure
 
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd ErkOpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
OpenNebulaConf 2013 - OpenNebula in a Multi-Customer-Environment by Bernd Erk
 
Saving Time and Money with Vagrant
Saving Time and Money with VagrantSaving Time and Money with Vagrant
Saving Time and Money with Vagrant
 
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier FontanOpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
 
Symfony presentation
Symfony presentationSymfony presentation
Symfony presentation
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
 
Portable PHP
Portable PHPPortable PHP
Portable PHP
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress Workflow
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
Working in harmony
Working in harmonyWorking in harmony
Working in harmony
 

Similaire à Developing locally with virtual machines

Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet KeynotePuppet
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJirayut Nimsaeng
 
Speed Up Development With OpenShift
Speed Up Development With OpenShiftSpeed Up Development With OpenShift
Speed Up Development With OpenShiftplarsen67
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDEFlorent BENOIT
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet
 
Scaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationPuppet
 
Cumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks
 
Muraliupdatedpersona150716
Muraliupdatedpersona150716Muraliupdatedpersona150716
Muraliupdatedpersona150716Murali Krishna R
 
Choosing the Right Infrastructure Provider
Choosing the Right Infrastructure ProviderChoosing the Right Infrastructure Provider
Choosing the Right Infrastructure ProviderNephoScale
 
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRENuxeo
 
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...Zohar Babin
 
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07Jorge Hidalgo
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Ori Bendet
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIJoel Byler
 
PHP Vs ASP.NET : How to Choose the Right One?
PHP Vs ASP.NET: How to Choose the Right One?PHP Vs ASP.NET: How to Choose the Right One?
PHP Vs ASP.NET : How to Choose the Right One?netdroidtech
 
Headless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupHeadless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupPratomo Ardianto
 

Similaire à Developing locally with virtual machines (20)

Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet Keynote
 
Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with Docker
 
Speed Up Development With OpenShift
Speed Up Development With OpenShiftSpeed Up Development With OpenShift
Speed Up Development With OpenShift
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Puppet Camp London 2014: Keynote
Puppet Camp London 2014: KeynotePuppet Camp London 2014: Keynote
Puppet Camp London 2014: Keynote
 
Scaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global Organization
 
Cumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinar
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
OFC 2014 Dinesh Dutt
OFC 2014 Dinesh DuttOFC 2014 Dinesh Dutt
OFC 2014 Dinesh Dutt
 
Muraliupdatedpersona150716
Muraliupdatedpersona150716Muraliupdatedpersona150716
Muraliupdatedpersona150716
 
Choosing the Right Infrastructure Provider
Choosing the Right Infrastructure ProviderChoosing the Right Infrastructure Provider
Choosing the Right Infrastructure Provider
 
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE
[Nuxeo World 2013] ADVANCED WORKFLOWS WITH CONTENT ROUTING - ALAIN ESCAFFRE
 
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
Debugging LAMP Apps on Linux/UNIX Using Open Source Tools - Jess Portnot - OS...
 
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07
OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CI
 
PHP Vs ASP.NET : How to Choose the Right One?
PHP Vs ASP.NET: How to Choose the Right One?PHP Vs ASP.NET: How to Choose the Right One?
PHP Vs ASP.NET : How to Choose the Right One?
 
Headless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupHeadless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal Meetup
 
Tech talk: PHP
Tech talk: PHPTech talk: PHP
Tech talk: PHP
 

Dernier

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 

Dernier (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Developing locally with virtual machines

  • 1. DEVELOPING LOCALLY WITH VIRTUAL MACHINES William Hurley, Manager of Programming April 11, 2014 Monday, April 14, 14
  • 2. About Forum One 1,500  projects  since  1996 Full  Service  Strategy  +  UX  +  Tech  +  Support 100%  Open  Source! Monday, April 14, 14
  • 3. 75  Staff  Members  in Alexandria,  SeaJle, San  Francisco  and  more! Monday, April 14, 14
  • 6. In 2008 4  languages PHP SQL CSS  /  JS 3  services Apache MySQL PHP  with  mod_php 5  Developers 1  Themer 2  System   Administrators Everyone  in  one   building Monday, April 14, 14
  • 8. In 2014 15  Developers 5  Interface  Engineers 2  Technical  PM 10  Contractors 2  System   Administrators Working  across  the  US   and  Europe 7  languages PHP SQL Ruby Java SASS  /  CSS  /  JS 7  services Apache nginx MySQL PostgreSQL Solr Varnish Memcached Redis NodeJS Monday, April 14, 14
  • 9. Develop and Support Launched  29  sites  in  2013 AcUvely  host  and  support  65+  sites Drupal  6  and  7,  even  some  Drupal  5 WordPress Custom  applicaUons  in  Python,  NodeJS,  Zend   Framework,  Code  Igniter  and  others Hosted  by  Forum  One,  Acquia,  Pantheon  and   others Monday, April 14, 14
  • 10. Software and Versions Matter Apache  or  nginx? FPM  or  mod_php? PHP  5.2,  5.3  or  5.4? Ruby  1.8.7,  1.9  or  2.0? Solr  3.5,  3.6,  4.4  or  4.6? Redis  or  memcached Varnish Monday, April 14, 14
  • 11. Looking to the Future Web  properUes  ge`ng  more  complex New  technologies  -­‐-­‐  not  yet  easily  installed   on  consumer  systems HHVM PageSpeed Mahout  /  Hadoop Larger  and  more  distributed  teams Monday, April 14, 14
  • 14. What is it? “Vagrant  is  a  tool  for  building  complete   development  environments.  With  an  easy-­‐ to-­‐use  workflow  and  focus  on  automaUon,   Vagrant  lowers  development  environment   setup  Ume,  increases  development/ producUon  parity,  and  makes  the  "works  on   my  machine"  excuse  a  relic  of  the  past.” Monday, April 14, 14
  • 15. What Does that Mean? Manages  per-­‐project  virtual  machines Eases  configuraUon  for: Port  forwarding Shared  folders  including  NFS SSH  agent  forwarding Integrates  with  system  configuraUon   management Monday, April 14, 14
  • 16. Why Does it Matter? Easily  create  new  projects  -­‐-­‐  just   run  “vagrant  up” Keep  each  project  isolated Keep  everyone  working  in  the   same  environment Monday, April 14, 14
  • 17. Vagrant Workflow Check  out  repository Run  “vagrant  up” Log  in  to  VM  by  running  “vagrant  ssh” Run  git  or  drush  from  the  VM  or  locally Work  with  files  locally Monday, April 14, 14
  • 18. Easy First Steps Create  a  single  virtual  machine  with   sojware  you  need Generate  template Share  with  team Monday, April 14, 14
  • 19. Challenges More  system  resources  necessary Requires  use  of  the  command-­‐line Does  not  preserve  idiosyncraUc  preferences Requires  addiUonal  sojware  -­‐-­‐  some   changing  frequently Not  all  drush  commands  work  well  from   outside  the  VM Monday, April 14, 14
  • 20. Common Issues On  some  machines  Intel  VirtualizaUon   Technology  for  Directed  I/O  (VT-­‐d)  is  not   enabled SSH  commands  need  the  host  SSH  key  in   the  SSH  agent  -­‐-­‐  ssh-­‐add NaUve  file  sharing  on  OSX  and  Linux  is  slow   -­‐-­‐  use  NFS Monday, April 14, 14
  • 22. What is it? “Puppet  is  IT  automaUon  sojware  that  helps   system  administrators  manage  infrastructure   throughout  its  lifecycle,  from  provisioning  and   configuraUon  to  orchestraUon  and  reporUng.   Using  Puppet,  you  can  easily  automate   repeUUve  tasks,  quickly  deploy  criUcal   applicaUons,  and  proacUvely  manage  change,   scaling  from  10s  of  servers  to  1000s,  on-­‐ premise  or  in  the  cloud.” Monday, April 14, 14
  • 23. What Does that Mean? Ensures  current  environment  matches   configuraUon Domain  specific  language  to  configure: Services Files Permissions Se`ngs Monday, April 14, 14
  • 25. Why Does it Matter? Ability  to  customize  sojware  for  each   project  independently Ability  to  customize  se`ngs  for  each   project  independently  and  share  those   se`ngs  with  each  team  member Leverage  experUse  in  certain  technologies   across  the  enUre  team Monday, April 14, 14
  • 26. Challenges Centralizes  knowledge  and  experUse Takes  Ume  to  provision  virtual  machine Achieving  parity  with  developer  desired   tools  -­‐-­‐  e.g.  XDebug,  XHProf Change  can  be  difficult Monday, April 14, 14
  • 28. Other Examples Drupal-­‐VM  (github.com/Bussmeyer/drupal-­‐vm) Varying  Vagrant  Vagrants  (github.com/Varying-­‐ Vagrant-­‐Vagrants/VVV) Kalabox  (www.kalamuna.com/products/kalabox) Monday, April 14, 14
  • 29. Or Roll Your Own Advantages Control  over  all  aspects  of  the  provisioning Easy  to  use  organizaUon  specific  configuraUon  -­‐-­‐   e.g.  Varnish,  Solr,  nginx Challenges Takes  Ume  to  learn  tool Limits  your  community Monday, April 14, 14
  • 30. Key Components Librarian  Puppet Puppet  modules  -­‐-­‐  Puppet  Forge,  Git Hiera Monday, April 14, 14
  • 31. Hiera --- classes: - forumone::varnish - forumone::nodejs - forumone::ruby - memcached forumone::webserver::webserver: nginx forumone::php::modules: - pecl-memcached - xcache - gd php::modules: xcache: settings: xcache.size: "96M" --- classes: - forumone::webserver - forumone::php - forumone::drush - forumone::mailcatcher forumone::php::modules: - xml - pdo - mbstring - mysql - pecl-xdebug php::ini: display_errors: "On" memory_limit: "256M" upload_max_filesize: "50M" post_max_size: "100M" sendmail_path: "/usr/bin/env catchmail" percona::conf: max_allowed_packets: content: "[mysqld]nmax_allowed_packet=100M" innodb_file_per_table: content: "[mysqld]ninnodb_file_per_table" query_cache_size: content: "[mysqld]nquery_cache_size = 128M" table_open_cache: content: "[mysqld]ntable_open_cache = 2048" memory_buffers: content: "[mysqld]ntmp_table_size = 128nmax_heap_table_size = 128Mnjoin_buffer_size = 1M nmyisam_sort_buffer_size = 8Mnsort_buffer_size = 2M" php::modules: xdebug: pkgname: "pecl-xdebug" zend: "/usr/lib64/php/modules" settings: --- forumone::databases: web: username: web forumone::webserver::vhosts: vagrant: path: "/vagrant/public" forumone::php::prefix: "php53u" forumone::solr::collections: drupal: order: 1 Server Platform Site Monday, April 14, 14