DEVSHOP
Hassle-Free Hosting and Testing for Drupal
HASSLE FREE?!
EASY IS GOOD!
EASY TO INSTALL
$ wget https://raw.githubusercontent.com/opendevshop/devshop/0.x/install.sh
$ bash install.sh
EASY TO UPGRADE
$ devshop upgrade
EASY TO EXTEND
EASY TO USE
$ git push
BE PRODUCTIVE
we all want to be productive...
we all need a place to work
WORKSHOP�a place where builders work�a “workshop” has supplies, tools, space; everything needed to get the job done
DEVSHOP�a place where site builders work�a “devshop” has servers, tools, environments
everything needed to get the job done
�
To be successful a workshop needs to be:
clean, well organized,
& have tools that make the job easier
DEVSHOP IS...
DEVSHOP IS...
USER FOCUSED
WHO�is DevShop for?��
WHO�is DevShop for?��EVERYONE�involved in building Drupal websites
• sysadmin �• developer �• project manager �• qa manager
• cto
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer �• project manager �• qa manager
• cto
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager �• qa manager
• cto
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager
• cto
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager ensure they build correctly
• cto
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager ensure they build correctly
• cto ensure all projects run smoothly
• client �• content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager ensure they build correctly
• cto ensure all projects run smoothly
• client ensure my project is successful • content manager �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager ensure they build correctly
• cto ensure all projects run smoothly
• client ensure my project is successful�• content manager create great content �• designer
��
as a… i would like to
• sysadmin automate myself out of a job�• developer build websites �• project manager ensure developers can build�• qa manager ensure they build correctly�• cto ensure all projects run smoothly�• client ensure my project is successful�• content manager create great content�• designer design beautiful websites
��
as a… i would NOT like to
• sysadmin
• developer
• project manager �• qa manager �• cto
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer
• project manager �• qa manager �• cto
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager �• qa manager �• cto
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers
• qa manager �• cto
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers �• qa manager yell at my team �• cto
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers�• qa manager yell at my team �• cto see everything failing around me
• client �• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers�• qa manager yell at my team�• cto see everything failing around me
• client see my website go down�• content manager
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers�• qa manager yell at my team�• cto see everything failing around me
• client see my website go down�• content manager lose any of my content
• designer
��
as a… i would NOT like to
• sysadmin get a call at 2 a.m
• developer solve a server crash
• project manager have dissatisfied customers�• qa manager yell at my team�• cto see everything failing around me
• client see my website go down�• content manager lose any of my content
• designer be saddened by my websites
��
WHAT�does Devshop give you?��
��
TIME
HOW�does Devshop do it?��
��
DEVSHOP INTERFACE
�ANY GIT REPO
‘BRANCH’ ENVIRONMENTS �update continuously on git push�
‘TAGGED’ ENVIRONMENTS �must be deployed manually�
DEVSHOP DEPLOY
STANDARDIZE�• your deployments�• deploy hooks
STANDARDIZE�• your deployments�• deploy hooks
“did you clear the cache?”
DEVSHOP TASKS
TASKS are drush commands�run on the back-end�triggered from the front-end
FORM FIELDS �become drush options�
$ drush @project.environment dl views ctools
$ drush @project.environment provision-deploy --update --cache
RUNNING TASKS �is better than running commands�
RUNNING TASKS �is better than running commands�• logs are saved�
RUNNING TASKS �is better than running commands�• logs are saved�• permissions control access�
RUNNING TASKS �is better than running commands�• logs are saved�• permissions control access�• history is maintained�
DEVSHOP TOOLS
• cron �
• cron �• backups�
• cron �• backups�• lock environment�
• cron �• backups�• lock environment�• error logging
DEVSHOP LOGS
$ drush dl views ctools
$ git commit
$ git push
$ drush features-update-all
$ git commit
$ git push
DEVSHOP SERVERS
EASY TO SET UP�$ devshop remote:install
�
EASY TO CONFIGURE��
EASY TO CONFIGURE��
DEVSHOP TEST
Given I am on the homepage
Then I should see “Welcome!”
Given I am on the homepage
Then I should see “Welcome!”
ACTUAL
BEHAT
TEST!
AVOID
EXPONENTIAL
COMPLEXITY
Scenario Outline: Private Blogs are visible and editable.
Given I am logged in as a user with the “<role>” role
And I am viewing a blog with the title “My Blog Post”
Then I <visibility_view> see “My Blog Post”
And I <visibility_edit> see “Edit”
Examples:
| role | visibility_view | visiblity_edit |
| anonymous | should not | should not |
| authenticated | should | should not |
| moderator | should | should |
| administrator | should | should |
EVERYONE
CAN CONTRIBUTE
THE “STANDARD”� ��DEV > TEST > LIVE
THE “STANDARD”�workflow has problems��DEV > TEST > LIVE
PROBLEMS �with dev > test > live
PROBLEMS �with dev > test > live �• multiple efforts collide on master branch
PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code
PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code
• constantly rebuilding environments
PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code
• constantly rebuilding environments
• confusion over state of those environments
THERE IS A �BETTER WAY ��
PULL REQUEST
ENVIRONMENTS
PULL REQUEST �driven development�
PULL REQUEST �driven development�• open a pull request: get a new environment
PULL REQUEST �driven development�• open a pull request: get a new environment�• a perfect clone of your production website on a new git branch
PULL REQUEST �driven development�• open a pull request: get a new environment�• a perfect clone of your production website on a new git branch�• multiple tasks can be developed in parallel
PULL REQUEST �driven development�• github integration gives developers instant feedback on the quality of their code
DEVSHOP ARCHITECTURE
WHY AEGIR?
• automatic set up of apache, files, database, settings.php
�
• automatic set up of apache, files, database, settings.php�• tracks every module, every theme, every version
�
• automatic set up of apache, files, database, settings.php�• tracks every module, every theme, every version �• secure by default
�
DEVSHOP FUTURE
TERRA OPS
DEVSHOP USE CASE
BUILD ON DEVSHOP
TEST ON DEVSHOP
HOST ANYWHERE
MOVIE
TIME!
CONTRIBUTE�github.com/opendevshop
CONNECT�@opendevshop
getdevshop.com
DevShop Workshop
THURSDAY - 11:45-13:00
Room: 132
Have questions about DevShop? �Want to get OpenDevShop up and running? �Already have it running and want to share your story?�Come join us to discuss the open source drupal �hosting & testing platform DevShop.People will �be available to help others and discuss the �future of the project.
Terra Planning �& Strategy
THURSDAY - 13:00-14:00
Room: 132
Jon PughThis BoF is for those interested in the �new tool for development, deployment, testing, �and scaling sites with Docker and other tools. �Come join us as we discuss the next phase of �development and plan for the future.
If you are interested in a quick training we will �also be available.
Q & A�
DevShop is a project of ThinkDrop