SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Último

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Último (20)

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

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