Drupal IntegratedDevOps Workflow          make yr shit right, son                                                    Craig...
About The PresentersSteve Rifkin  Site Architect, Consultant, leans toward front end UI / UX  But not afraid of the backen...
About Crifkin      Craig McEldowney + Steve Rifkin = crifkin            Craig gets less namespace, but more clout● Virtual...
Agenda● Framing the Problem● Playing the DevOps workflow game  ○ Vagrant  ○ Chef Server● "The Cloud Mentality" -- HA/HP fr...
In the beginning               YOU build sites.             YOU do quality work.            More people hire YOU.         ...
Framing the Problem              Developer/Process side      How do I support Client K who is running in infrastructure Y ...
Framing the Problem                           Team side  I need to hand off some coding/theming/support        responsibil...
Framing the Problem                         Client sideI need to be able to handle configuration changes,    scale for tra...
Playing the DevOps        workflow game  Lets flip the problem on its head. If we know where were headed, we can makesome ...
In a perfect world... How do we meet the clients needs for           HA/HP/scaling?Configuration management and a supporti...
Huh?                                                 Craig McEldowneycrifkin.com   @crifkin   SandCAMP 2013 1/25/12       ...
Huh? (Chef Server)● Chef = Configuration Management System● Written in Ruby● Idempotent execution -- e.g. running recipe(s...
How does this help me? I wrote all this cool chef stuff (recipes, roles). Howdoes this help me with my process/team and my...
Huh? (Vagrant)● Ruby command-line toolset for managing VirtualBox   VMs● Already built to pull configuration from Chef,   ...
How does it fit together?Why spend a bunch of time putting together a stackand methodology for your production environment...
Chef: EnvironmentsChef allows you to create and assign nodes/servers toenvironments. Environments allow you to overrideser...
Chef: EnvironmentsBut instead of doing it in a stupid and boring way● Lovingly handcraft servers and back them up   hourly...
The Cloud MentalitySome hard realities of cloud computing...● Your servers are not beautiful and unique   snowflakes● Thin...
The Cloud MentalityThe most important thing about your server is itsconfiguration. Chef takes care of this.Chef has recipe...
The Cloud MentalityThe difference between production and staging is thenumber of servers. The difference between stagingan...
Prod/Live                                                 Craig McEldowneycrifkin.com   @crifkin   SandCAMP 2013 1/25/12  ...
Staging                                                 Craig McEldowneycrifkin.com   @crifkin   SandCAMP 2013 1/25/12    ...
Local Dev                                                 Craig McEldowneycrifkin.com   @crifkin   SandCAMP 2013 1/25/12  ...
Chef Server is the glue                                                    Craig McEldowney   crifkin.com   @crifkin   San...
Huh? (Howzit fit together?)Local Dev Setup:Install VirtualBoxInstall VagrantEdit Vagrantfile and point it at your chef ser...
Um...right, this is DrupalGotchas and considerations when using templatedconfiguration for Drupal:1. DB credentials/discov...
More advanced use-casesSet up Continuous Integration   Use Jenkins or other post commit hooks to automagicallyspin up a st...
In a less perfect world...                Client is committed to existing              resources/deployment strategies?●  ...
Questions/Demo
Upcoming SlideShare
Loading in …5
×

Drupal Integrated DevOps Workflow

2,347 views
2,234 views

Published on

Slide Deck from our 2013 SANDCamp presentation. More of the content was likely captured in the conversation, as we used this deck as a jumping off point for the chat, but there's still some worthwhile concepts in there.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,347
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Drupal Integrated DevOps Workflow

  1. 1. Drupal IntegratedDevOps Workflow make yr shit right, son Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  2. 2. About The PresentersSteve Rifkin Site Architect, Consultant, leans toward front end UI / UX But not afraid of the backend?...ahem...can whip up some mean php when called upon) 7+ years building sites and data modeling (RoR) LA Drupal User Group Organizer Nicer than CraigCraig McEldowney Backend ninja, SOLR maven, Level 36 lawful evil Drupal mage 14 years building content management systems, 7+ years Drupal Babys got back-end development. not so keen on UI / UX Crankier than Steve Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  3. 3. About Crifkin Craig McEldowney + Steve Rifkin = crifkin Craig gets less namespace, but more clout● Virtual CTO/CIO Services● Cloud architecture / turnkey HA/HP solutions● Developers looking for interesting problems to solve Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  4. 4. Agenda● Framing the Problem● Playing the DevOps workflow game ○ Vagrant ○ Chef Server● "The Cloud Mentality" -- HA/HP from local dev to production Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  5. 5. In the beginning YOU build sites. YOU do quality work. More people hire YOU. ... YOU become the limiting factor in this equation.YOU need to scale yourself, your process, your team, your clients. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  6. 6. Framing the Problem Developer/Process side How do I support Client K who is running in infrastructure Y while still supporting Client 4 who is running in infrastructure 11.How do I ingest new clients, yet still be able to support older ongoing clients without getting cranky? Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  7. 7. Framing the Problem Team side I need to hand off some coding/theming/support responsibilities to another resource...Whats the fastest/cheapest/most effective way to get them up and running so I can scale development efforts? Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  8. 8. Framing the Problem Client sideI need to be able to handle configuration changes, scale for traffic, address and balance High Performance/High Availability requirements, and provide a platform to grow with the client. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  9. 9. Playing the DevOps workflow game Lets flip the problem on its head. If we know where were headed, we can makesome smart choices on the way to solving them. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  10. 10. In a perfect world... How do we meet the clients needs for HA/HP/scaling?Configuration management and a supporting cloud platform. Crifkin spells this Chef + AWS = ChAWS. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  11. 11. Huh? Craig McEldowneycrifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  12. 12. Huh? (Chef Server)● Chef = Configuration Management System● Written in Ruby● Idempotent execution -- e.g. running recipe(s) multiple times will result in the same outcome● Track stack architecture and allow servers to register with the stack and query for specific resources● Other options: Puppet, Ansible, bash scripts and/or hating your life Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  13. 13. How does this help me? I wrote all this cool chef stuff (recipes, roles). Howdoes this help me with my process/team and my own efforts working for multiple clients? The answer rhymes with Ragrant Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  14. 14. Huh? (Vagrant)● Ruby command-line toolset for managing VirtualBox VMs● Already built to pull configuration from Chef, Puppet, Bash, and other scripting methodologies● Package Virtual Environments● Multi-VM Host Environments-- e.g. run a scaled out production-like stack on your local environment Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  15. 15. How does it fit together?Why spend a bunch of time putting together a stackand methodology for your production environment,without giving yourself options and tools to manageyour local development efforts?Lets talk about environments... Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  16. 16. Chef: EnvironmentsChef allows you to create and assign nodes/servers toenvironments. Environments allow you to overrideserver attributes/metadata, configuration parameters,recipe run lists, etc.So what if...We break up our deployment into environments, withresources to match each environments needs. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  17. 17. Chef: EnvironmentsBut instead of doing it in a stupid and boring way● Lovingly handcraft servers and back them up hourly, daily, weekly, never?● Rats nest of client environment on local machine● Steve doesnt understand what I do. I dont understand what he does...custom scripting.Lets use the "Cloud Mentality" Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  18. 18. The Cloud MentalitySome hard realities of cloud computing...● Your servers are not beautiful and unique snowflakes● Things will break and you will cry● Steve is nicer about these things than I am Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  19. 19. The Cloud MentalityThe most important thing about your server is itsconfiguration. Chef takes care of this.Chef has recipes and roles to define what a Webhead is, whata Reverse Proxy is, what a BananaFarm is.So crunch all you want, well make more. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  20. 20. The Cloud MentalityThe difference between production and staging is thenumber of servers. The difference between stagingand dev is the number of servers. The differencebetween dev and your local machine is....The number of Virtual Machines! Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  21. 21. Prod/Live Craig McEldowneycrifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  22. 22. Staging Craig McEldowneycrifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  23. 23. Local Dev Craig McEldowneycrifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  24. 24. Chef Server is the glue Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  25. 25. Huh? (Howzit fit together?)Local Dev Setup:Install VirtualBoxInstall VagrantEdit Vagrantfile and point it at your chef serverSpin up virtual machine(s)Download DB/file assets from S3 or local-- use drush aliases to take DB dumpsfrom DB slaves where possibleEdit code on local machine IDE by either mounting WebDAV drive, or setting up nfsshare into VagrantExtra credit for running this all from a bash script and/or through a recipe in Chef!Double credit for writing a homebrew...you Mac nerds Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  26. 26. Um...right, this is DrupalGotchas and considerations when using templatedconfiguration for Drupal:1. DB credentials/discovery2. Other resources: i. memcached ii. SOLR iii. Reverse Proxy iv. etc...3. Providing options for environment specific overrides -- e.g. no preprocess css inDev, etc. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  27. 27. More advanced use-casesSet up Continuous Integration Use Jenkins or other post commit hooks to automagicallyspin up a stack in a dedicated testing environment, and runload, smoke, other testsDashboard controls for controlling environments-- a la Aegir,but with Chef Server controlling the system configuration, andmanage scaling parameters (autoscale), scheduling scaling,etc. Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  28. 28. In a less perfect world... Client is committed to existing resources/deployment strategies?● If this doesnt pose a business risk over an acceptable time frame, then save that fight for another day...● Migrate some portion of their stack to new environment-- e.g. dev server/staging server? OR● Use smart DevOps magic for you and your developer(s) to your side of this part of the process tight and efficient. Build up recipes/configurations so that they can be used in prod later on Craig McEldowney crifkin.com @crifkin SandCAMP 2013 1/25/12 Steve Rifkin
  29. 29. Questions/Demo

×