View
416
Download
0
Category
Preview:
Citation preview
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 IAimee Maree Forsstrom Software Engineer – Drupal Community Member since 2008@aimee_maree aimee@linux.com
Worked in the field of Information Technology since 2000Long list of work in Open Source Content Management Systems (PHPbb, Coppermine, Joomla, WordPress, Drupal)
Drupal Community member since 2008Drupal Solutions Designer since 2008Drupal Community contributor (DrupalCon Copenhagen Volunteer, DrupalCon Sydney Social Media Started Learning Drupal SydneyProvided 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 DecoupledFrontend
CMS
Backend Frontend
Angular
Modern PaceFront 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 5yearsWhy? Because backends are complex systems but
Frontends are display systems
Front End 2005
Front End 2015
Technology StackCMS Backend
Content Database
PHP facilitates Data.json .xml
JS receives data Generates HTML
Web ServicesDecoupling 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
MicroservicesTraditional 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 AdaptationFront 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
AdvantagesEnables 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.x2008
Drupal 7.x2011
Drupal 8.x2015 ?
New Workflow
New CMS
New Design Re-Design Re-Design
Drupal X.x20XX
Re-Design
ManagementSeparation of Frontend and Backend
Enables separate smaller Development TeamsEach 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 ControlCMS 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 coreCustom Drupal Modules
Frontend Template
Drupal Project
Repo
Local DevelopRepos
To thisYour Companies
Version Control ServerMany Repo's
Drupal core Repo
FrontendRepo
Mobile AppRepo
Drupal Project
Repo
Local DevelopRepos
SeparationFrontend 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 ChangesFrontend
DevelopersBackend
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
FrontendGit 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 sameBackend 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 ProofNow 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
ConclusionEasier to Manage
Easier to hire Frontend DevelopersAllows for a higher ROI on the initial CMS build
Does enforce a change of approach to deploymentNothing comes with disadvantages
Your can take a hybrid approach
Thank You
@aimee_maree
CreditsLogos of Technology projects shown are copyright
as per project guidelines
Recommended