SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Drupal + WBR
                             How Warner Bros. Records uses Drupal




Tuesday, February 10, 2009
Who am I?
                         Shaun Haber
                         shaun.haber@wbr.com

                         Lead architect, developer, administrator
                         for Warner Bros. Records




Tuesday, February 10, 2009
My short talk
                    1. Background of Drupal at WBR

                    2. Environment setup

                    3. Development workflow

                    4. Site implementation




Tuesday, February 10, 2009
Tuesday, February 10, 2009
Warner Music Group




Tuesday, February 10, 2009
Tuesday, February 10, 2009
WBR Tech

                    • In-house Tech team
                    • “Start-up” mentality
                    • Fast-paced, hectic, and fun!
                    • We use Drupal... religiously

Tuesday, February 10, 2009
100+ Drupal Sites
                                 Since October 2006




Tuesday, February 10, 2009
Tuesday, February 10, 2009
My short talk
                    1. Background of Drupal at WBR

                    2. Environment setup

                    3. Development workflow

                    4. Site implementation




Tuesday, February 10, 2009
Environment Setup
                    • DNS                      • Serving external pages
                    • Apache mod_vhost_alias   • Using a CDN
                    • Directory structure      • Cron
                    • Shared code-base
                    • Symbolic links
                    • Monikers


Tuesday, February 10, 2009
DNS




Tuesday, February 10, 2009
Apache mod_vhost_alias
                             Dynamically created virtual hosts




Tuesday, February 10, 2009
Directory Structure
                    •        Directory of web roots

                    •        Directory of Drupal cores

                    •        Directory of contributed (and custom) modules

                    •        Directory of Drupal sites

                    •        All pieced together by symbolic links!




Tuesday, February 10, 2009
Web roots directory




Tuesday, February 10, 2009
Drupal env directory




Tuesday, February 10, 2009
Drupal env directory




Tuesday, February 10, 2009
Drupal cores directory




Tuesday, February 10, 2009
Drupal cores directory




Tuesday, February 10, 2009
Drupal sites directory




Tuesday, February 10, 2009
Drupal sites directory




Tuesday, February 10, 2009
Drupal sites directory




                                     monikers


Tuesday, February 10, 2009
Drupal modules directory




Tuesday, February 10, 2009
Drupal modules directory




Tuesday, February 10, 2009
CCK module directory




Tuesday, February 10, 2009
CCK module directory




Tuesday, February 10, 2009
sites/all/modules directory




Tuesday, February 10, 2009
sites/[moniker]/modules directory




Tuesday, February 10, 2009
Serving external pages?
                    ★ http://theveronicas.com/foo

                    ★ http://disturbed1.com/foo


                    •        Problem: These should be two separate pages.
                             How to implement using a shared code-base?

                    •        Solution: Don’t place site-exclusive files in Drupal root.
                             Instead, place each file in a dedicated location and tell
                             Apache to check there first.




Tuesday, February 10, 2009
Use mod_rewrite




Tuesday, February 10, 2009
Site directory

                                      Virtual Drupal root




Tuesday, February 10, 2009
Using a CDN
                    •        Use RewriteRules

                    •        Symlink to pickup zone




Tuesday, February 10, 2009
RewriteRule example




Tuesday, February 10, 2009
Use a symlink for files




                                 Read by Akamai’s servers




Tuesday, February 10, 2009
Cron
                    •        Run cron as a command-line PHP script.

                    •        Input list of sites and run cron for each site.




Tuesday, February 10, 2009
Environment Setup
                                   Recap
                    • DNS                      • Serving external pages
                    • Apache mod_vhost_alias   • Using a CDN
                    • Directory structure      • Cron
                    • Shared code-base
                    • Symbolic links
                    • Monikers


Tuesday, February 10, 2009
My short talk
                    1. Background of Drupal at WBR

                    2. Environment setup

                    3. Development workflow

                    4. Site implementation




Tuesday, February 10, 2009
Development Workflow
                    •        Subversion repository

                    •        Provisioning a dev site

                    •        Development cycle

                    •        Deploying a site

                    •        Development on a production site

                    •        Database synchronization




Tuesday, February 10, 2009
Subversion Repository




Tuesday, February 10, 2009
Provisioning a Dev site
                    •        Name the site (moniker!).

                    •        Create vhost.

                    •        SVN Copy skel site folder.

                    •        Create symlink(s) in drupal sites folder.

                    •        Create database.

                    •        Populate settings.php.

                    •        Run install.php.

Tuesday, February 10, 2009
Development Cycle
                                               SVN


                             update
                                                update
                                                         update
                                      commit


                      Local                    Dev            Prod




Tuesday, February 10, 2009
Remote SVN Update




Tuesday, February 10, 2009
Deploying a site

                              •   Code

                              •   Database

                              •   Files

                              •   Configs




Tuesday, February 10, 2009
Code
                    •        Subversion checkout




                                                   checkout
                        SVN                                   Prod




Tuesday, February 10, 2009
Database
                    •        Mysqldump + gzip + scp

                    •        Search/Replace dev environment strings

                             •   UPDATE files SET filepath = REPLACE(filepath,
                                 ‘mutemath.wbrdev.com’, ‘mutemath’

                             •   UPDATE system SET filename = REPLACE(filename,
                                 ‘mutemath.wbrdev.com’, ‘mutemath’


                    •        Create and populate settings.php file




Tuesday, February 10, 2009
Files
                    •        Tar + gzip + scp

                    •        RewriteRules for CDN




Tuesday, February 10, 2009
Configs
                    •        Change file paths

                    •        Turn on caching

                    •        Turn off error log to display

                    •        Disable devel and watchdog modules

                    •        Etc.




Tuesday, February 10, 2009
Development on a Production site

                    •        Code already handled by SVN

                    •        Take snapshot of production DB, copy to dev

                    •        Copy files over to dev

                    •        Change paths, configs

                    •        Obfuscate email addresses

                    •        Take note of date and sequences table (D5 only)




Tuesday, February 10, 2009
Database Synchronization
                    1. Take dev site down

                    2. Shift sequenced IDs on Dev

                    3. Take prod site down

                    4. Merge content from Prod to Dev

                    5. QA “new” dev site

                    6. Copy dev site to prod site

                    7. Bring “new” prod site live

Tuesday, February 10, 2009
3
                                 2
                             1

Tuesday, February 10, 2009
3       3
                                 2       2
                             1       1

Tuesday, February 10, 2009
6
                             5           5
                             4       4
                             3       3
                                 2       2
                             1       1

Tuesday, February 10, 2009
11
                             10

                                          6
                                          5
                                      4
                              3       3
                                  2       2
                              1       1

Tuesday, February 10, 2009
11
                             10

                                  6       6
                                  5       5
                              4       4
                              3       3
                                  2       2
                              1       1

Tuesday, February 10, 2009
11
                             10
                                 6       6
                              5          5
                             4       4
                             3       3
                                 2       2
                             1       1

Tuesday, February 10, 2009
11
                             10
                                 6       6
                              5          5
                             4       4
                             3       3
                             2a      2a
                             1       1

Tuesday, February 10, 2009
11
                             10
                                 6       6
                              5          5
                             4       4
                             3       3
                             2a      2a
                             1       1

Tuesday, February 10, 2009
Development Workflow
                                    Recap
                    •        Subversion repository

                    •        Provisioning a dev site

                    •        Development cycle

                    •        Deploying a site

                    •        Development on a production site

                    •        Database synchronization




Tuesday, February 10, 2009
My short talk
                    1. Background of Drupal at WBR

                    2. Environment setup

                    3. Development workflow

                    4. Site implementation




Tuesday, February 10, 2009
Demo



Tuesday, February 10, 2009
Asyncronous Data
                                  Processing
                    •        Pull model

                    •        Push model




Tuesday, February 10, 2009
Pull model
                    •        Create a site node type

                             •   Stores db info, document root, URL, 3rd-party API
                                 keys, etc.

                    •        Create acquisition layer

                    •        Aggregate data

                    •        Generate views




Tuesday, February 10, 2009
01Detail Module Overview

                        Shaun Haber
                        Fri Jan 16 2009
                                                                 Report      Filtered View




                                                                                Chart

                                                                Aggregator




                                 Vendor API         Bootstrap    Query            Env        Master User
                                  (Service)        (XML-RPC)    (MySQL)          (OS)          (API)




                                                                   Site                         List




Tuesday, February 10, 2009
Push model
                    •        Setup site with actions and triggers.

                    •        Setup a message queue system (Spread Toolkit).

                    •        Asynchronously send data via Spread daemon for further
                             processing.

                    •        XML-RPC callback to the site when data processing
                             completes.




Tuesday, February 10, 2009
Questions?
                         Shaun Haber
                         shaun.haber@wbr.com

                         Lead architect, developer, administrator
                         for Warner Bros. Records




Tuesday, February 10, 2009

Weitere ähnliche Inhalte

Andere mochten auch

BADCamp 2008 DB Sync
BADCamp 2008 DB SyncBADCamp 2008 DB Sync
BADCamp 2008 DB SyncShaun Haber
 
BADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyBADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyShaun Haber
 
PSFK Future of Work Report
PSFK Future of Work ReportPSFK Future of Work Report
PSFK Future of Work ReportPSFK
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

Andere mochten auch (6)

BADCamp 2008 DB Sync
BADCamp 2008 DB SyncBADCamp 2008 DB Sync
BADCamp 2008 DB Sync
 
BADCamp 2008 Core Crazy
BADCamp 2008 Core CrazyBADCamp 2008 Core Crazy
BADCamp 2008 Core Crazy
 
PSFK Future of Work Report
PSFK Future of Work ReportPSFK Future of Work Report
PSFK Future of Work Report
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 

Ähnlich wie Drupal + WBR: How Warner Bros. Records uses Drupal

The Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeThe Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeAlex Payne
 
Bay Area Drupal Camp Efficiency
Bay Area Drupal Camp EfficiencyBay Area Drupal Camp Efficiency
Bay Area Drupal Camp Efficiencysmattoon
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentationrailsconf
 
Open Source WCM and Standards
Open Source WCM and StandardsOpen Source WCM and Standards
Open Source WCM and Standardssggottlieb
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Peter Leschev
 
Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsDietrich Ayala
 
MacRuby For Ruby Developers
MacRuby For Ruby DevelopersMacRuby For Ruby Developers
MacRuby For Ruby DevelopersRenzo Borgatti
 
No Really, It's All About You
No Really, It's All About YouNo Really, It's All About You
No Really, It's All About YouChris Cornutt
 
Drupal CDN integration: easier, more flexible and faster!
Drupal CDN integration: easier, more flexible and faster!Drupal CDN integration: easier, more flexible and faster!
Drupal CDN integration: easier, more flexible and faster!Wim Leers
 
Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Ronald Bradford
 
Philly Spring UG Roo Overview
Philly Spring UG Roo OverviewPhilly Spring UG Roo Overview
Philly Spring UG Roo Overviewkrimple
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsCameron Dutro
 
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
symfony: An Open-Source Framework for Professionals (PHP Day 2008)symfony: An Open-Source Framework for Professionals (PHP Day 2008)
symfony: An Open-Source Framework for Professionals (PHP Day 2008)Fabien Potencier
 
Off the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your OrganizationOff the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your OrganizationRick Vugteveen
 
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09mihaiionescu
 
Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.Ryan King
 

Ähnlich wie Drupal + WBR: How Warner Bros. Records uses Drupal (20)

The Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to AdobeThe Twitter API: A Presentation to Adobe
The Twitter API: A Presentation to Adobe
 
Bay Area Drupal Camp Efficiency
Bay Area Drupal Camp EfficiencyBay Area Drupal Camp Efficiency
Bay Area Drupal Camp Efficiency
 
Vagrant at LA Ruby
Vagrant at LA RubyVagrant at LA Ruby
Vagrant at LA Ruby
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentation
 
Open Source WCM and Standards
Open Source WCM and StandardsOpen Source WCM and Standards
Open Source WCM and Standards
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
 
Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web Innovators
 
MacRuby For Ruby Developers
MacRuby For Ruby DevelopersMacRuby For Ruby Developers
MacRuby For Ruby Developers
 
No Really, It's All About You
No Really, It's All About YouNo Really, It's All About You
No Really, It's All About You
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Drupal CDN integration: easier, more flexible and faster!
Drupal CDN integration: easier, more flexible and faster!Drupal CDN integration: easier, more flexible and faster!
Drupal CDN integration: easier, more flexible and faster!
 
Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1
 
Philly Spring UG Roo Overview
Philly Spring UG Roo OverviewPhilly Spring UG Roo Overview
Philly Spring UG Roo Overview
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails Apps
 
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
symfony: An Open-Source Framework for Professionals (PHP Day 2008)symfony: An Open-Source Framework for Professionals (PHP Day 2008)
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
 
Off the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your OrganizationOff the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your Organization
 
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09
 
Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.Deployments... from dreaded to delightful.
Deployments... from dreaded to delightful.
 

Kürzlich hochgeladen

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 

Kürzlich hochgeladen (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 

Drupal + WBR: How Warner Bros. Records uses Drupal

  • 1. Drupal + WBR How Warner Bros. Records uses Drupal Tuesday, February 10, 2009
  • 2. Who am I? Shaun Haber shaun.haber@wbr.com Lead architect, developer, administrator for Warner Bros. Records Tuesday, February 10, 2009
  • 3. My short talk 1. Background of Drupal at WBR 2. Environment setup 3. Development workflow 4. Site implementation Tuesday, February 10, 2009
  • 5. Warner Music Group Tuesday, February 10, 2009
  • 7. WBR Tech • In-house Tech team • “Start-up” mentality • Fast-paced, hectic, and fun! • We use Drupal... religiously Tuesday, February 10, 2009
  • 8. 100+ Drupal Sites Since October 2006 Tuesday, February 10, 2009
  • 10. My short talk 1. Background of Drupal at WBR 2. Environment setup 3. Development workflow 4. Site implementation Tuesday, February 10, 2009
  • 11. Environment Setup • DNS • Serving external pages • Apache mod_vhost_alias • Using a CDN • Directory structure • Cron • Shared code-base • Symbolic links • Monikers Tuesday, February 10, 2009
  • 13. Apache mod_vhost_alias Dynamically created virtual hosts Tuesday, February 10, 2009
  • 14. Directory Structure • Directory of web roots • Directory of Drupal cores • Directory of contributed (and custom) modules • Directory of Drupal sites • All pieced together by symbolic links! Tuesday, February 10, 2009
  • 15. Web roots directory Tuesday, February 10, 2009
  • 16. Drupal env directory Tuesday, February 10, 2009
  • 17. Drupal env directory Tuesday, February 10, 2009
  • 18. Drupal cores directory Tuesday, February 10, 2009
  • 19. Drupal cores directory Tuesday, February 10, 2009
  • 20. Drupal sites directory Tuesday, February 10, 2009
  • 21. Drupal sites directory Tuesday, February 10, 2009
  • 22. Drupal sites directory monikers Tuesday, February 10, 2009
  • 25. CCK module directory Tuesday, February 10, 2009
  • 26. CCK module directory Tuesday, February 10, 2009
  • 29. Serving external pages? ★ http://theveronicas.com/foo ★ http://disturbed1.com/foo • Problem: These should be two separate pages. How to implement using a shared code-base? • Solution: Don’t place site-exclusive files in Drupal root. Instead, place each file in a dedicated location and tell Apache to check there first. Tuesday, February 10, 2009
  • 31. Site directory Virtual Drupal root Tuesday, February 10, 2009
  • 32. Using a CDN • Use RewriteRules • Symlink to pickup zone Tuesday, February 10, 2009
  • 34. Use a symlink for files Read by Akamai’s servers Tuesday, February 10, 2009
  • 35. Cron • Run cron as a command-line PHP script. • Input list of sites and run cron for each site. Tuesday, February 10, 2009
  • 36. Environment Setup Recap • DNS • Serving external pages • Apache mod_vhost_alias • Using a CDN • Directory structure • Cron • Shared code-base • Symbolic links • Monikers Tuesday, February 10, 2009
  • 37. My short talk 1. Background of Drupal at WBR 2. Environment setup 3. Development workflow 4. Site implementation Tuesday, February 10, 2009
  • 38. Development Workflow • Subversion repository • Provisioning a dev site • Development cycle • Deploying a site • Development on a production site • Database synchronization Tuesday, February 10, 2009
  • 40. Provisioning a Dev site • Name the site (moniker!). • Create vhost. • SVN Copy skel site folder. • Create symlink(s) in drupal sites folder. • Create database. • Populate settings.php. • Run install.php. Tuesday, February 10, 2009
  • 41. Development Cycle SVN update update update commit Local Dev Prod Tuesday, February 10, 2009
  • 42. Remote SVN Update Tuesday, February 10, 2009
  • 43. Deploying a site • Code • Database • Files • Configs Tuesday, February 10, 2009
  • 44. Code • Subversion checkout checkout SVN Prod Tuesday, February 10, 2009
  • 45. Database • Mysqldump + gzip + scp • Search/Replace dev environment strings • UPDATE files SET filepath = REPLACE(filepath, ‘mutemath.wbrdev.com’, ‘mutemath’ • UPDATE system SET filename = REPLACE(filename, ‘mutemath.wbrdev.com’, ‘mutemath’ • Create and populate settings.php file Tuesday, February 10, 2009
  • 46. Files • Tar + gzip + scp • RewriteRules for CDN Tuesday, February 10, 2009
  • 47. Configs • Change file paths • Turn on caching • Turn off error log to display • Disable devel and watchdog modules • Etc. Tuesday, February 10, 2009
  • 48. Development on a Production site • Code already handled by SVN • Take snapshot of production DB, copy to dev • Copy files over to dev • Change paths, configs • Obfuscate email addresses • Take note of date and sequences table (D5 only) Tuesday, February 10, 2009
  • 49. Database Synchronization 1. Take dev site down 2. Shift sequenced IDs on Dev 3. Take prod site down 4. Merge content from Prod to Dev 5. QA “new” dev site 6. Copy dev site to prod site 7. Bring “new” prod site live Tuesday, February 10, 2009
  • 50. 3 2 1 Tuesday, February 10, 2009
  • 51. 3 3 2 2 1 1 Tuesday, February 10, 2009
  • 52. 6 5 5 4 4 3 3 2 2 1 1 Tuesday, February 10, 2009
  • 53. 11 10 6 5 4 3 3 2 2 1 1 Tuesday, February 10, 2009
  • 54. 11 10 6 6 5 5 4 4 3 3 2 2 1 1 Tuesday, February 10, 2009
  • 55. 11 10 6 6 5 5 4 4 3 3 2 2 1 1 Tuesday, February 10, 2009
  • 56. 11 10 6 6 5 5 4 4 3 3 2a 2a 1 1 Tuesday, February 10, 2009
  • 57. 11 10 6 6 5 5 4 4 3 3 2a 2a 1 1 Tuesday, February 10, 2009
  • 58. Development Workflow Recap • Subversion repository • Provisioning a dev site • Development cycle • Deploying a site • Development on a production site • Database synchronization Tuesday, February 10, 2009
  • 59. My short talk 1. Background of Drupal at WBR 2. Environment setup 3. Development workflow 4. Site implementation Tuesday, February 10, 2009
  • 61. Asyncronous Data Processing • Pull model • Push model Tuesday, February 10, 2009
  • 62. Pull model • Create a site node type • Stores db info, document root, URL, 3rd-party API keys, etc. • Create acquisition layer • Aggregate data • Generate views Tuesday, February 10, 2009
  • 63. 01Detail Module Overview Shaun Haber Fri Jan 16 2009 Report Filtered View Chart Aggregator Vendor API Bootstrap Query Env Master User (Service) (XML-RPC) (MySQL) (OS) (API) Site List Tuesday, February 10, 2009
  • 64. Push model • Setup site with actions and triggers. • Setup a message queue system (Spread Toolkit). • Asynchronously send data via Spread daemon for further processing. • XML-RPC callback to the site when data processing completes. Tuesday, February 10, 2009
  • 65. Questions? Shaun Haber shaun.haber@wbr.com Lead architect, developer, administrator for Warner Bros. Records Tuesday, February 10, 2009

Hinweis der Redaktion