DeCoupling Drupal
Aimee Maree Forsstrom
Software Engineer – Advocate
@aimee_maree aimee@linux.com
What is DeCoupled Drupal?
How can it help your deployment strategies?
Who am I
Aimee Maree Forsstrom
Software Engineer – Drupal Community Member since 2008
@aimee_maree aimee@linux.com
Worked in the field of Information Technology since 2000
Long list of work in Open Source Content Management Systems (PHPbb,
Coppermine, Joomla, WordPress, Drupal)
Drupal Community member since 2008
Drupal Solutions Designer since 2008
Drupal Community contributor (DrupalCon Copenhagen Volunteer,
DrupalCon Sydney Social Media
Started Learning Drupal Sydney
Provided Forum and irc support for Drupa and Drupal Mentor
Agenda
What is Decoupled Drupal
Traditional CMS technology stack
Decoupled CMS technology stack
Advantages of Decoupling
Traditional CMS Workflow
Decoupled CMS Workflow
Traditional CMS
Backend
CMS
Frontend
Content is King
Decoupled CMS
Frontend
CMS
Backend
Partial Decoupled
Frontend
CMS
Backend Frontend
Angular
Modern Pace
Front end moves faster then CMS Development can
Drupal Frontends can be messy and hard to hire
people who can rapidly work in the space
Drupal8 has been in development for 5years
Why? Because backends are complex systems but
Frontends are display systems
Front End 2005
Front End 2015
Technology Stack
CMS Backend
Content Database
PHP facilitates Data
.json .xml
JS receives data
Generates HTML
Web Services
Decoupling is achieved by enabling a Restful API
Content is output as .json or .xml
For Drupal you can enable this through services
module or through the Rest API module
Your CMS is now a JSON server and all
nodes/content can be consumed through by a json
file
Targeted Apps
Content
Xbox
Feeds
Smart
TV
Web
Mobile
Wearable
Microservices
Traditional CMS wants to deliver HTML
HTML is not good for custom Apps to consume
Drupal only provides the logic to run the web
application behind scenes
Rapid Adaptation
Front end is typically where the most rapid
changes need to take place
By decoupling the backend the frontend can now
keep up with modern frameworks
Enables new Design needs to be implemented
quickly
Advantages
Enables the CMS to be broken into Microservices
CMS Does what it is good at managing complex
content models
Content is consumed via JSON into separate Apps
Angular JS, Web Apps, Smart TV Apps
Re-Design tied into version upgrades goes away
Legacy Workflow
New CMS Version Upgrade Version Upgrade
New Design Re-Design Re-Design
Drupal 6.x
2008
Drupal 7.x
2011
Drupal 8.x
2015 ?
New Workflow
New CMS
New Design Re-Design Re-Design
Drupal X.x
20XX
Re-Design
Management
Separation of Frontend and Backend
Enables separate smaller Development Teams
Each Team have their own repo and release cycle
Stops teams interfering with deployment cycles
Separate CI/CD and release cycle for Backend
Components to Frontend Components
Version Control
CMS backend components can be stored in a
separate git repo that is connected and updated
via the main Drupal project repo
Enables the Front End, Mobile App code to be
maintained in their own repo
From this
Your Companies
Version Control Server
One Repo
Drupal core
Custom Drupal Modules
Frontend Template
Drupal
Project
Repo
Local Develop
Repos
To this
Your Companies
Version Control Server
Many Repo's
Drupal core Repo
Frontend
Repo
Mobile App
Repo
Drupal
Project
Repo
Local Develop
Repos
Separation
Frontend Development happens at a rapid rate
Web App and Frontend development can take place
without the need to commit into main CMS Repo
Separation of tasks allows development teams to
focus on their own repo tests / QA checks
Less interference between frontend and backend
Workflow Changes
Frontend
Developers
Backend
Developers
API
Components
Enables Backend Teams to build out and work on
larger components without interfering with
Frontend release cycles
CMS feature and Module updates can be applied
and tested without the need to modify frontend
Release Cycles
Frontend
Git Repo
Mobile
Git Repo
Now we have separate release cycles
Deploy Daily
Backend
Git Repo
Deploy Weekly
Deploy Monthly
Code Tests
Code Tests
Code Tests
Stays the same
Backend can stay the same version
Removes dependence to upgrade versions to
accommodate new Frontend features
Security updates can be isolated and tested on the
backend with no interference to the frontend repo
Content Editors can continue working in a familiar
environment
Future Proof
Now that our CMS has become Web Service
enabled Mobile Apps can be built and utilise our
CMS as their content backend
We can create new Development Teams and
Release Cycles to enable rapid development and
prototyping without effecting or current cycle
Examples are Mobile, IOT, Wearables, Smart TV
And whatever the future may hold
Conclusion
Easier to Manage
Easier to hire Frontend Developers
Allows for a higher ROI on the initial CMS build
Does enforce a change of approach to deployment
Nothing comes with disadvantages
Your can take a hybrid approach
Thank You
@aimee_maree
Credits
Logos of Technology projects shown are copyright
as per project guidelines

DeCoupling Drupal

  • 1.
    DeCoupling Drupal Aimee MareeForsstrom Software Engineer – Advocate @aimee_maree aimee@linux.com What is DeCoupled Drupal? How can it help your deployment strategies?
  • 2.
    Who am I AimeeMaree Forsstrom Software Engineer – Drupal Community Member since 2008 @aimee_maree aimee@linux.com Worked in the field of Information Technology since 2000 Long list of work in Open Source Content Management Systems (PHPbb, Coppermine, Joomla, WordPress, Drupal) Drupal Community member since 2008 Drupal Solutions Designer since 2008 Drupal Community contributor (DrupalCon Copenhagen Volunteer, DrupalCon Sydney Social Media Started Learning Drupal Sydney Provided Forum and irc support for Drupa and Drupal Mentor
  • 3.
    Agenda What is DecoupledDrupal Traditional CMS technology stack Decoupled CMS technology stack Advantages of Decoupling Traditional CMS Workflow Decoupled CMS Workflow
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    Modern Pace Front endmoves faster then CMS Development can Drupal Frontends can be messy and hard to hire people who can rapidly work in the space Drupal8 has been in development for 5years Why? Because backends are complex systems but Frontends are display systems
  • 9.
  • 10.
  • 11.
    Technology Stack CMS Backend ContentDatabase PHP facilitates Data .json .xml JS receives data Generates HTML
  • 12.
    Web Services Decoupling isachieved by enabling a Restful API Content is output as .json or .xml For Drupal you can enable this through services module or through the Rest API module Your CMS is now a JSON server and all nodes/content can be consumed through by a json file
  • 13.
  • 14.
    Microservices Traditional CMS wantsto deliver HTML HTML is not good for custom Apps to consume Drupal only provides the logic to run the web application behind scenes
  • 15.
    Rapid Adaptation Front endis typically where the most rapid changes need to take place By decoupling the backend the frontend can now keep up with modern frameworks Enables new Design needs to be implemented quickly
  • 16.
    Advantages Enables the CMSto be broken into Microservices CMS Does what it is good at managing complex content models Content is consumed via JSON into separate Apps Angular JS, Web Apps, Smart TV Apps Re-Design tied into version upgrades goes away
  • 17.
    Legacy Workflow New CMSVersion Upgrade Version Upgrade New Design Re-Design Re-Design Drupal 6.x 2008 Drupal 7.x 2011 Drupal 8.x 2015 ?
  • 18.
    New Workflow New CMS NewDesign Re-Design Re-Design Drupal X.x 20XX Re-Design
  • 19.
    Management Separation of Frontendand Backend Enables separate smaller Development Teams Each Team have their own repo and release cycle Stops teams interfering with deployment cycles Separate CI/CD and release cycle for Backend Components to Frontend Components
  • 20.
    Version Control CMS backendcomponents can be stored in a separate git repo that is connected and updated via the main Drupal project repo Enables the Front End, Mobile App code to be maintained in their own repo
  • 21.
    From this Your Companies VersionControl Server One Repo Drupal core Custom Drupal Modules Frontend Template Drupal Project Repo Local Develop Repos
  • 22.
    To this Your Companies VersionControl Server Many Repo's Drupal core Repo Frontend Repo Mobile App Repo Drupal Project Repo Local Develop Repos
  • 23.
    Separation Frontend Development happensat a rapid rate Web App and Frontend development can take place without the need to commit into main CMS Repo Separation of tasks allows development teams to focus on their own repo tests / QA checks Less interference between frontend and backend
  • 24.
  • 25.
    Components Enables Backend Teamsto build out and work on larger components without interfering with Frontend release cycles CMS feature and Module updates can be applied and tested without the need to modify frontend
  • 26.
    Release Cycles Frontend Git Repo Mobile GitRepo Now we have separate release cycles Deploy Daily Backend Git Repo Deploy Weekly Deploy Monthly Code Tests Code Tests Code Tests
  • 27.
    Stays the same Backendcan stay the same version Removes dependence to upgrade versions to accommodate new Frontend features Security updates can be isolated and tested on the backend with no interference to the frontend repo Content Editors can continue working in a familiar environment
  • 28.
    Future Proof Now thatour CMS has become Web Service enabled Mobile Apps can be built and utilise our CMS as their content backend We can create new Development Teams and Release Cycles to enable rapid development and prototyping without effecting or current cycle Examples are Mobile, IOT, Wearables, Smart TV And whatever the future may hold
  • 29.
    Conclusion Easier to Manage Easierto hire Frontend Developers Allows for a higher ROI on the initial CMS build Does enforce a change of approach to deployment Nothing comes with disadvantages Your can take a hybrid approach
  • 30.
    Thank You @aimee_maree Credits Logos ofTechnology projects shown are copyright as per project guidelines