How we built an enterprise media publishing platform on Drupal 8 – How we did it? – Media entity (and friends*)



How we built an enterprise media publishing platform on Drupal 8 – How we did it? – Media entity (and friends*)

1 0


pubtool_session

Slide deck for Pubtool case study session.

On Github Examiner / pubtool_session

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

Peer reviews

- github pull request - feature branches - peer-review - release manager

Initial backend development

- backend - structure, basic entity types - install profile - project structure

Testing (automated and manual)

- 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"

Media entity (and friends*)

http://drupal.org/project/media_entity

Twitter, Instagram, slideshow, ...

Inline entity form

http://drupal.org/project/inline_entity_form

Entity browser

http://drupal.org/project/entity_browser

Relation

http://drupal.org/project/relation

Bootstrap

http://drupal.org/project/bootstrap

Demo time!

*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.

Questions?

Brought to you by examiner.com.