A Call to DevOps: Unite with Open DevShop

Jon Pugh

This session is a plea. A call to arms. A siren call for all those who feel drawn to this thing we call "DevOps":

For everyone who is in charge of keeping their sites online: Join me.

For everyone else who has submitted a session in this devops track: Join me.

For anyone else who realizes that "continuous integration and delivery", "automated testing", and "reliable deployments" are something we all should be using, all the time, please, PLEASE join me!

Please come, bring all of your experience building your own tools, and creating your own workflows, and join me in the growing DevShop community.

DevShop is a comprehensive solution for hosting, testing, and deploying Drupal.  It is not a tool, or a tutorial, or a case study. DevShop is a product.

It already does almost everything* we "DevOps" pride ourselves on being able to build by hand, but it does it out of the box, without Jenkins, without Capistrano, and without any manual server setup. Just Drupal and Drush and the stack.

I know that everyone has their own preferred way of doing things.  I know what it feels like to have crafted a method, a tool that works great.  I also know that devshop, and certainly aegir is far from perfect.  The only way for it to get better is with your help.

It's time we joined forces and put all of our collective efforts behind building a great free and open source Cloud Hosting software and development tools for Drupal.

Join me in making devshop work for you.

Slides

See http://jonpugh.github.io/devops-unite/ for slides.

Information

devshop user interface

For The Curious:

*Things devshop does:

  • A "Project" is a git repo, a name, and a domain. A project can have as many environments deployed from your git repo as you want, tracking any branch or tag.
  • Deploy hooks: Code goes to servers on Git Push, runs many different type of "deploy hooks" (caches, updates, features, tests, acquia cloud hooks, custom drush hooks).  Deploy hooks configurable per environment.
  • Web UI for: Deploying branches or tags, deploying database and files from other environments or any drush alias, enable solr server, get drush aliases, Run Tests, get log in link, etc.
  • Integrated error logs, commit logs, task logs, and test logs.  
  • Pluggable Framework for easily managing services for drupal sites from mysql and apache, to solr and varnish. (Aegir!) Write a simple drush hook to write things to settings.php for all of your sites!
  • Create and manage servers on cloud providers.  In Progress.  Softlayer and DigitalOcean are functional, others way be easily added. See branch 'devshop-cloud'
  • Run Tests. Any kind of test. Run them on git push, or manually. Log those tests. Provides a UI for accessing the test results.  Drush hooks to fire off tasks in response to failing tests. Configure a different set of tests for each environment.
  • Ansible playbooks used to install everything.  Roles make for easy provisioning of new servers created via devshop cloud.
  • Pull Requests can automatically create (and destroy) environments. Put your live environment on "master" branch, and "Merge Pull Request" becomes "Deploy to Live".  Coming soon, DevShop Testing integrating with GitHub API, notifying the Pull Request of the new environment and test results.
  • Permissions for all tasks.  Give QA a DevShop user, they can view test results. Built in screenshots coming soon.
  • "Commit Features" allows one click features-update-all, git add, commit, and push.
  • Connect unlimited remote servers, deploying environments to their own servers. 
  • Vagrant development.
  • ...
  • And?
  • Pull Requests welcome.

Session Track

DevOps

Experience Level

Intermediate

Drupal Version