55
© 2015 Phase2 Drupal 8, Don’t Be Late

Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)

  • Upload
    phase2

  • View
    73

  • Download
    0

Embed Size (px)

Citation preview

© 2015 Phase2

Drupal 8, Don’t Be Late

© 2015 Phase2

About us

Evan Liebman - Director of MSK Digital

Frank Febbraro - CTO, Phase2

Michael Le Du - Head of Strategic Accounts, Phase2

© 2015 Phase2

The time has come to consider Drupal 8

© 2015 Phase2

Content as we know it, is changing

● Text and images (most websites)● Multimedia (YouTube, Netflix, Spotify)● Web Applications (Trello, Basecamp, Salesforce)● Social Media Streams (Facebook, Twitter, etc)● IoT (FitBit, Automatic for autos, Echobee)

© 2015 Phase2

Content consumption has changed

● PCs consuming web pages● Mobile (iPhone, iPad, Android)● “Over the top” (AppleTV, Xbox/PS, Smart-TV)● Wearables (Apple Watch, Google Glass)● IoT (Amazon Echo, Smart appliances, Automotive)

© 2015 Phase2

Dries addressed this in his keynote

● getNextBestExperience()● Integrating with 3rd party services● Pushing contextual content to different endpoints● Personalized content experiences

○ No two experiences are the same○ 100% dynamic

© 2015 Phase2

Could you be disrupted?

● Does your current CMS allow you to easily distribute content in these channels?

● In a maintainable and extensible way?● If you don’t make your content readily accessible

where people consume it, and relevant to their context, someone else will (or already has).

© 2015 Phase2 Don’t be “LEFT BEHIND”

CONTENT. COLLABORATION. EXPERIENCE.

Drupal 8Now?

CONTENT. COLLABORATION. EXPERIENCE.

Spoiler Alert!!Drupal 8 is already being used in

production

© 2015 Phase2

Why now is the time to consider Drupal 8

● It’s being used in production● Has stack support for all required components● Less dependence on contrib● Fully reap the benefits of the platform lifecycle● Use a tool built for today and the future● Become part of the solution● A chance to attract the best talent

© 2015 Phase2

Memorial Sloan KetteringDrupal 8 Case Study

© 2015 Phase2

-Jacob Rockowitz

“Drupal 8, Don’t Be Late”

© 2015 Phase2

How the MSK Culture Inspired Us to Become an Early Adopter of Drupal 8

● A culture of innovation● Relentless pursuit, and unmatched expertise that

results in breakthrough advances

© 2015 Phase2

Collaborative Focus at MSK

● Multi-center studies driving the generation of new knowledge

● Cross service collaboration to aid the diagnosis and treatment, and research

© 2015 Phase2

Why is Community important?

● We are all trying to solve similar problems● People can leverage our work● Can leverage other people’s work● Allows bigger problems to be solved● The community helps drives Innovation

© 2015 Phase2

MSK’s Strategic Priorities

● Patient Experience● Patient Access● Innovation and Generation of New Knowledge● Talent Recruitment● Financial Sustainability

© 2015 Phase2

Patient Experience and Access

● Easy access to the information the user needs

© 2015 Phase2

Innovation and Generation of New Knowledge● D8 cutting edge technology

© 2015 Phase2

Talent Recruitment

● Broader the talent pool

© 2015 Phase2

Financial Sustainability

● Gain the long term ROI from the investment, no need to re-platform in a few years

© 2015 Phase2

So the Adventure Begins...and Successfully Launches● MSKCC.org● SloanKettering.edu

© 2015 Phase2

This is more than a brochure site

● D6 site with 114 contrib● D8 with 9 modules● Serves 7 personas● Related content● Faceted search● Webforms● Online payment● MailChimp Integration

● Prediction tools ● Multiple sites● Multiple layouts● PDF generation● Multi server cluster● LDAP authentication● Data aggregation● Data synchronization to

apps

© 2015 Phase2

Drupal 8’s Flexibility Simplified Problems

● Can centralize logic into services (layout logic, override controllers without hacking core)

● We created YAML Forms because there was no Web forms● No Panels, we used HTML template expansion● Many D8 module upgrades were only a few days of work

○ Redis, Memcache, Redirect, Node Order

© 2015 Phase2

What else did we gain from Drupal 8?

● Developer velocity (once past the learning curve)● MSK was able to participate in making Drupal 8

better

© 2015 Phase2

Were there any surprises?

● Core features weren’t as “done” as most people believe them to be

● How easy it is to do powerful things with minimal code● Lack of robust documentation

● The power of using YAML and how clean and readable it is○ Non-programmers can create YAML docs

© 2015 Phase2

What did we trade off with Drupal 8?

● There weren’t many contrib modules● Lack of best practices and practical knowledge● Core wasn’t even feature complete when it started

○ Migration, Views, CMI, APIs● Core changed very fast, took work to keep up with

breaking changes● The project went live before a guaranteed upgrade path

© 2015 Phase2

Drupal 8 Lessons Learned

CONTENT. COLLABORATION. EXPERIENCE.

Managing Core & Contrib

© 2015 Phase2

Dedicate a person to core

● Have one person focused primarily on “Core” issues● The ground needs to be cleared for the team● Shepherd patches into core● Re-roll/revive stalled community efforts● Sometimes you have to code around bugs in core

© 2015 Phase2

Schedule for regular upgrades to core

● Either a known working HEAD or release● Plan to pin/freeze within sight of launch● Don’t let it go too long as debt accumulates ● Track the core changelog to understand what could

affect you

© 2015 Phase2

Don’t wait on contrib

● They might not catch up○ Migration○ Layout○ Forms○ Stack Components (memcache/redis)○ LDAP

CONTENT. COLLABORATION. EXPERIENCE.

Addressing Risk

© 2015 Phase2

Prototype to mitigate risk

● Get a site up and prototype key features and functionality● Get your content to migrate and render ● Don’t worry about theming in the beginning (Bartik is

fine)● You can import using bulk insert

© 2015 Phase2

Account for the learning curve

● Give the team time to navigate the learning curve○ You’ll make it up later○ Modern PHP / Services / Symfony / CMI enable more

productivity○ Teams need to learn new way

■ Learn to do things the right way via Services, etc.■ They also need to unlearn old Drupal ways

© 2015 Phase2

Don't assume you know what would go well

● Be ready to have a plan B & C (you’ll probably need it)● Core features may not be as “done” as you think● Plan for potential stack issues (PHP, Memcache, etc.)● Be ready to make stack changes if needed

○ Memcache + PHP5.4 => Memcache + PHP 5.5

CONTENT. COLLABORATION. EXPERIENCE.

Pulling It All Together

© 2015 Phase2

Take advantage of the front end separation

● TWIG let’s the front end ramp up quickly● Leverage grunt, bower, sass and other js tools● Services and filters make it easier to

“componentize” the frontend

© 2015 Phase2

Front end component example

© 2015 Phase2

Have tight collaboration between teams

● The frontend was built as a standalone prototype● Once design was approved it was moved into Drupal ● Be flexible both ways

○ sometimes it’s easier to start with Drupal’s markup

○ Sometimes it better to modify TWIG templates

© 2015 Phase2

Use testing to catch regressions

● Use PHPUnit and Behat to catch regressions○ Custom code will break during upgrades (API

changes)○ Make identifying regressions easy and automated○ Especially before a beta to beta migration path exists○ Tests are easier to build when you are extending

objects with existing test coverage

© 2015 Phase2

Use build tools

● Automate, automate, automate● Seriously, don’t wait to do this.● We used a combination of Drush and Grunt● Facilitate integration of multiple repos● Code quality, testing, deployment, migration.

© 2015 Phase2

Manage your dependencies

● Drush Make (now with YAML make file support)● NPM for JS build dependencies● Bower for the front end JS● Grunt was used to materialize the site and build

the frontend

© 2015 Phase2

Make use of YAML where possible

● YAML Forms (webforms configured via YAML)● Your users can write in YAML, seriously, ours do.● YAML is a great format for serialization of data● Install Symfony components to output YAML in D6/7

© 2015 Phase2

Migration shouldn’t be a 2nd class citizen

● You may not use it after launch, but it is certainly not a throw away

● Constant migration is powerful but tricky● Expect the migration to break across environments

○ And across core versions

CONTENT. COLLABORATION. EXPERIENCE.

Managing Environments

© 2015 Phase2

Make is easy to get developers setup

● Complex setups can be brittle across developers ● Our dev's needed VPN access, which was brittle● Dev’s needed to run a long D6 to D8 migration

© 2015 Phase2

Don't neglect your server environments

● Focus on the platform delayed getting our environments provisioned

● Get your servers up early● Try to limit additional risk in the stack● Hard to troubleshoot bugs can creep up here

© 2015 Phase2

Small environmental differences can cause issues

● “Close enough” doesn’t always work to mimic prod● Use all layers of the stack

○ As soon as you have something testable (or before)● Even on the same servers, the hostname can change

behavior● HTTP vs HTTPS can cause differences

© 2015 Phase2

Load testing !== production traffic

● Load tests are great indicators potential problems● They don't actually guarantee anything● Production traffic will always be different

○ Even when replaying production traffic logs● Even “low traffic” times may surprise you

○ A spider started aggressively crawling at 5AM

CONTENT. COLLABORATION. EXPERIENCE.

How can you get started?

© 2015 Phase2

Drupal 8 Considerations

● Pick D8 candidates carefully● No short timelines● Have the right team

○ Drupal exp, quick learners, problem solvers, profilers● Get involved with the community

○ You'll need their help

© 2015 Phase2

Key Resources

● www.mskcc.org● www.sloankettering.edu● Adventures in Drupal 8: http://phase.to/1K8rKuX ● Driving Drupal 8 Adoption: http://phase.to/1cxvsQD● Interview with Evan: http://phase.to/1K8qS9A● Transforming Enterprises w/ Drupal 8 : http://phase.to/1K8r8Fx● Phase2 & MSK: http://phase.to/1K8rsUI

CONTENT. COLLABORATION. EXPERIENCE.

Q&A

PHASE2TECHNOLOGY.COM