SlideShare a Scribd company logo
1 of 35
Undine
Turnkey Drupal Development Environments
David Watson
DrupalCon Austin - Drupal in Education Summit
June 2, 2014
Introductions
About Stevens, EWS
• Private research university
• Amazing view of Manhattan!
• Community of 6,000+
• Running 25+ sites on Drupal 7
• Most of them on Acquia Cloud
• Enterprise Web Services
• Team of four
• Lots of overlap with other depts.
Introductions
David Watson
• Web Engineer, Enterprise Web Services
• Heckle @caughtexception
• Five years in the Drupal community
• Most of it in #HigherEd
• Maintainer and contributor on Drupal.org
• Most work in responsive, distributions
• More recently DevOps slant
Introductions
Undine is a cross-platform turnkey Drupal development VM based
on the Acquia Cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
Overview
• Motivation for the Undine project
• What exactly is Undine, in detail?
• How it works under the hood
• How we use Undine at Stevens
• Future development goals
Unpacking Undine
Motivation
• Slow and tedious, even with package management
• Ramping up...
• New full-time developers
• Student employees
• Contractors
• Other collaborators
“Setting up the environment is a pain.”
Motivation
• Heard most often with profiling and debugging
• “Maybe later...” but why?
• Difficulty curve
• Limited resources
• Other institutional priorities
“Never got around to using that tool.”
Motivation
• Code that works for one dev but not another
• Code that works for devs but not on QA
• Code not working on production when it passed QA
• Are the environments the same...?
“It works on my machine!”
Motivation
• Expensive and/or time-consuming ramp-up
• High barriers to adopting powerful, time-saving tools
• Inconsistency between development environments
• Inconsistency between dev and deployment environments
(Not So) Unique Challenges
What If...
• Minimize the time between one-time setup and contribution
• Make contribution more accessible to dev community
• Student employees
• Collaborators in other units/organizations
• Outside consultants
• Automate the tedium of configuration
• Turnkey development environment
...Project Ramp-up Was Faster?
What If...
• Provide powerful developer tools out of the box
• Drush – Drupal site management
• Git – Decentralized version control system
• XDebug – PHP debugger
• XHProf – Resource profiler for PHP, devel module integration
• Configure them for the most generic case
• Allow further customization if necessary
...Tools Were More Accessible?
What If...
• Provide these features in a portable, repeatable way
• Configure once, then use everywhere
• Ideally works on Windows, OS X, Linux
• Base the development environment on production
• Acquia Cloud
• Standardize (only) what's important
• Allow choice of IDEs, etc.
...Environments Were Consistent?
Unpacking Undine
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia Cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia Cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
• Virtual machine runs on your existing OS
• Supported on Linux, Mac OS X, Windows
• The full LAMP stack is installed and configured for you
• Linux (Ubuntu Lucid), Apache, MySQL (Percona Server), PHP
VM-based, Turnkey...
The Basics
• Access your VM from your host OS
• Shell is available via vagrant ssh
• Web server listens on host's :8080 and :8443 (HTTPS)
• ./www shared between host and VM's /var/www
• Use your own IDE on your own host environment
• Allows name-based virtual hosts for multiple sites
• Just tell Undine the names and update your hosts file to match
...Drupal Development Environment
How Does It Work?
• Vagrant – VM management tool
• Ubuntu “base box” is used as a template for Undine's VM
• Puppet – Manages provisioning on the VM
• Automates VM setup (package retrieval, installation, configs, etc.)
• Undine API: further customize the environment
• Site-specific configuration
Vagrant and Puppet
How Does It Work?
• Vagrantfile – High-level VM configuration (memory, NFS, etc.)
• manifests/site.pp – Tells Undine what configs to use
• modules/ - Puppet modules core to Undine (“don't hack core!”)
• env/ - User-provided environment configuration
• sites/ - User-provided site-specific configuration
• examples/ - Configuration examples and documentation
• www/ - Shared between VM (/var/www) and host for your projects
• doc/ - API documentation
Directory Structure (Host)
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia Cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
• Development environments should match production
• Shared dev server less than ideal for multiple contributors
• Solution: Make the VM mimic the Cloud
Based on the Acquia Cloud
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
• Undine automates the tedium of first-time setup
• Package management
• Configuration files
• Retrieval of project resources
• Possible to automate a custom setup for your own projects
Up and Running In Minutes
The Basics
# Get the Ubuntu Lucid 32-bit base box
vagrant box add lucid32
http://files.vagrantup.com/lucid32.box
# Copy configuration files into place
cp ./manifests/Vagrantfile.no-nfs ./manifests/Vagrantfile
cp ./manifests/default.site.pp ./manifests/site.pp
# Start Undine
vagrant up
# Visit localhost:8080 – you're good to go!
Up and Running In Minutes
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
• Drush and Git ready out of the box
• Possible to set up identity automatically, see /examples
• XDebug is enabled by default
• Just tell your IDE to use port 9000 and dbgp (XDebug)
• XHProf is available and ready to integrate with Devel
• Location: /usr/share/php53-xhprof
• Web front-end at localhost:8080/xhprof_html
Beyond LAMP: Developer Tools
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
The Basics
• Separates site configuration from environment configuration
• Configuration is shareable between developers
• Personal config (git identity, etc) can be kept separate
• Developers can work locally on production-like environment
• No more “works on my machine!”
Consistent, Repeatable Configuration
The Basics
• Experiment with server config safely
• Revert Undine-managed configs with vagrant provision
• Environment bricked? No problem!
• Start over with vagrant destroy -f; vagrant up
• Like your changes? Extend Undine and share them!
Configuration Management
The Basics
Undine is a cross-platform turnkey Drupal development VM
based on the Acquia cloud. The goal of the Undine project
is to quickly provide a powerful, consistent environment to
both new and experienced Drupalistas.
What is Undine?
Beyond the Basics
• “Make easy things easy, hard things possible.”
• Most Undine users won't have to change the VM at all
• Advanced users may...
• Override configuration (memory allocation, MySQL tuning, etc.)
• Add new packages and services
• Automate Drupal site setup on build
• Much more!
Something For Everyone
Beyond the Basics
• Undine exposes Puppet for advanced users
• ./env and ./sites config captured in Puppet modules
• Additional classes provided for convenience
• undine::drupal_codebase – Code for a Drupal platform
• undine::drupal_site – Site within a codebase
• Can retrieve and install an entire site for local development
• See ./examples for more information
Advanced Customization, Undine API
Undine@Stevens
• Local development environment, consistent with Acquia
• No surprises during deployment
• No “works on my machine”
• Code, files, databases set up via /sites configs
• Configuration overridden where necessary
• settings.php, sites.php
• Git identity, LDAP tweaks in /env config
How We Use It
Undine@Stevens
• Keep all environments consistent!
• Dev/QA/Prod need to behave identically
• Avoid environment-specific code
• Only federate the functional
• Leave content alone (but make import easy)
• Let devs use their own tools
• Use revision control, with a clear approval workflow
Lessons Learned
Questions?
• Installation script to get new devs started even faster
• Varnish and memcached support
• Upcoming beta release
• Improved drush integration
• Stable 7.x-1.x release by end of 2014
• 2.x branch with Ubuntu Precise
The Future of Undine
Thank You!
David Watson
@caughtexception
in/davidmwatson
davidwatson (drupal.org/user/533896)

More Related Content

What's hot

Whales, Clouds, and Bubbles...?
Whales, Clouds, and Bubbles...?Whales, Clouds, and Bubbles...?
Whales, Clouds, and Bubbles...?Mary Anthony
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerJohn Rofrano
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDr Ganesh Iyer
 
Docker taylor swift and protection v06
Docker taylor swift and protection v06Docker taylor swift and protection v06
Docker taylor swift and protection v06marketingunitrends
 
Discussing the difference between docker dontainers and virtual machines
Discussing the difference between docker dontainers and virtual machinesDiscussing the difference between docker dontainers and virtual machines
Discussing the difference between docker dontainers and virtual machinesSteven Grzbielok
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifeidotCloud
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12dotCloud
 
Cassandra and docker
Cassandra and dockerCassandra and docker
Cassandra and dockerBen Bromhead
 
Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynotePatrick Chanezon
 
Docker introduction
Docker introductionDocker introduction
Docker introductionGourav Varma
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupDaniel Krook
 
LASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsLASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsVasiliy Fomichev
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore Vasiliy Fomichev
 
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onNCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onPatrick Chanezon
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersRyan Hodgin
 
Docker for developers
Docker for developersDocker for developers
Docker for developersandrzejsydor
 

What's hot (19)

Whales, Clouds, and Bubbles...?
Whales, Clouds, and Bubbles...?Whales, Clouds, and Bubbles...?
Whales, Clouds, and Bubbles...?
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
Docker taylor swift and protection v06
Docker taylor swift and protection v06Docker taylor swift and protection v06
Docker taylor swift and protection v06
 
Discussing the difference between docker dontainers and virtual machines
Discussing the difference between docker dontainers and virtual machinesDiscussing the difference between docker dontainers and virtual machines
Discussing the difference between docker dontainers and virtual machines
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifei
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Cassandra and docker
Cassandra and dockerCassandra and docker
Cassandra and docker
 
Cloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin KeynoteCloud Foundry the Open PaaS - OpenTour Austin Keynote
Cloud Foundry the Open PaaS - OpenTour Austin Keynote
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User Group
 
LASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsLASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker Tools
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore
 
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onNCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 

Similar to Undine: Turnkey Drupal Development Environments

Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupKamesh Pemmaraju
 
Intro to Docker October 2013
Intro to Docker October 2013Intro to Docker October 2013
Intro to Docker October 2013Docker, Inc.
 
Oracle virtualbox basic to rac attack
Oracle virtualbox basic to rac attackOracle virtualbox basic to rac attack
Oracle virtualbox basic to rac attackBobby Curtis
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersBlueData, Inc.
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
Devoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and BoltsDevoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and BoltsPatrick Chanezon
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionPatrick Chanezon
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerBrett Palmer
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013Docker, Inc.
 
Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Suyati Technologies
 

Similar to Undine: Turnkey Drupal Development Environments (20)

A to Z of Docker
A to Z of DockerA to Z of Docker
A to Z of Docker
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
 
OpenStack Boston
OpenStack BostonOpenStack Boston
OpenStack Boston
 
Why to docker
Why to dockerWhy to docker
Why to docker
 
Automated Infrastructure
Automated InfrastructureAutomated Infrastructure
Automated Infrastructure
 
Intro to Docker October 2013
Intro to Docker October 2013Intro to Docker October 2013
Intro to Docker October 2013
 
Oracle virtualbox basic to rac attack
Oracle virtualbox basic to rac attackOracle virtualbox basic to rac attack
Oracle virtualbox basic to rac attack
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Webinar Docker Tri Series
Webinar Docker Tri SeriesWebinar Docker Tri Series
Webinar Docker Tri Series
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
Devoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and BoltsDevoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and Bolts
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
 
Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5Get acquainted with the new ASP.Net 5
Get acquainted with the new ASP.Net 5
 

Recently uploaded

一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样Fi
 
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.Tortogel
 
I’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 ShirtI’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 Shirtrahman018755
 
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书B
 
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理Fir
 
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理gfhdsfr
 
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...Mumbai Escorts
 
一比一原版英国萨赛克斯大学毕业证如何办理
一比一原版英国萨赛克斯大学毕业证如何办理一比一原版英国萨赛克斯大学毕业证如何办理
一比一原版英国萨赛克斯大学毕业证如何办理SDSA
 
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...APNIC
 
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理B
 
一比一定制波士顿学院毕业证学位证书
一比一定制波士顿学院毕业证学位证书一比一定制波士顿学院毕业证学位证书
一比一定制波士顿学院毕业证学位证书A
 
Reggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsrahman018755
 
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebiThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebJie Liau
 
一比一定制加州大学欧文分校毕业证学位证书
一比一定制加州大学欧文分校毕业证学位证书一比一定制加州大学欧文分校毕业证学位证书
一比一定制加州大学欧文分校毕业证学位证书A
 
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样Fi
 
Free on Wednesdays T Shirts Free on Wednesdays Sweatshirts
Free on Wednesdays T Shirts Free on Wednesdays SweatshirtsFree on Wednesdays T Shirts Free on Wednesdays Sweatshirts
Free on Wednesdays T Shirts Free on Wednesdays Sweatshirtsrahman018755
 
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理C
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfOndejSur
 
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书gfhdsfr
 

Recently uploaded (20)

一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
一比一原版(Soton毕业证书)南安普顿大学毕业证原件一模一样
 
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
TORTOGEL TELAH MENJADI SALAH SATU PLATFORM PERMAINAN PALING FAVORIT.
 
I’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 ShirtI’ll See Y’All Motherfuckers In Game 7 Shirt
I’ll See Y’All Motherfuckers In Game 7 Shirt
 
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书
一比一定制(Temasek毕业证书)新加坡淡马锡理工学院毕业证学位证书
 
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理
一比一原版(NYU毕业证书)美国纽约大学毕业证如何办理
 
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理
一比一原版(Exon毕业证书)英国埃克塞特大学毕业证如何办理
 
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...
💞 Safe And Seℂure ℂall Girls Dehradun ℂall Girls Serviℂe Just ℂall 🍑👄93157910...
 
一比一原版英国萨赛克斯大学毕业证如何办理
一比一原版英国萨赛克斯大学毕业证如何办理一比一原版英国萨赛克斯大学毕业证如何办理
一比一原版英国萨赛克斯大学毕业证如何办理
 
GOOGLE Io 2024 At takes center stage.pdf
GOOGLE Io 2024 At takes center stage.pdfGOOGLE Io 2024 At takes center stage.pdf
GOOGLE Io 2024 At takes center stage.pdf
 
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...
Registry Data Accuracy Improvements, presented by Chimi Dorji at SANOG 41 / I...
 
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理
一比一原版(Bath毕业证书)英国桑德兰大学毕业证如何办理
 
一比一定制波士顿学院毕业证学位证书
一比一定制波士顿学院毕业证学位证书一比一定制波士顿学院毕业证学位证书
一比一定制波士顿学院毕业证学位证书
 
Reggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirtsReggie miller choke t shirts
Reggie miller choke t shirtsReggie miller choke t shirts
 
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWebiThome_CYBERSEC2024_Drive_Into_the_DarkWeb
iThome_CYBERSEC2024_Drive_Into_the_DarkWeb
 
一比一定制加州大学欧文分校毕业证学位证书
一比一定制加州大学欧文分校毕业证学位证书一比一定制加州大学欧文分校毕业证学位证书
一比一定制加州大学欧文分校毕业证学位证书
 
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样
一比一原版(UWE毕业证书)西英格兰大学毕业证原件一模一样
 
Free on Wednesdays T Shirts Free on Wednesdays Sweatshirts
Free on Wednesdays T Shirts Free on Wednesdays SweatshirtsFree on Wednesdays T Shirts Free on Wednesdays Sweatshirts
Free on Wednesdays T Shirts Free on Wednesdays Sweatshirts
 
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理
一比一原版(Princeton毕业证书)普林斯顿大学毕业证如何办理
 
Statistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdfStatistical Analysis of DNS Latencies.pdf
Statistical Analysis of DNS Latencies.pdf
 
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书
一比一定制(Dundee毕业证书)英国邓迪大学毕业证学位证书
 

Undine: Turnkey Drupal Development Environments

  • 1. Undine Turnkey Drupal Development Environments David Watson DrupalCon Austin - Drupal in Education Summit June 2, 2014
  • 2. Introductions About Stevens, EWS • Private research university • Amazing view of Manhattan! • Community of 6,000+ • Running 25+ sites on Drupal 7 • Most of them on Acquia Cloud • Enterprise Web Services • Team of four • Lots of overlap with other depts.
  • 3. Introductions David Watson • Web Engineer, Enterprise Web Services • Heckle @caughtexception • Five years in the Drupal community • Most of it in #HigherEd • Maintainer and contributor on Drupal.org • Most work in responsive, distributions • More recently DevOps slant
  • 4. Introductions Undine is a cross-platform turnkey Drupal development VM based on the Acquia Cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 5. Overview • Motivation for the Undine project • What exactly is Undine, in detail? • How it works under the hood • How we use Undine at Stevens • Future development goals Unpacking Undine
  • 6. Motivation • Slow and tedious, even with package management • Ramping up... • New full-time developers • Student employees • Contractors • Other collaborators “Setting up the environment is a pain.”
  • 7. Motivation • Heard most often with profiling and debugging • “Maybe later...” but why? • Difficulty curve • Limited resources • Other institutional priorities “Never got around to using that tool.”
  • 8. Motivation • Code that works for one dev but not another • Code that works for devs but not on QA • Code not working on production when it passed QA • Are the environments the same...? “It works on my machine!”
  • 9. Motivation • Expensive and/or time-consuming ramp-up • High barriers to adopting powerful, time-saving tools • Inconsistency between development environments • Inconsistency between dev and deployment environments (Not So) Unique Challenges
  • 10. What If... • Minimize the time between one-time setup and contribution • Make contribution more accessible to dev community • Student employees • Collaborators in other units/organizations • Outside consultants • Automate the tedium of configuration • Turnkey development environment ...Project Ramp-up Was Faster?
  • 11. What If... • Provide powerful developer tools out of the box • Drush – Drupal site management • Git – Decentralized version control system • XDebug – PHP debugger • XHProf – Resource profiler for PHP, devel module integration • Configure them for the most generic case • Allow further customization if necessary ...Tools Were More Accessible?
  • 12. What If... • Provide these features in a portable, repeatable way • Configure once, then use everywhere • Ideally works on Windows, OS X, Linux • Base the development environment on production • Acquia Cloud • Standardize (only) what's important • Allow choice of IDEs, etc. ...Environments Were Consistent?
  • 13. Unpacking Undine Undine is a cross-platform turnkey Drupal development VM based on the Acquia Cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 14. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia Cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 15. The Basics • Virtual machine runs on your existing OS • Supported on Linux, Mac OS X, Windows • The full LAMP stack is installed and configured for you • Linux (Ubuntu Lucid), Apache, MySQL (Percona Server), PHP VM-based, Turnkey...
  • 16. The Basics • Access your VM from your host OS • Shell is available via vagrant ssh • Web server listens on host's :8080 and :8443 (HTTPS) • ./www shared between host and VM's /var/www • Use your own IDE on your own host environment • Allows name-based virtual hosts for multiple sites • Just tell Undine the names and update your hosts file to match ...Drupal Development Environment
  • 17. How Does It Work? • Vagrant – VM management tool • Ubuntu “base box” is used as a template for Undine's VM • Puppet – Manages provisioning on the VM • Automates VM setup (package retrieval, installation, configs, etc.) • Undine API: further customize the environment • Site-specific configuration Vagrant and Puppet
  • 18. How Does It Work? • Vagrantfile – High-level VM configuration (memory, NFS, etc.) • manifests/site.pp – Tells Undine what configs to use • modules/ - Puppet modules core to Undine (“don't hack core!”) • env/ - User-provided environment configuration • sites/ - User-provided site-specific configuration • examples/ - Configuration examples and documentation • www/ - Shared between VM (/var/www) and host for your projects • doc/ - API documentation Directory Structure (Host)
  • 19. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia Cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 20. The Basics • Development environments should match production • Shared dev server less than ideal for multiple contributors • Solution: Make the VM mimic the Cloud Based on the Acquia Cloud
  • 21. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 22. The Basics • Undine automates the tedium of first-time setup • Package management • Configuration files • Retrieval of project resources • Possible to automate a custom setup for your own projects Up and Running In Minutes
  • 23. The Basics # Get the Ubuntu Lucid 32-bit base box vagrant box add lucid32 http://files.vagrantup.com/lucid32.box # Copy configuration files into place cp ./manifests/Vagrantfile.no-nfs ./manifests/Vagrantfile cp ./manifests/default.site.pp ./manifests/site.pp # Start Undine vagrant up # Visit localhost:8080 – you're good to go! Up and Running In Minutes
  • 24. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 25. The Basics • Drush and Git ready out of the box • Possible to set up identity automatically, see /examples • XDebug is enabled by default • Just tell your IDE to use port 9000 and dbgp (XDebug) • XHProf is available and ready to integrate with Devel • Location: /usr/share/php53-xhprof • Web front-end at localhost:8080/xhprof_html Beyond LAMP: Developer Tools
  • 26. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 27. The Basics • Separates site configuration from environment configuration • Configuration is shareable between developers • Personal config (git identity, etc) can be kept separate • Developers can work locally on production-like environment • No more “works on my machine!” Consistent, Repeatable Configuration
  • 28. The Basics • Experiment with server config safely • Revert Undine-managed configs with vagrant provision • Environment bricked? No problem! • Start over with vagrant destroy -f; vagrant up • Like your changes? Extend Undine and share them! Configuration Management
  • 29. The Basics Undine is a cross-platform turnkey Drupal development VM based on the Acquia cloud. The goal of the Undine project is to quickly provide a powerful, consistent environment to both new and experienced Drupalistas. What is Undine?
  • 30. Beyond the Basics • “Make easy things easy, hard things possible.” • Most Undine users won't have to change the VM at all • Advanced users may... • Override configuration (memory allocation, MySQL tuning, etc.) • Add new packages and services • Automate Drupal site setup on build • Much more! Something For Everyone
  • 31. Beyond the Basics • Undine exposes Puppet for advanced users • ./env and ./sites config captured in Puppet modules • Additional classes provided for convenience • undine::drupal_codebase – Code for a Drupal platform • undine::drupal_site – Site within a codebase • Can retrieve and install an entire site for local development • See ./examples for more information Advanced Customization, Undine API
  • 32. Undine@Stevens • Local development environment, consistent with Acquia • No surprises during deployment • No “works on my machine” • Code, files, databases set up via /sites configs • Configuration overridden where necessary • settings.php, sites.php • Git identity, LDAP tweaks in /env config How We Use It
  • 33. Undine@Stevens • Keep all environments consistent! • Dev/QA/Prod need to behave identically • Avoid environment-specific code • Only federate the functional • Leave content alone (but make import easy) • Let devs use their own tools • Use revision control, with a clear approval workflow Lessons Learned
  • 34. Questions? • Installation script to get new devs started even faster • Varnish and memcached support • Upcoming beta release • Improved drush integration • Stable 7.x-1.x release by end of 2014 • 2.x branch with Ubuntu Precise The Future of Undine