How we built an enterprise media publishing platform on Drupal 8
Brought to you by examiner.com.
- one of the first D7 websites
- high traffic
- 50M page views/month
- 10k active examiners
- 3k new nodes daily
- 3.3M terms
- 14M nodes
- content production model
- generally no internal content creators
- freelance writers
- stats
- "bought" by AEG
- merged with AXS (part of AEG)
- AEG - Staples center, DrupalCon LA, anyone?
- merger
- axs.com uses our content to drive ticket sales
- examiner becomes publishing platform delivering content to many destinations
- not designed to do that
Delivering content to users is our main priority.
- our main priority is delivering content
- we did invest significant amount of energy into content creation part
- but! there are limitations
- suddenly we need to send content around
- ... and provide nice creation experice
- ... and send content to another site
- ... and another
- ... and another
Content for AXS!!
Creation experience for all!!!
Blazing fast content delivery!
Oh! And content for Rowdy!
... and for another site!
... and for another site.
... and for another site ...
- Project Shakespear is born
Timeline
Planning: mid 2014
Decision for D8: late 2014
Development starts: early 2015
Why Drupal 8?
Because it is cool!
- Configuration management
- REST built-in
- Contemporary patterns
- Fun for technical team
- Longer lifespan
- We felt capable doing it
- Open timeframe
Why Drupal 7?
No objective reasons really!
- OO :)
- Slower progress/development (contrib missing, chasing moving target)
- Need to learn Drupal again :)
- People are comfortable with D7
- A lot of unknowns
- Working with early releases
How we did it?
Requirements
- Business/product team provides
- feedback
- review
- Result: GDoc with all requirements in one place
- Each item represents an initial user story
- * which are split further as we feel to
Scrum
- part of our culture
- 2 week TBs
- initially "cowboy development" - developers decide what they work on
- list of requirements used as a guideline
- later, when things become "visible", more structured
- Automated - Behat
- each PR tested automatically
- github integration
- Manual QA - jenkins install script
- what is this?
- actuall diff would be just a line (tried, believe me)
- commits in a week
Drupal 8 was a moving target!
- chasing core once a week
- review commit-per-commit
- peer-review
- behat
- sanity check
- things broke
- was not that bad
- sometimes it was :)
- we were able to re-install
Code driven development
- install profile
- modules
- config stored in this modules
Themers kick in
- part of culture
- EX backend, themeing in one TB
- here we had more work
- basic structure in place
- Custom theme based on bootstrap
- more structured scrum
- backend provides support
User testing
- in that phase ATM
- content team
- writers not yet
Next steps?
- contributors get to use it
- Rowdy first
- Then AXS
- Then other "clients"
*almost
Your web browser doesn't support playing this WebM screencast.
Your web browser doesn't support playing this WebM screencast.
Your web browser doesn't support playing this WebM screencast.
What we learned?
- Once you go D8 you never go back.
- Devs are excited.
- No base theme.
- Tests are cool! And help you a lot.
- Not really new for us
- Reviews are cool.
- Feature branches are cool.
- Scrum/agile is cool.
- Code-driven development is cool.