Decoupling Drupal - Drupal Camp Toronto 2014
Post on 08-May-2015
DESCRIPTIONWhat if you could say to a front-end developer: Build it the best way you know how and with the best tools available. Dont worry that were using Drupal You can see the presentation video here https://www.youtube.com/watch?v=W1rc5CEro6U or go to the last slide.
- 1.Decoupling Drupal
2. Alex De Winne 15 years in the industry Drupal since 4.7 Founder of Therefore Hacker, visionary, tech enthusiast & musician 3. Build it the best way you know how and with the best tools available. Dont worry that were using Drupal What if you could say to a front-end developer: 4. Use Drupal more like its a Content Management System and less like its a Web Publishing Tool 5. WPT vs CMS The goal of a Web Publishing Tool is to capture content with the primary purpose of publishing web pages. The goal of any CMS should be to allow storage of structured content and dissemination of content to any platform, in any presentation, at any time. 6. Decoupling Drupal It means making no assumptions as to where your content will end up. Whats required is complete separation between the Backend Content Model and the Front-End. Its about seeing Drupal as a component of a Distributed CMS rather than a Monolith Web Publishing Tool. 7. Typical Drupal Architecture Browser Drupal Browser 8. The Monolithic Stack In the 90s, virtually all applications were written using well defined stacks of services and deployed on a single monolithic, proprietary server. 1995 Thick, client-server app on thick client Well-defined stack: O/S Runtime Middleware Monolithic Physical Infrastructure Does this look familiar? 9. The Landscape 10. Karen says we need Reusable content Structured content Meaningful meta data A presentation independent CMS 11. COPE NRP has been operating a decoupled CMS for over 10 years. NPR credits its API with increasing page views by 80%, largely because theyre able to get their content onto a variety of mobile devices without custom programming. Create Once, Publish Everywhere 12. NPRs COPE Architecture CMS Data Entry Static Data API Cache Renders 13. Case Study www.niagaracruises.com 14. Client Host Twitter Sprints 1 - 2 Discovery Static Design & Rebuild AODA Single A Launch 15. MySQL Blog Authoring Client Host DocPad Static Site Disqus Twitter Sprints 3 - 4 Drupal + Services Node + Hapi Router Blog CMS Coverage Heroku 16. Heroku MySQL DocPad Static Site Full CMS Authoring Client Host Disqus Twitter Sprint 5 80% CMS Coverage 17. Heroku MySQL DocPad Static Site Client Host Disqus Twitter Sprint 6 - 7 AODA AA French & Spanish Translate Full CMS Authoring 18. Heroku MySQL DocPad Static Site CMS Authoring Client Host Disqus Twitter Translate 19. What We Learned & What You Can Expect to Change When Working in a Decoupled CMS Architecture 20. Youll start to think differently about your CMS Youll start to see your CMS as a tool content writers and content architects like to hang out. Front-end developers will see it an API to a content repository. No longer a system that dictates which technologies they can or cant use. 21. Workflow Optimization Prototypes can turn into the real thing with no extra work. Just add API Decreased dependancies allow teams to operate more efficiently. Reduces the risk that a change made within one element will create unanticipated changes within other elements. 22. Upgradeability / Interchangeability Swap out front-ends, keep the back- end as is Add front-end publishing end points, keep the back-end as is Back-end upgrades, keep the front- end as is. 23. Increased Reliability and Security A full stack CMS falls apart if any component stops working properly. Its pretty hard to break a static website. Drupal can be safely hidden behind a corporate firewall. Only the API is required to be exposed, and optionally restricted to only interfacing with the static server. 24. Increased Scope Flexibility In many cases its not a requirement to have 100% CMS coverage. If were working towards a fixed cost project with a flexible scope, one of the elements that could get de-prioritized is CMS coverage. It can always be added later. 25. Speed and Scalability Caching of the static files in memory Serving files from a CDN or a load balanced configuration Utilizing a distributed file system to avoid slow disk performance bottlenecks It doesnt get much faster than a static site. But, when you need even more speed here are some options: 26. Multi-Channel Publishing Multi-Channel publishing becomes a reality. Additional projects can be seen as extensions to the existing infrastructure rather than a static implementation. 27. Human Resources Doors are opened to a greater talent pool. Front-end designers and developers dont need to be Drupal developers. 28. Cant All Be Rainbows and Unicorns 29. Challenges Authentication and roles are potentially more complicated to setup. Reusable logic patterns become non-reusable when moved to the front-end. Challenges arise with X-domain requests. 30. Where Can It Go From Here? 31. DevOps Service Components Redis PaaS S3CDN Content Delivery Network module Pantheon, Aberdeen, Acquia Amazon Cloud File System Caching DB Server 32. External Cloud Services Redis Disqus Prediction Twilio Hapi Router PaaS S3CDN Translate Google Voice API Comments 33. API Based Front-End Publishing Redis Disqus Prediction Twillio Hapi Router DocPad Static Site iPhone App Print Workflow PaaS S3CDN Translate HTTP Router HTML Site Native App PDF Document 34. Standardized Content Model Redis PHPCR Storage API Mongo DB Midgard2 Hapi Router DocPad Static Site iPhone App Print Workflow Medium PaaS S3CDN Disqus Prediction Twillio Translate Standardized Storage API JCR Compatible Data Store CouchDB 35. Decoupled Authoring Tools Redis PHPCR Storage API Mongo DB Midgard2 Hapi Router DocPad Static Site iPhone App Print Workflow Authoring Tools Gather Content Medium PaaS S3CDN Custom iPad App Disqus Prediction Twillio Translate 36. Redis PHPCR Storage API Mongo DB Midgard2 Hapi Router DocPad Static Site iPhone App Print Workflow Authoring Tools Gather Content Medium PaaS S3CDN Distributed CMS based on Best-of-Breed Components Custom iPad App Disqus Prediction Twillio Translate 37. Is this all a bunch of blue sky dreaming? Maybe, but check out what prismic is up to 38. It features a Writing Room for content writers to author, manage and store content, and a Content Query API for developers to integrate managed content into any website or app. REST, JSON or HTML, effective API browser, easy to use Comfortable content creation experience. Addressing content writers real-life problems. Content is API-based. Inject it easily into new platforms and sites. 39. Questions 40. Thank you 41. Links http://docpad.org/ spumko.github.io/ http://phpcr.github.io/ http://prismic.io http://www.exoplatform.com/ (CMS that uses JCR) http://nedonosko.blogspot.ca/2009/09/jcr-based-content- management.html http://www.html5rocks.com/en/tutorials/cors/