Slide 1

Slide 1 text

#WHERE’S YOUR REPO? DevOps leads the way to better Drupal development experience level: Advanced time slot: Wednesday · 02:15-03:15 room: G - Trellon | 4th floor speaker: Kevin Champion

Slide 2

Slide 2 text

Kevin Champion developer independent contractor 4 years Drupal

Slide 3

Slide 3 text

#WHERESYOURREPO?

Slide 4

Slide 4 text

#WHERESYOURREPO?

Slide 5

Slide 5 text

#WHERESYOURREPO?

Slide 6

Slide 6 text

#WHERESYOURREPO?

Slide 7

Slide 7 text

DevOps is critical to development

Slide 8

Slide 8 text

DevOps is not separate from development

Slide 9

Slide 9 text

DevOps does not *just* help development

Slide 10

Slide 10 text

DevOps is not just *after* development

Slide 11

Slide 11 text

DevOps is not just deploying environment to environment

Slide 12

Slide 12 text

DevOps is farther down the stack

Slide 13

Slide 13 text

DevOps is critical to *HOW* you develop

Slide 14

Slide 14 text

#WHERE’S YOUR REPO? is important

Slide 15

Slide 15 text

Camp keep-it-simple

Slide 16

Slide 16 text

walkah.net/blog/every-drupal-site-install-profile/

Slide 17

Slide 17 text

Camp only-what-you-need

Slide 18

Slide 18 text

Install profile

Slide 19

Slide 19 text

Not in repo

Slide 20

Slide 20 text

Must run builds

Slide 21

Slide 21 text

Drush Make recurses

Slide 22

Slide 22 text

download make file develop your git flow upstream changes? Builds in development run build

Slide 23

Slide 23 text

Camp only-what-you-need Camp keep-it-simple vs. pragmatists purists

Slide 24

Slide 24 text

~93% smaller codebase ~9,031 fewer files ~1,007,961 fewer lines of code What’s the difference?

Slide 25

Slide 25 text

Benefits of the purist everything in its right place reusable components

Slide 26

Slide 26 text

Architecture is important

Slide 27

Slide 27 text

Builds!? 7 levels of building hell additional steps extra time processor intensive inherently flaky hard to learn team dilemma devops headache

Slide 28

Slide 28 text

can we be pragmatic purists? practical architects?

Slide 29

Slide 29 text

Yes

Slide 30

Slide 30 text

download make file develop your git flow upstream changes? Confusing dev and devops run build

Slide 31

Slide 31 text

dev devops download make file run build develop your git flow serve build result in vhost

Slide 32

Slide 32 text

additional steps extra time processor intensive inherently flaky hard to learn team dilemma devops headache Separating dev and devops 7 levels of building hell

Slide 33

Slide 33 text

devops download make file deploy by pulling from builds repo commit build result to separate builds repo build triggered run build

Slide 34

Slide 34 text

dev develop your git flow upstream changes? pull latest build from builds repo

Slide 35

Slide 35 text

additional steps extra time processor intensive inherently flaky hard to learn team dilemma devops headache Setup alleviates build woes 7 levels of building hell

Slide 36

Slide 36 text

1. Set up build server directory structure 2. Create builds repo, set remotes, first commit 3. Run first build 4. Commit first build to builds repo 5. Deploy first build 6. Automate build process Deep dive Set up builds server

Slide 37

Slide 37 text

#1 Build server directories

Slide 38

Slide 38 text

#2 Set up builds repo builds_repo build vhost

Slide 39

Slide 39 text

#3 Run first build

Slide 40

Slide 40 text

#4 Commit build to builds repo build

Slide 41

Slide 41 text

#5 Deploy first build vhost

Slide 42

Slide 42 text

devops download make file deploy by pulling from builds repo commit build result to separate builds repo build triggered run build

Slide 43

Slide 43 text

#6 Automate build process nightly? git hooks? github polling? Trigger continuous integration server? bash scripts? drush commands? Process

Slide 44

Slide 44 text

Drush git_ops github.com/kevinchampion/drush_gitops gitops_init: set up build server directory structure gitops_build: run build, commit result, deploy build server gitops_clone: clones builds repo, sets up working repos gitops_pull: pulls latest build, replaces working repos working environment

Slide 45

Slide 45 text

DEMO

Slide 46

Slide 46 text

DevOps is critical to *HOW* you develop

Slide 47

Slide 47 text

#WHERE’S YOUR REPO? becomes... # Where are all of your repos because you set up a DevOps flow before you even got started developing and thus efficiently make use of reusable components without having to sacrifice on your ability to deploy your sites from one environment to another ?

Slide 48

Slide 48 text

[email protected] @kevinchampion drupal.org/u/kevinchampion github.com/kevinchampion/drush_gitops I’m available for work Thank you EVALUATE THIS SESSION: AUSTIN2014.DRUPAL.ORG/SESSION/DEVOPS-LEADS-WAY-BETTER-DRUPAL-DEVELOPMENT