Proviso – VAGRANT BASED DEVELOPMENT STANDARDIZED! – In the beginning



Proviso – VAGRANT BASED DEVELOPMENT STANDARDIZED! – In the beginning

0 0


proviso-drupalcon-prague-presentation

A holding place for our proviso presentation

On Github proviso / proviso-drupalcon-prague-presentation

Proviso

VAGRANT BASED DEVELOPMENT STANDARDIZED!

Created by Howard Tyson / Pat Connolly

Patrick Connolly

Howard Tyson

In the beginning

Local development was hard

You probably had to install Apache yourself...

...on Windows...

...so you just didn't

You'd just say "hey man", I'll FTP to the server and...

And then we built tools

  • MAMP

  • WAMP

  • XAMPP

And it worked...

...on my machine

And you had Drupal running locally!

...but was...

  • solr?
  • memcache?
  • varnish?
  • redis?
  • ssl?
  • selenium?

Then there was Vagrant

welcome to the future

Create virtual machines on any environment

Provision

The Rise of the Machines

run `vagrant up` and...

OH GOD!

THERE ARE SO MANY!

Drupal Vagrant

Oscar

Ariadne

Oscar

Quickstart

DrupalPro

Aegir-Up

Devshop

Drupal Lamp

Vagrant Dev VM

We've all been reinventing the wheel

Until now

Proviso is born

What is Proviso?

1. A Community

A Community Project To Assimilate Them All

Resistance is Futile

But don't we have a community?

Conversing not converging

  • http://groups.drupal.org/high-performance
  • http://groups.drupal.org/devops

Proviso is code as conversation

Converging on best practices

  • How do we lock down a box?
  • Can we turn that into runnable code instead of a checklist?

2. An Initiative

Working to find the best ways to share

(because sharing is caring)

3. A Vagrant Project

Need a development environment?

Use ours!

4. Accessible

The Kalamuna team is planning to integrate the Kalabox front end

5. Composable

Assemble your pieces

Pick from Provisioners

Pick from service packages

But How?

Multi-vendor

Starting conversations...

Can we be the TODO MVC of Config Management?

Built on the shoulders of giants

Upstream

Using exclusively community modules and cookbooks

Releases pinned with Librarian

Plugins pinned with Bindler

Automated Testing from Day One

Test Kitchen

Travis CI

+ Amazon

Cross-platform CI Testing

Composability

Ship with near parity for PaaS providers (Acquia, Pantheon, etc)

YAML component lists

Room to add your own components

Caution, even more hand waiving!

Scenario 1:

Platform Fluidity

So you've beenpreparing to hostubuntu 12.04

Halfway through project, client says

"We hear that linus endorses redhat linux 5.2. Can we do that?

This is not true.

HOWEVER...

Client isenterprise.

in other words it is true.

with Proviso we can see which platformsare supported and testedat a glance

What makes thispossible?

stack based on robust community cookbooks

infrastructure testingwith travis ci onmultiple supported platforms

Scenario 2: Imprecise Stack versioning:

MYSQL

Acquia running 5.5.34

I'm running 5.5.32

 

Meh?

It's all 5.5

No.

Patch release #33 changelog

Patch Release #33 Changelog

Scenario 3:Issue queue helpers

Can a standard tool help usfile better support issues?

patient Maintainer sally says:

"Can you reproduce that with Proviso?"

current approach

Install Proviso Run this:vagrant up vagrant ssh drush quick-drupal bug-test views drush vset foo bar

Potential future approachES...

Vagrant plugins thatdrive drush inside ouR vm'sfor common community tasks

Standardized Bug reports

vagrant proviso project-test viewsvagrant ssh -c "drush vset foo bar"
(Like a standard, local, ssh-able simplytest.me)

Easy patch testing

`vagrant proviso patch-test https://drupal.org/files/oauth-2027863-7.patch`
Opens page of issue number. Scrape for module and core version. Determines module dependencies. Find date of comment with this patch. Checkout HEAD commit from that date. Apply patch.

Scenario 4: Remote Deployment

You've beenworking locallywith proviso

Original Plan:host on a paas

But then

you realize...

Mongodb & node.js are freaking sweet.

Paas hosts like pantheon & acquiadon't support niche stacks.

extend proviso &

deploy remotely with

vagrant-aws

Questions?

We Want You!

For Proviso Contributor!

Join us on:

  • GitHub! http://github.com/proviso/proviso
  • IRC! #proviso
  • Google Groups! http://groups.google.com/proviso