SlideShare a Scribd company logo
1 of 37
Download to read offline
Multiplier Effect: Case
Studies in Distributions for
Publishers
Jon Peck | Courtney Yuskis | @drupalcolorado 2016.08.14
Jon Peck
Architect, Four Kitchens
fourkitchens.com
@fluxsauce
linkedin.com/in/jonpeck
Courtney Yuskis
Digital Engagement Director,
Meredith Agrimedia
meredithagrimedia.com
linkedin.com/in/courtneyyuskis
The Opportunity:
Meredith
Agrimedia
Scope
Agriculture.com
● Online presence for Successful Farming
● Ag news and commodities data
● Reuters Newswire
● >25,000 pieces of content
● Migration from Symfony 1.4 framework
WOODMagazine.com
● Online presence for WOOD Magazine
● Free downloadable plans
● Print article index
● 4,050 pieces of content
● Migration from Teamsite Interwoven
Commonalities: Launch Objectives
● Exceptional UX (content -> audience -> data)
● Maintain brand reputation
● Improve editorial efficiency
● Audience acquisition and engagement
● Ease of testing new revenue models
Commonalities: Technical Details
● Content structure and hierarchy
○ Articles, Images, Slideshows, Authorship, Taxonomies
● Publishing workflow
● In-house integrations
○ Single Sign-On, subscription management
○ Meredith standard analytics
○ RAMP Video
● Platform
○ Hosting, CDN and proxy
○ Memcache, Solr
○ Gigya
○ KARMA
○ Lithium
Disconnects & Challenges
● Partial institutional adoption of Drupal, but no standard
● Disproportionate budget across two properties, but need to deliver
complete solution for both
● Multiple client-side product owners
● IT policies and procedures
● 3rd party integrations differ by site
The Results
Efficiencies
● Agriculture.com (1st site): TTL 6 Months
● WoodMagazine.com (2nd site): TTL 5 weeks
● Cost effective and simple to maintain
○ Common changes can be tested and deployed in minutes
○ Structure, tools and techniques are standardized
● Components can be reused within organization
● Quickly identify gaps, redundancies, and opportunities
Client Feedback
● Continued use of train-the-trainer, across sites
● Removed content distribution bottlenecks
● Repurposing/surfacing evergreen content
● Enhanced content automation and distribution
● Content and channel agnostic
● Eliminated advertising discrepancies
By the Numbers
● 43% to 92%: Sitewide viewability (advertising performance)
● 67% decrease in page load times
● 44% increase in exposure to sub-brands
● 88% on-page scroll rate
● 349% increase in successful on-site searches
How We Did It
What is a Drupal Distribution?
● Officially: full copy of core with additional software
○ https://www.drupal.org/documentation/build/distributions
● Practically: framework of dependencies and custom code
Installation Profiles and Distributions
● Installation Profiles configure Drupal
○ Provides installation, configuration steps
● Distributions contain all software
○ Typically includes at least one Installation Profile
● “More details about distributions” - drupal.org
○ https://www.drupal.org/node/1089736#distributions-vs-installation-profiles
Why Not Multisite?
● Fragile, difficult to maintain, doesn’t scale
● Candidate for deprecation in Drupal 8, removal in Drupal 9
○ https://www.drupal.org/node/2306013
● “Much Ado about Drupal Multisite” - Josh Koenig
○ https://pantheon.io/blog/drupal-multisite-much-ado-about-drupal-multisite
Types of
Distributions
● Monolithic
● Atomic
● Hybrid
Monolithic Distributions
● All code in the same repository
● Advantages
○ Easy to distribute and start working
○ Everything in the same place
● Disadvantages
○ Nigh-impossible to code review
○ Magnificently bloated
○ Messy history
○ Mirroring repositories
○ Patching nightmare 2001: A Space Odyssey (1968), Metro-Goldwyn-Mayer
● Converts source files into standalone artifacts
○ Contains everything needed to run
● Monolithic Distributions are artifacts
Build Process
Steps in a Build
● Download packages and apply patches
○ Drush Make (Drupal 7 and below)
○ Composer (Drupal 8 and above)
○ NPM (JavaScript)
● Compile assets
○ Ex: SCSS to CSS, JavaScript minification, image reduction
● Package for deployment
○ Add to Source Control
○ Copy or Archive
Build Systems
● Aquifer
○ https://github.com/aquifer/aquifer
● BLT
○ https://github.com/acquia/blt
● Grunt Drupal Tasks
○ https://github.com/phase2/grunt-drupal-tasks
● Build process to get components
○ Every custom module in its own repository
● Advantages
○ Explicit separation of history
○ Great for versioning
● Disadvantages
○ Dozens or hundreds of repositories
○ Pull requests are a dependency nightmare
○ Need to maintain build process
○ Slow builds
○ Impractical
Atomic Distributions
It Came from Beneath the Sea (1995), Columbia Pictures
Hybrid Distributions
● Build process to get components
○ Custom code in Distribution repository
● Advantages
○ Centralized code
○ Easy to work with
○ Faster builds
● Disadvantages
○ Still many dependencies
○ Still needs a build process
The Fly (1958), 20th Century Fox
Meredith
Agrimedia’s
Distribution
● Distribution (Parent):
ag-distro
○ Fork: sfg
○ Fork: wdm
● Changes in parent pulled
asynchronously
Testing
● Every code change is automatically checked
● Tools
○ Syntax Errors - phplint
○ Coding Standards - PHP_CodeSniffer / Coder, ESLint
○ Functional Testing - Behat / Mink, Behat Drupal Extension
● Standardized approach, platform agnostic
● Drupal VM
○ Not required, but only supported
○ One configuration step
■ Since launch, down to zero (!)
○ Internal hosting leveraged playbooks for consistency
● EditorConfig - file format & text editor plugin for maintaining coding styles
Local Development
● Aquifer - build system
● Composer - PHP package manager
● NPM - JavaScript package manager
○ Gulp - task runner, front end build system
● CircleCI - continuous integration
● Jenkins - deployment
Build Process
● Stabilize build process earlier in project
● Use a single Continuous Integration / Deployment solution
● Install Drupal VM with Composer
● Bare metal test Drupal VM when updating
● Bare metal test documentation prior to new developer onboarding
● Retroactively apply fixes based on deployment of subsequent sites
● Say No
What would we do differently?
Practical
Takeaways
● Own the global project
● Identify commonalities
● Mitigate differences
● Critical for scale
Client-side Champion
Drupal Builds are the Way of the Future*
● Great for large projects
● Can be a bit overkill for small projects
● *Use your best judgement
Hybrid Distributions are Optimal
● Consolidate custom work
● Separate contributed code
● Extremists in any context are unpleasant
Automate Quality Checks
● Syntax errors
● Coding standards
● Behavioral testing
● Prevent regressions
● Compare standard components between forks to detect variance
● Investigate and leverage
open-source first
○ Contribute back fixes,
improvements
● Avoid one-off solutions if
practical
● Reusability is
awesome
(compromise!)
Don’t Reinvent the Wheel
https://xkcd.com/927/
Any questions?
Thank you.
linkedin.com/in/jonpeck
linkedin.com/in/courtneyyuskis
@fourkitchens

More Related Content

What's hot

Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Mike Hale
 
Open Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thOpen Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thWong Hoi Sing Edison
 
MongoDB Jump Start
MongoDB Jump StartMongoDB Jump Start
MongoDB Jump StartHaim Michael
 
#CodefreshLive Event
#CodefreshLive Event#CodefreshLive Event
#CodefreshLive EventCodefresh
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...Alkacon Software GmbH & Co. KG
 
Gutenberg Extended
Gutenberg ExtendedGutenberg Extended
Gutenberg ExtendedSören Wrede
 
Building the Web with Gradle
Building the Web with GradleBuilding the Web with Gradle
Building the Web with GradleEric Wendelin
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFLars Rosenquist
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with BehatPromet Source
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...WordCamp Sydney
 
São Paulo MuleSoft Meetup - Deployments Models
São Paulo MuleSoft Meetup - Deployments ModelsSão Paulo MuleSoft Meetup - Deployments Models
São Paulo MuleSoft Meetup - Deployments ModelsGuilherme Pereira Silva
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Igalia
 
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesBhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesPreetam Deshmukh
 
Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8DrupalSib
 
Composer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.pptComposer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.pptPromet Source
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 

What's hot (20)

Berlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWSBerlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWS
 
How to sell drupal 8
How to sell drupal 8How to sell drupal 8
How to sell drupal 8
 
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
 
Open Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thOpen Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26th
 
MongoDB Jump Start
MongoDB Jump StartMongoDB Jump Start
MongoDB Jump Start
 
#CodefreshLive Event
#CodefreshLive Event#CodefreshLive Event
#CodefreshLive Event
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
 
Gutenberg Extended
Gutenberg ExtendedGutenberg Extended
Gutenberg Extended
 
Building the Web with Gradle
Building the Web with GradleBuilding the Web with Gradle
Building the Web with Gradle
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
Industrial presentation
Industrial presentationIndustrial presentation
Industrial presentation
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
 
São Paulo MuleSoft Meetup - Deployments Models
São Paulo MuleSoft Meetup - Deployments ModelsSão Paulo MuleSoft Meetup - Deployments Models
São Paulo MuleSoft Meetup - Deployments Models
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)
 
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpracticesBhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
Bhopal mule soft_meetup#2_18sept2021_cloudhubdr_strategy_bestpractices
 
Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8
 
Composer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.pptComposer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.ppt
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 

Similar to Multiplier Effect: Case Studies in Distributions for Publishers

What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8Acquia
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xWong Hoi Sing Edison
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsFedir RYKHTIK
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyManageIQ
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?Wong Hoi Sing Edison
 
How to Write a Winning Session Submission
How to Write a Winning Session SubmissionHow to Write a Winning Session Submission
How to Write a Winning Session SubmissionDocker, Inc
 
Dockerize magento 2 24.02.2016
Dockerize magento 2   24.02.2016Dockerize magento 2   24.02.2016
Dockerize magento 2 24.02.2016Andreas Pointner
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
 
Srijan's Drupal Support Services - an Introduction
Srijan's Drupal Support Services - an IntroductionSrijan's Drupal Support Services - an Introduction
Srijan's Drupal Support Services - an IntroductionSrijan Technologies
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
What to Expect in Drupal 8
What to Expect in Drupal 8What to Expect in Drupal 8
What to Expect in Drupal 8Mediacurrent
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Demi Ben-Ari
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Best Practices with Sitecore
Best Practices with SitecoreBest Practices with Sitecore
Best Practices with SitecoreAnant Corporation
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsTag1 Consulting, Inc.
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"Daniel Bryant
 

Similar to Multiplier Effect: Case Studies in Distributions for Publishers (20)

What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8What Organizations Can Expect in Drupal 8
What Organizations Can Expect in Drupal 8
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason FreyDesign Summit - Technology Vision - Oleg Barenboim and Jason Frey
Design Summit - Technology Vision - Oleg Barenboim and Jason Frey
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
 
How to Write a Winning Session Submission
How to Write a Winning Session SubmissionHow to Write a Winning Session Submission
How to Write a Winning Session Submission
 
Dockerize magento 2 24.02.2016
Dockerize magento 2   24.02.2016Dockerize magento 2   24.02.2016
Dockerize magento 2 24.02.2016
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Srijan's Drupal Support Services - an Introduction
Srijan's Drupal Support Services - an IntroductionSrijan's Drupal Support Services - an Introduction
Srijan's Drupal Support Services - an Introduction
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
What to Expect in Drupal 8
What to Expect in Drupal 8What to Expect in Drupal 8
What to Expect in Drupal 8
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Best Practices with Sitecore
Best Practices with SitecoreBest Practices with Sitecore
Best Practices with Sitecore
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
 

More from Jon Peck

Built it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringBuilt it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringJon Peck
 
How to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesHow to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesJon Peck
 
Creating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsCreating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsJon Peck
 
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...Jon Peck
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...Jon Peck
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Jon Peck
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceJon Peck
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeJon Peck
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarJon Peck
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Jon Peck
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Jon Peck
 

More from Jon Peck (12)

Built it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineeringBuilt it, but nobody came: avoiding over-engineering
Built it, but nobody came: avoiding over-engineering
 
How to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practicesHow to audit Drupal Sites for performance, content and best practices
How to audit Drupal Sites for performance, content and best practices
 
Creating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey SolutionsCreating a PHP Portal for Perseus Survey Solutions
Creating a PHP Portal for Perseus Survey Solutions
 
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every Time
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction Webinar
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
 

Recently uploaded

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...sonatiwari757
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 

Recently uploaded (20)

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 

Multiplier Effect: Case Studies in Distributions for Publishers

  • 1. Multiplier Effect: Case Studies in Distributions for Publishers Jon Peck | Courtney Yuskis | @drupalcolorado 2016.08.14
  • 2. Jon Peck Architect, Four Kitchens fourkitchens.com @fluxsauce linkedin.com/in/jonpeck
  • 3. Courtney Yuskis Digital Engagement Director, Meredith Agrimedia meredithagrimedia.com linkedin.com/in/courtneyyuskis
  • 5. Scope Agriculture.com ● Online presence for Successful Farming ● Ag news and commodities data ● Reuters Newswire ● >25,000 pieces of content ● Migration from Symfony 1.4 framework WOODMagazine.com ● Online presence for WOOD Magazine ● Free downloadable plans ● Print article index ● 4,050 pieces of content ● Migration from Teamsite Interwoven
  • 6. Commonalities: Launch Objectives ● Exceptional UX (content -> audience -> data) ● Maintain brand reputation ● Improve editorial efficiency ● Audience acquisition and engagement ● Ease of testing new revenue models
  • 7. Commonalities: Technical Details ● Content structure and hierarchy ○ Articles, Images, Slideshows, Authorship, Taxonomies ● Publishing workflow ● In-house integrations ○ Single Sign-On, subscription management ○ Meredith standard analytics ○ RAMP Video ● Platform ○ Hosting, CDN and proxy ○ Memcache, Solr ○ Gigya ○ KARMA ○ Lithium
  • 8. Disconnects & Challenges ● Partial institutional adoption of Drupal, but no standard ● Disproportionate budget across two properties, but need to deliver complete solution for both ● Multiple client-side product owners ● IT policies and procedures ● 3rd party integrations differ by site
  • 10. Efficiencies ● Agriculture.com (1st site): TTL 6 Months ● WoodMagazine.com (2nd site): TTL 5 weeks ● Cost effective and simple to maintain ○ Common changes can be tested and deployed in minutes ○ Structure, tools and techniques are standardized ● Components can be reused within organization ● Quickly identify gaps, redundancies, and opportunities
  • 11. Client Feedback ● Continued use of train-the-trainer, across sites ● Removed content distribution bottlenecks ● Repurposing/surfacing evergreen content ● Enhanced content automation and distribution ● Content and channel agnostic ● Eliminated advertising discrepancies
  • 12. By the Numbers ● 43% to 92%: Sitewide viewability (advertising performance) ● 67% decrease in page load times ● 44% increase in exposure to sub-brands ● 88% on-page scroll rate ● 349% increase in successful on-site searches
  • 14. What is a Drupal Distribution? ● Officially: full copy of core with additional software ○ https://www.drupal.org/documentation/build/distributions ● Practically: framework of dependencies and custom code
  • 15. Installation Profiles and Distributions ● Installation Profiles configure Drupal ○ Provides installation, configuration steps ● Distributions contain all software ○ Typically includes at least one Installation Profile ● “More details about distributions” - drupal.org ○ https://www.drupal.org/node/1089736#distributions-vs-installation-profiles
  • 16. Why Not Multisite? ● Fragile, difficult to maintain, doesn’t scale ● Candidate for deprecation in Drupal 8, removal in Drupal 9 ○ https://www.drupal.org/node/2306013 ● “Much Ado about Drupal Multisite” - Josh Koenig ○ https://pantheon.io/blog/drupal-multisite-much-ado-about-drupal-multisite
  • 18. Monolithic Distributions ● All code in the same repository ● Advantages ○ Easy to distribute and start working ○ Everything in the same place ● Disadvantages ○ Nigh-impossible to code review ○ Magnificently bloated ○ Messy history ○ Mirroring repositories ○ Patching nightmare 2001: A Space Odyssey (1968), Metro-Goldwyn-Mayer
  • 19. ● Converts source files into standalone artifacts ○ Contains everything needed to run ● Monolithic Distributions are artifacts Build Process
  • 20. Steps in a Build ● Download packages and apply patches ○ Drush Make (Drupal 7 and below) ○ Composer (Drupal 8 and above) ○ NPM (JavaScript) ● Compile assets ○ Ex: SCSS to CSS, JavaScript minification, image reduction ● Package for deployment ○ Add to Source Control ○ Copy or Archive
  • 21. Build Systems ● Aquifer ○ https://github.com/aquifer/aquifer ● BLT ○ https://github.com/acquia/blt ● Grunt Drupal Tasks ○ https://github.com/phase2/grunt-drupal-tasks
  • 22. ● Build process to get components ○ Every custom module in its own repository ● Advantages ○ Explicit separation of history ○ Great for versioning ● Disadvantages ○ Dozens or hundreds of repositories ○ Pull requests are a dependency nightmare ○ Need to maintain build process ○ Slow builds ○ Impractical Atomic Distributions It Came from Beneath the Sea (1995), Columbia Pictures
  • 23. Hybrid Distributions ● Build process to get components ○ Custom code in Distribution repository ● Advantages ○ Centralized code ○ Easy to work with ○ Faster builds ● Disadvantages ○ Still many dependencies ○ Still needs a build process The Fly (1958), 20th Century Fox
  • 25. ● Distribution (Parent): ag-distro ○ Fork: sfg ○ Fork: wdm ● Changes in parent pulled asynchronously
  • 26. Testing ● Every code change is automatically checked ● Tools ○ Syntax Errors - phplint ○ Coding Standards - PHP_CodeSniffer / Coder, ESLint ○ Functional Testing - Behat / Mink, Behat Drupal Extension
  • 27. ● Standardized approach, platform agnostic ● Drupal VM ○ Not required, but only supported ○ One configuration step ■ Since launch, down to zero (!) ○ Internal hosting leveraged playbooks for consistency ● EditorConfig - file format & text editor plugin for maintaining coding styles Local Development
  • 28. ● Aquifer - build system ● Composer - PHP package manager ● NPM - JavaScript package manager ○ Gulp - task runner, front end build system ● CircleCI - continuous integration ● Jenkins - deployment Build Process
  • 29. ● Stabilize build process earlier in project ● Use a single Continuous Integration / Deployment solution ● Install Drupal VM with Composer ● Bare metal test Drupal VM when updating ● Bare metal test documentation prior to new developer onboarding ● Retroactively apply fixes based on deployment of subsequent sites ● Say No What would we do differently?
  • 31. ● Own the global project ● Identify commonalities ● Mitigate differences ● Critical for scale Client-side Champion
  • 32. Drupal Builds are the Way of the Future* ● Great for large projects ● Can be a bit overkill for small projects ● *Use your best judgement
  • 33. Hybrid Distributions are Optimal ● Consolidate custom work ● Separate contributed code ● Extremists in any context are unpleasant
  • 34. Automate Quality Checks ● Syntax errors ● Coding standards ● Behavioral testing ● Prevent regressions ● Compare standard components between forks to detect variance
  • 35. ● Investigate and leverage open-source first ○ Contribute back fixes, improvements ● Avoid one-off solutions if practical ● Reusability is awesome (compromise!) Don’t Reinvent the Wheel https://xkcd.com/927/