1. DeCoupling Drupal
Aimee Maree Forsstrom
Software Engineer – Advocate
@aimee_maree aimee@linux.com
What is DeCoupled Drupal?
How can it help your deployment strategies?
2. 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
3. Agenda
What is Decoupled Drupal
Traditional CMS technology stack
Decoupled CMS technology stack
Advantages of Decoupling
Traditional CMS Workflow
Decoupled CMS Workflow
8. 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
12. 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
14. 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
15. 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
16. 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
17. 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 ?
19. 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
20. 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
21. From this
Your Companies
Version Control Server
One Repo
Drupal core
Custom Drupal Modules
Frontend Template
Drupal
Project
Repo
Local Develop
Repos
22. To this
Your Companies
Version Control Server
Many Repo's
Drupal core Repo
Frontend
Repo
Mobile App
Repo
Drupal
Project
Repo
Local Develop
Repos
23. 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
25. 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
26. 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
27. 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
28. 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
29. 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