1 of 151

DEVSHOP

Hassle-Free Hosting and Testing for Drupal

2 of 151

HASSLE FREE?!

3 of 151

EASY IS GOOD!

4 of 151

EASY TO INSTALL

$ wget https://raw.githubusercontent.com/opendevshop/devshop/0.x/install.sh

​

$ bash install.sh

​

5 of 151

EASY TO UPGRADE

$ devshop upgrade

​

​

​

6 of 151

EASY TO EXTEND

​

​

​

7 of 151

EASY TO USE

$ git push

​

​

​

8 of 151

9 of 151

BE PRODUCTIVE

​

10 of 151

we all want to be productive...

11 of 151

we all need a place to work

​

12 of 151

WORKSHOP�a place where builders work�a “workshop” has supplies, tools, space; everything needed to get the job done

​

​

​

​

13 of 151

DEVSHOP�a place where site builders work�a “devshop” has servers, tools, environments

everything needed to get the job done

​

​

​

​

14 of 151

�

To be successful a workshop needs to be:

clean, well organized,

& have tools that make the job easier

​

​

​

​

15 of 151

16 of 151

17 of 151

​

DEVSHOP IS...

​

18 of 151

​

DEVSHOP IS...

USER FOCUSED

​

​

19 of 151

WHO�is DevShop for?��

​

​

​

​

​

20 of 151

WHO�is DevShop for?��EVERYONE�involved in building Drupal websites

​

​

​

​

​

​

21 of 151

​

• sysadmin �• developer �• project manager �• qa manager

• cto

• client �• content manager �• designer

​

��

​

​

​

​

​

22 of 151

as a… i would like to

• sysadmin automate myself out of a job�• developer �• project manager �• qa manager

• cto

• client �• content manager �• designer

​

��

​

​

​

​

​

23 of 151

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

​

��

​

​

​

​

​

24 of 151

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

​

��

​

​

​

​

​

25 of 151

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

​

��

​

​

​

​

​

26 of 151

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

​

��

​

​

​

​

​

27 of 151

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

​

��

​

​

​

​

​

28 of 151

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

​

��

​

​

​

​

​

29 of 151

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

​

��

​

​

​

​

​

30 of 151

as a… i would NOT like to

• sysadmin

• developer

• project manager �• qa manager �• cto

• client �• content manager

• designer

​

​

��

​

​

​

​

​

31 of 151

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

​

​

��

​

​

​

​

​

32 of 151

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

​

​

��

​

​

​

​

​

33 of 151

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

​

​

��

​

​

​

​

​

34 of 151

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

​

​

��

​

​

​

​

​

35 of 151

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

​

​

��

​

​

​

​

​

36 of 151

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

​

​

��

​

​

​

​

​

37 of 151

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

​

​

��

​

​

​

​

​

38 of 151

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

​

��

​

​

​

​

​

39 of 151

WHAT�does Devshop give you?��

��

​

​

​

​

​

40 of 151

TIME

41 of 151

HOW�does Devshop do it?��

��

​

​

​

​

​

42 of 151

​

DEVSHOP INTERFACE

​

43 of 151

44 of 151

�ANY GIT REPO

45 of 151

46 of 151

47 of 151

48 of 151

49 of 151

50 of 151

51 of 151

‘BRANCH’ ENVIRONMENTS �update continuously on git push�

​

​

​

​

52 of 151

‘TAGGED’ ENVIRONMENTS �must be deployed manually�

​

​

​

​

53 of 151

54 of 151

55 of 151

56 of 151

57 of 151

58 of 151

DEVSHOP DEPLOY

59 of 151

STANDARDIZE�• your deployments�• deploy hooks

​

​

​

​

​

60 of 151

STANDARDIZE�• your deployments�• deploy hooks

​

“did you clear the cache?”

​

​

​

​

​

61 of 151

62 of 151

63 of 151

DEVSHOP TASKS

64 of 151

TASKS are drush commands�run on the back-end�triggered from the front-end

​

​

​

​

65 of 151

66 of 151

FORM FIELDS �become drush options�

​

​

​

​

67 of 151

$ drush @project.environment dl views ctools

68 of 151

$ drush @project.environment provision-deploy --update --cache

69 of 151

70 of 151

RUNNING TASKS �is better than running commands�

​

​

​

​

71 of 151

RUNNING TASKS �is better than running commands�• logs are saved�

​

​

​

​

72 of 151

RUNNING TASKS �is better than running commands�• logs are saved�• permissions control access�

​

​

​

​

73 of 151

RUNNING TASKS �is better than running commands�• logs are saved�• permissions control access�• history is maintained�

​

​

​

​

74 of 151

DEVSHOP TOOLS

75 of 151

76 of 151

• cron �

​

​

​

77 of 151

• cron �• backups�

​

​

​

78 of 151

• cron �• backups�• lock environment�

​

​

​

79 of 151

• cron �• backups�• lock environment�• error logging

​

​

​

​

80 of 151

DEVSHOP LOGS

81 of 151

82 of 151

83 of 151

84 of 151

$ drush dl views ctools

$ git commit

$ git push

85 of 151

86 of 151

$ drush features-update-all

$ git commit

$ git push

87 of 151

DEVSHOP SERVERS

88 of 151

89 of 151

EASY TO SET UP�$ devshop remote:install

�

​

​

​

​

90 of 151

91 of 151

EASY TO CONFIGURE��

​

​

​

​

92 of 151

EASY TO CONFIGURE��

​

​

​

​

93 of 151

DEVSHOP TEST

94 of 151

Given I am on the homepage

Then I should see “Welcome!”

95 of 151

Given I am on the homepage

Then I should see “Welcome!”

ACTUAL

BEHAT

TEST!

96 of 151

97 of 151

98 of 151

AVOID

EXPONENTIAL

COMPLEXITY

99 of 151

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 |

100 of 151

101 of 151

EVERYONE

CAN CONTRIBUTE

102 of 151

103 of 151

104 of 151

THE “STANDARD”� ��DEV > TEST > LIVE

​

​

​

​

105 of 151

THE “STANDARD”�workflow has problems��DEV > TEST > LIVE

​

​

​

​

106 of 151

PROBLEMS �with dev > test > live

​

​

​

​

​

107 of 151

PROBLEMS �with dev > test > live �• multiple efforts collide on master branch

​

​

​

​

​

108 of 151

PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code

​

​

​

​

​

109 of 151

PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code

• constantly rebuilding environments

​

​

​

​

​

110 of 151

PROBLEMS �with dev > test > live �• multiple efforts collide on master branch�• deployment of incomplete code

• constantly rebuilding environments

• confusion over state of those environments

​

​

​

​

​

111 of 151

THERE IS A �BETTER WAY ��

​

​

​

​

112 of 151

PULL REQUEST

ENVIRONMENTS

113 of 151

PULL REQUEST �driven development�

​

​

​

​

​

114 of 151

PULL REQUEST �driven development�• open a pull request: get a new environment

​

​

​

​

​

​

115 of 151

PULL REQUEST �driven development�• open a pull request: get a new environment�• a perfect clone of your production website on a new git branch

​

​

​

​

​

​

116 of 151

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

​

​

​

​

​

​

​

117 of 151

118 of 151

119 of 151

120 of 151

121 of 151

122 of 151

123 of 151

PULL REQUEST �driven development�• github integration gives developers instant feedback on the quality of their code

​

​

​

​

​

​

​

124 of 151

125 of 151

126 of 151

127 of 151

128 of 151

DEVSHOP ARCHITECTURE

129 of 151

130 of 151

WHY AEGIR?

• automatic set up of apache, files, database, settings.php

​

�

​

​

131 of 151

132 of 151

​

• automatic set up of apache, files, database, settings.php�• tracks every module, every theme, every version

�

​

​

133 of 151

134 of 151

​

• automatic set up of apache, files, database, settings.php�• tracks every module, every theme, every version �• secure by default

​

�

​

​

135 of 151

DEVSHOP FUTURE

136 of 151

137 of 151

TERRA OPS

​

138 of 151

DEVSHOP USE CASE

139 of 151

140 of 151

141 of 151

BUILD ON DEVSHOP

​

142 of 151

TEST ON DEVSHOP

​

143 of 151

HOST ANYWHERE

​

144 of 151

MOVIE

TIME!

145 of 151

TRY DEVSHOP�http://getdevshop.com

​

146 of 151

CONTRIBUTE�github.com/opendevshop

​

147 of 151

CONNECT�@opendevshop

getdevshop.com

​

148 of 151

SUPPORT�http://devshop.support

​

149 of 151

DevShop Workshop

THURSDAY - 11:45-13:00

Room: 132

Jon Pugh

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.

​

150 of 151

Q & A�

​

151 of 151

DevShop is a project of ThinkDrop