SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
DevOps for Drupal: Why
We Cook with Chef
Wednesday May 22nd
DevOps Track
Beginner
Overview: Purpose
Why are we all here?
•  Interested in DevOps practices
•  Interested in automation tools like Chef
•  Interested in using them with Drupal
+
Overview: Sharing
How are we going to do this?
•  Team style presentation and discussion with
views from both sides - Development and
Operations
•  Share our experiences and examples... we
will be keeping it real
•  We are NOT doing a tool comparison
+
Overview: Learn
What do we hope you will learn?
•  Why DevOps matters
•  Why automation is a must
•  Why you can use Chef to help yourselves,
make life easier, and save time
+
For more info on Chef, check out fellow
DevOps track session:
The Joy of Cooking - Whip Up a Drupal
Environment with Chef
•  Thursday May 23rd at 2:15pm
•  OR 203
•  Presented by Opscode's Nathen Harvey
Overview: More on Chef +
Who We Are
A software development shop...
•  specializing in custom Drupal development,
systems integration, mobile, DevOps, and
24x7 support
•  based in Chicago with 30+ team members
worldwide
...and yes we are hiring! Come talk to us!
+
Who We Are
Playing the part of:
Moderator and
Product Owner
@ Promet Source:
Director of Products
jay@promethost.com
+
Jay Uhlinger
Who We Are
Playing the part of:
Development
@ Promet Source:
Solutions Architect
will@promethost.com
drupal.org: wamilton
twitter/hub: @winmillwill
+
Will Milton
Who We Are
Playing the part of:
Operations
@ Promet Source:
Systems Administrator
greg@promethost.com
+
Greg Palmier
Audience Quiz Time
How many are Developers? (a Will)
+
CC Image courtesy of Pedro Lozano on Flickr
Audience Quiz Time
How many are Sysadmins? (a Greg)
+
CC Image courtesy of Sharyn Morrow on Flickr
Audience Quiz Time
How many are both? (changing Prod servers)
+
CC Image courtesy of Arthur Caranta on Flickr
Audience Quiz Time
How many are other? (the Product Manager)
+
Audience Quiz Time
How many are using automated configuration
management tools and processes now in
your everyday work with Drupal?
How many are using Chef?
+
DevOps: What It Is
Key Culture
•  Foster a collaborative working relationship between
Development and Operations
Key Concept
•  Infrastructure as code
Key Results
•  Higher deployment rates
•  Better reliability, stability, and resilience of Production
+
DevOps: 3 Key Patterns
1. Make environments available early in the
Development process
2. Shorten and amplify feedback loops
3. Create reusable deployment procedures
+
DevOps: What It Isn't
It is not a collection of bash, Drush, insert
scripts here, etc.
+
DevOps is not about the tools... they don't fix everything
magically
But DevOps relies on some tools to implement its
principles
DevOps: Why Is It Important
One-off environments and complicated manual
builds and deployments = FAILURE
Must automate to meet business demands --
support agile, lean, faster, better...
Every environment is Production to someone
Drupal is not different -- all of these apply
+
A Classic Scenario
Jay: Will, you said this was working.
Will: It works in Dev.
Jay: Greg, can you look into why it isn't working
in Prod?
Greg: Ok. (later on) @#$%! Dev and Prod are
not the same!
+
Another Classic One
The Blog Post: Installing Drupal on AWS
1. Start wizard
2. 50+ steps later
3. A Drupal install
+
Why We Chose Chef
The orange color matches ours
of course!
We already had experience (Marius)
doing DevOps work with Chef in
Bay Area with leading tech companies
We build Drupal applications -- we found Chef
to be a good fit for application configuration
management
+
The Operations part...
...out with the old and in with the new
+
Our Operations Story
How we started with Chef at Promet
Inconsistency was killing our time
How realistic was automation and configuration
management of all of our stuff
+
Wasting Time
You are not in the sudoers file. This incident will
be reported.
$ which git
$
Fatal error: Class 'PDO' not found in
blahblahblah
All of these messages diverted your work
+
Manual Config Run Amok
•  Dev environments != Prod environments
•  Shared Dev/Prod/?? environments were
continually bloated
•  Over time modifications amounted to more
inconsistency between environments
•  Documentation was lacking
o  No records explaining changes
o  Constant paper trail "paving"
o  No great place for it anyways (what wiki?!?)
•  More customizations -> High Fragility
+
Typing Faster != Solution
•  Runbooks, Bash and SSH
o  Process to stand up new infrastructure was done
manually via a "runbook”
•  Any configuration time was repeated
extensively
•  Environment “discovery” bled time
o  Snooping around to analyze how things were initially
stood up and potentially modified
(caching, etc.)
•  Endless SSH-ing into servers
+
Chef Migration
•  In with the New
o  2 dedicated servers
§  VM hosts
o  Similar model, consolidated
o  Entirely Chef managed
o  Individual client Chef-spun Dev instances
•  Stand Up, QA, and Cutover
o  Virtualize legacy
o  Considerations mainly PHP
•  Monitoring customizations
•  Special clients
o  Non-Drupal
o  Contractually unique
+
Chef Migration
And migrating wasn't a complete nightmare....
+
Righting the Ship
•  Server configuration in Git
o  Mitigated "paper trail"
o  Team awareness of configs by notifications
o  PHP, Apache, MySQL
•  System config changes pushed to Chef for
Server propagation
o  No more endless SSH-ing
o  No more runbook config for every server
o  Undoes "helpful" customizations by others
•  Direct between me and Config Mgmt
o  Configuration entirely “local” with Vagrant
o  Git driven accountability and awareness (--stat)
o  `knife` is to Chef as drush is to Drupal
+
Client Ownership
•  Clients maintain ownership of their assets
o  Any platform with a knife plugin
o  Legacy apps migrated
o  Non-Drupal or Promet "old" clients
•  Give us their Keys
o  Let us be the Designated Driver
o  Developers drop in, get pitted
+
Client Ownership
•  Excessive customization (not perfect)
o  Non-Drupal clients or other work
o  More so, use client's Hosted Chef
•  Contract flexibility
o  No Dysfunctional Marriage
•  Honor prior client / hosting relationships
o  Help clients where they are
+
Things That Are Solved
•  User Configs
o  .gitconfig
o  .tmux.conf
o  .ssh/config
o  shell customizations
o  Not necessary but....doable
•  Server Configs
o  logwatch
o  mail
o  mysql
o  apache
o  ssh
o  automysqlbackup
+
Sysadmin Transformation
Have time to explore/make new tools
Do support in a consistent fashion
Automate all the Things!
"Grow" your team and infrastructure not with
numbers but with talent
We do more work with less resources!
+
Sysadmin Team Evolution
We even spun-off a Startup company for
infrastructure and applications automation
and scaling using Chef in the Bay Area (non-
Drupal)
I don't care what you automate with... pick one
and do it!
+
The Dev part...
...it's not what you think
+
What I Thought I Would Say
•  What it was like...
•  How it sucked for Devs
•  How we changed it
•  How it sucked in new ways
•  How that lead to the new thing
•  Repeat....
•  Where we are now
•  What's really fun about this for Devs
+
The Problem
•  We went through too much shit
•  It's not even fun to talk about
•  It's probably boring
•  Someone else already said what I was trying
to justify
•  You're probably the choir if you're here
+
Drupal: OH @crell
"If you're not using Features, you are not doing
Drupal professionally"
Also:
•  If you don't have a one step build, you aren't
using Features correctly
=> Sucking at doing Drupal professionally
•  Configuration module is also probably fine
•  It's going into core
+
So Now My Presentation Is
•  What we're doing now
•  Why you shouldn't NOT do what we're doing
•  Actual examples of how it has helped
•  Why Chef is really awesome
•  A surprise
+
What We're Doing Now
•  Everything you need in the repo
o  Any scripts or scripting examples
o  README files
o  (small(-ish)) csv's/xml/etc
o  ...pretty much any text file that is not too large and is
useful
•  ...Still need a way to automate sourcing
archives of files and sql...
•  Vagrantfile + Berksfile
+
Berks What?
+
+
Kirkberks? +
What a Dev Has to Do on
Our Team
•  Install git somehow
•  Install the vagrant package
•  Install the vagrant-berkshelf plugin
•  git clone/pull && cd-to-the-root
•  vagrant up (or reload)
•  edit the hosts file or use dnsmasq or similar
+
Some Concrete Examples of
This Helping Us Do Better
•  Audits
o  http://reload.github.io/phing-drupal-template
o  Not perfect...
o  But now no one has to repeat what is automated
•  Every single deployment ever since
o  Your Production push should not be the first time
you attempt sync'ing to a Production environment
o  ...unless you crave excitement
•  Last minute accommodations
o  Ever test RewriteBase?
+
Add the .htaccess
directive... +
...change the docroot in code!
Potential Examples: You
Can't Prove the Negative
•  PECL/Pear packages
o  Shame on professionals who can't figure it out...
o  ...but shame on me for betting the project
•  Anything to do with email ever since ever
•  Anything to do with external services
o  ...memcached
o  ...SOLR
o  ...even MySQL
+
Why You Shouldn't NOT Do
As We Do
Challenges you can deal with, excuses
that are bullshit
On stupid things people say re: vagrant and
chef
•  We make great docs!
•  My native environment is fine
•  Virtualization consumes resources
•  I don't have enough time
+
+
My Native Environment is
Fine
1. No, it isn't
•  Your job is to ship to your downstream
o  ...not manicure and fetishize your tools
•  You are getting strictly less help than you
could get
o  ...even if you're getting a lot of help
o  ...even if you're paying for help
•  You are keeping yourself from helping
+
My Native Environment is
Fine (cont'd)
2.Your native environment is personal
•  You may even obsess over it
•  You may be completely wrong
•  You will be happier without each other
+
Virtualization Consumes
Resources +
I Don't Have Time...
...to do everything perfectly
•  We didn't either, and we're doing far better
than we were
•  We do not have a massive continuous
delivery, cloud orchestration and scaling
infrastructure
•  ... But now what we have is in code
+
Chef is Really Awesome
...Puppet is probably cool too
•  Stewardship and leadership
•  Constantly evolving ecosystem
•  A community hell-bent on sharing
•  Kicks ass even if you don't
+
So Easy I Can Share It with
You!
Don't try it on this connection
bash <(curl -L -s http://bit.ly/10McZSZ)
github.com/promet/drupal_cookbook
Get to work already!
+
Why You Should Use this
Project (or something like it)
We must advance the state of the art for Drupal
deployment and application management
The CMS that is easiest to flexibly deploy will
be the CMS of the future
All the features and D8 config exports in the
world can't help you if you can't automate it
+
Other Projects/Strategies
•  If you have a dope Jenkins workflow...
o  help me automate it with Chef so we can all use it!
•  Please use Puppet if it suits you
o  and be vocal about hardcoded conventions that
make your work hard
•  Kraftwagen - kraftwagen.org
•  Ariadne by patcon - github.com/
myplanetdigital/vagrant-ariadne
+
The Wrap-Up part...
...what should you remember
+
Key Summary Points
Process and team is the focus
•  Get your Devs and Sysadmins in the same
room and start communicating
Tools are there to help
•  Start automating now
Chef is an awesome tool
•  It works and it helps
+
Q&A
Ask us questions now
Talk to us afterward
Stop by and see us at Booth 201
Thanks!
+
Feedback?
Evaluate session at:
portland2013.drupal.org/schedule

Más contenido relacionado

La actualidad más candente

Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
Christian Heilmann
 
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
ajevans
 

La actualidad más candente (20)

Getting agile with drupal
Getting agile with drupalGetting agile with drupal
Getting agile with drupal
 
DevOps game marshmallow challenge
DevOps game marshmallow challengeDevOps game marshmallow challenge
DevOps game marshmallow challenge
 
Community building lessons from Ansible
Community building lessons from AnsibleCommunity building lessons from Ansible
Community building lessons from Ansible
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
 
Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126
 
Web Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas VersionWeb Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas Version
 
Untangling the web week 2 - SEO
Untangling the web week 2 - SEOUntangling the web week 2 - SEO
Untangling the web week 2 - SEO
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
WordCamp, Cape Town 2017
WordCamp, Cape Town 2017WordCamp, Cape Town 2017
WordCamp, Cape Town 2017
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
 
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
 
Back To Square One: Building a WordPress Starter Development Kit
Back To Square One: Building a WordPress Starter Development KitBack To Square One: Building a WordPress Starter Development Kit
Back To Square One: Building a WordPress Starter Development Kit
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3
 
How can you improve, harmonize and automate your development process using to...
How can you improve, harmonize and automate your development process using to...How can you improve, harmonize and automate your development process using to...
How can you improve, harmonize and automate your development process using to...
 

Similar a DevOps for Drupal: Why We Cook With Chef

Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael Collins
Devopsdays
 

Similar a DevOps for Drupal: Why We Cook With Chef (20)

Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael Collins
 
Dev/Test in the Cloud - F
Dev/Test in the Cloud - FDev/Test in the Cloud - F
Dev/Test in the Cloud - F
 
ChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef RetrospectiveChefConf 2015 - Chef Retrospective
ChefConf 2015 - Chef Retrospective
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo Piairo
 
DevOps! What, Why and How?
DevOps! What, Why and How?DevOps! What, Why and How?
DevOps! What, Why and How?
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
DbOps, DevOps and Ops
DbOps, DevOps and OpsDbOps, DevOps and Ops
DbOps, DevOps and Ops
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
Don't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen EmeryDon't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen Emery
 
Don't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen EmeryDon't Mind the Gap by Galen Emery
Don't Mind the Gap by Galen Emery
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
DevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeDevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as Code
 
How to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscapeHow to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscape
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
 
Value streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniryValue streammapping cascadiait2014-mceniry
Value streammapping cascadiait2014-mceniry
 
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
 
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps worldLucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
Lucas Gravley - HP - Self-Healing And Monitoring in a DevOps world
 
Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolution
 

Más de Promet Source

Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing Business
Promet Source
 

Más de Promet Source (20)

How To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris CasisHow To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris Casis
 
DrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew KucharskiDrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew Kucharski
 
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
 
Migrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloMigrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan Manalo
 
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
 
Drupal Development with Docker
Drupal Development with DockerDrupal Development with Docker
Drupal Development with Docker
 
Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8
 
Web Accessibility in Drupal
Web Accessibility in DrupalWeb Accessibility in Drupal
Web Accessibility in Drupal
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
Drupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet SourceDrupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet Source
 
Using Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal SitesUsing Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal Sites
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
Composer tools and frameworks for Drupal
Composer tools and frameworks for DrupalComposer tools and frameworks for Drupal
Composer tools and frameworks for Drupal
 
Responsive Design Testing the Promet Way
Responsive Design Testing the Promet WayResponsive Design Testing the Promet Way
Responsive Design Testing the Promet Way
 
Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process
 
Diy continuous integration
Diy continuous integrationDiy continuous integration
Diy continuous integration
 
Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
 
Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing Business
 
Augmented Reality March Webinar
Augmented Reality March WebinarAugmented Reality March Webinar
Augmented Reality March Webinar
 

Último

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

DevOps for Drupal: Why We Cook With Chef

  • 1. DevOps for Drupal: Why We Cook with Chef Wednesday May 22nd DevOps Track Beginner
  • 2. Overview: Purpose Why are we all here? •  Interested in DevOps practices •  Interested in automation tools like Chef •  Interested in using them with Drupal +
  • 3. Overview: Sharing How are we going to do this? •  Team style presentation and discussion with views from both sides - Development and Operations •  Share our experiences and examples... we will be keeping it real •  We are NOT doing a tool comparison +
  • 4. Overview: Learn What do we hope you will learn? •  Why DevOps matters •  Why automation is a must •  Why you can use Chef to help yourselves, make life easier, and save time +
  • 5. For more info on Chef, check out fellow DevOps track session: The Joy of Cooking - Whip Up a Drupal Environment with Chef •  Thursday May 23rd at 2:15pm •  OR 203 •  Presented by Opscode's Nathen Harvey Overview: More on Chef +
  • 6. Who We Are A software development shop... •  specializing in custom Drupal development, systems integration, mobile, DevOps, and 24x7 support •  based in Chicago with 30+ team members worldwide ...and yes we are hiring! Come talk to us! +
  • 7. Who We Are Playing the part of: Moderator and Product Owner @ Promet Source: Director of Products jay@promethost.com + Jay Uhlinger
  • 8. Who We Are Playing the part of: Development @ Promet Source: Solutions Architect will@promethost.com drupal.org: wamilton twitter/hub: @winmillwill + Will Milton
  • 9. Who We Are Playing the part of: Operations @ Promet Source: Systems Administrator greg@promethost.com + Greg Palmier
  • 10. Audience Quiz Time How many are Developers? (a Will) + CC Image courtesy of Pedro Lozano on Flickr
  • 11. Audience Quiz Time How many are Sysadmins? (a Greg) + CC Image courtesy of Sharyn Morrow on Flickr
  • 12. Audience Quiz Time How many are both? (changing Prod servers) + CC Image courtesy of Arthur Caranta on Flickr
  • 13. Audience Quiz Time How many are other? (the Product Manager) +
  • 14. Audience Quiz Time How many are using automated configuration management tools and processes now in your everyday work with Drupal? How many are using Chef? +
  • 15. DevOps: What It Is Key Culture •  Foster a collaborative working relationship between Development and Operations Key Concept •  Infrastructure as code Key Results •  Higher deployment rates •  Better reliability, stability, and resilience of Production +
  • 16. DevOps: 3 Key Patterns 1. Make environments available early in the Development process 2. Shorten and amplify feedback loops 3. Create reusable deployment procedures +
  • 17. DevOps: What It Isn't It is not a collection of bash, Drush, insert scripts here, etc. + DevOps is not about the tools... they don't fix everything magically But DevOps relies on some tools to implement its principles
  • 18. DevOps: Why Is It Important One-off environments and complicated manual builds and deployments = FAILURE Must automate to meet business demands -- support agile, lean, faster, better... Every environment is Production to someone Drupal is not different -- all of these apply +
  • 19. A Classic Scenario Jay: Will, you said this was working. Will: It works in Dev. Jay: Greg, can you look into why it isn't working in Prod? Greg: Ok. (later on) @#$%! Dev and Prod are not the same! +
  • 20. Another Classic One The Blog Post: Installing Drupal on AWS 1. Start wizard 2. 50+ steps later 3. A Drupal install +
  • 21. Why We Chose Chef The orange color matches ours of course! We already had experience (Marius) doing DevOps work with Chef in Bay Area with leading tech companies We build Drupal applications -- we found Chef to be a good fit for application configuration management +
  • 22. The Operations part... ...out with the old and in with the new +
  • 23. Our Operations Story How we started with Chef at Promet Inconsistency was killing our time How realistic was automation and configuration management of all of our stuff +
  • 24. Wasting Time You are not in the sudoers file. This incident will be reported. $ which git $ Fatal error: Class 'PDO' not found in blahblahblah All of these messages diverted your work +
  • 25. Manual Config Run Amok •  Dev environments != Prod environments •  Shared Dev/Prod/?? environments were continually bloated •  Over time modifications amounted to more inconsistency between environments •  Documentation was lacking o  No records explaining changes o  Constant paper trail "paving" o  No great place for it anyways (what wiki?!?) •  More customizations -> High Fragility +
  • 26. Typing Faster != Solution •  Runbooks, Bash and SSH o  Process to stand up new infrastructure was done manually via a "runbook” •  Any configuration time was repeated extensively •  Environment “discovery” bled time o  Snooping around to analyze how things were initially stood up and potentially modified (caching, etc.) •  Endless SSH-ing into servers +
  • 27. Chef Migration •  In with the New o  2 dedicated servers §  VM hosts o  Similar model, consolidated o  Entirely Chef managed o  Individual client Chef-spun Dev instances •  Stand Up, QA, and Cutover o  Virtualize legacy o  Considerations mainly PHP •  Monitoring customizations •  Special clients o  Non-Drupal o  Contractually unique +
  • 28. Chef Migration And migrating wasn't a complete nightmare.... +
  • 29. Righting the Ship •  Server configuration in Git o  Mitigated "paper trail" o  Team awareness of configs by notifications o  PHP, Apache, MySQL •  System config changes pushed to Chef for Server propagation o  No more endless SSH-ing o  No more runbook config for every server o  Undoes "helpful" customizations by others •  Direct between me and Config Mgmt o  Configuration entirely “local” with Vagrant o  Git driven accountability and awareness (--stat) o  `knife` is to Chef as drush is to Drupal +
  • 30. Client Ownership •  Clients maintain ownership of their assets o  Any platform with a knife plugin o  Legacy apps migrated o  Non-Drupal or Promet "old" clients •  Give us their Keys o  Let us be the Designated Driver o  Developers drop in, get pitted +
  • 31. Client Ownership •  Excessive customization (not perfect) o  Non-Drupal clients or other work o  More so, use client's Hosted Chef •  Contract flexibility o  No Dysfunctional Marriage •  Honor prior client / hosting relationships o  Help clients where they are +
  • 32. Things That Are Solved •  User Configs o  .gitconfig o  .tmux.conf o  .ssh/config o  shell customizations o  Not necessary but....doable •  Server Configs o  logwatch o  mail o  mysql o  apache o  ssh o  automysqlbackup +
  • 33. Sysadmin Transformation Have time to explore/make new tools Do support in a consistent fashion Automate all the Things! "Grow" your team and infrastructure not with numbers but with talent We do more work with less resources! +
  • 34. Sysadmin Team Evolution We even spun-off a Startup company for infrastructure and applications automation and scaling using Chef in the Bay Area (non- Drupal) I don't care what you automate with... pick one and do it! +
  • 35. The Dev part... ...it's not what you think +
  • 36. What I Thought I Would Say •  What it was like... •  How it sucked for Devs •  How we changed it •  How it sucked in new ways •  How that lead to the new thing •  Repeat.... •  Where we are now •  What's really fun about this for Devs +
  • 37. The Problem •  We went through too much shit •  It's not even fun to talk about •  It's probably boring •  Someone else already said what I was trying to justify •  You're probably the choir if you're here +
  • 38. Drupal: OH @crell "If you're not using Features, you are not doing Drupal professionally" Also: •  If you don't have a one step build, you aren't using Features correctly => Sucking at doing Drupal professionally •  Configuration module is also probably fine •  It's going into core +
  • 39. So Now My Presentation Is •  What we're doing now •  Why you shouldn't NOT do what we're doing •  Actual examples of how it has helped •  Why Chef is really awesome •  A surprise +
  • 40. What We're Doing Now •  Everything you need in the repo o  Any scripts or scripting examples o  README files o  (small(-ish)) csv's/xml/etc o  ...pretty much any text file that is not too large and is useful •  ...Still need a way to automate sourcing archives of files and sql... •  Vagrantfile + Berksfile +
  • 42. +
  • 44. What a Dev Has to Do on Our Team •  Install git somehow •  Install the vagrant package •  Install the vagrant-berkshelf plugin •  git clone/pull && cd-to-the-root •  vagrant up (or reload) •  edit the hosts file or use dnsmasq or similar +
  • 45. Some Concrete Examples of This Helping Us Do Better •  Audits o  http://reload.github.io/phing-drupal-template o  Not perfect... o  But now no one has to repeat what is automated •  Every single deployment ever since o  Your Production push should not be the first time you attempt sync'ing to a Production environment o  ...unless you crave excitement •  Last minute accommodations o  Ever test RewriteBase? +
  • 46. Add the .htaccess directive... + ...change the docroot in code!
  • 47. Potential Examples: You Can't Prove the Negative •  PECL/Pear packages o  Shame on professionals who can't figure it out... o  ...but shame on me for betting the project •  Anything to do with email ever since ever •  Anything to do with external services o  ...memcached o  ...SOLR o  ...even MySQL +
  • 48. Why You Shouldn't NOT Do As We Do Challenges you can deal with, excuses that are bullshit On stupid things people say re: vagrant and chef •  We make great docs! •  My native environment is fine •  Virtualization consumes resources •  I don't have enough time +
  • 49. +
  • 50. My Native Environment is Fine 1. No, it isn't •  Your job is to ship to your downstream o  ...not manicure and fetishize your tools •  You are getting strictly less help than you could get o  ...even if you're getting a lot of help o  ...even if you're paying for help •  You are keeping yourself from helping +
  • 51. My Native Environment is Fine (cont'd) 2.Your native environment is personal •  You may even obsess over it •  You may be completely wrong •  You will be happier without each other +
  • 53. I Don't Have Time... ...to do everything perfectly •  We didn't either, and we're doing far better than we were •  We do not have a massive continuous delivery, cloud orchestration and scaling infrastructure •  ... But now what we have is in code +
  • 54. Chef is Really Awesome ...Puppet is probably cool too •  Stewardship and leadership •  Constantly evolving ecosystem •  A community hell-bent on sharing •  Kicks ass even if you don't +
  • 55. So Easy I Can Share It with You! Don't try it on this connection bash <(curl -L -s http://bit.ly/10McZSZ) github.com/promet/drupal_cookbook Get to work already! +
  • 56. Why You Should Use this Project (or something like it) We must advance the state of the art for Drupal deployment and application management The CMS that is easiest to flexibly deploy will be the CMS of the future All the features and D8 config exports in the world can't help you if you can't automate it +
  • 57. Other Projects/Strategies •  If you have a dope Jenkins workflow... o  help me automate it with Chef so we can all use it! •  Please use Puppet if it suits you o  and be vocal about hardcoded conventions that make your work hard •  Kraftwagen - kraftwagen.org •  Ariadne by patcon - github.com/ myplanetdigital/vagrant-ariadne +
  • 58. The Wrap-Up part... ...what should you remember +
  • 59. Key Summary Points Process and team is the focus •  Get your Devs and Sysadmins in the same room and start communicating Tools are there to help •  Start automating now Chef is an awesome tool •  It works and it helps +
  • 60. Q&A Ask us questions now Talk to us afterward Stop by and see us at Booth 201 Thanks! +