decoupling drupal

30
DeCoupling Drupal Aimee Maree Forsstrom Software Engineer – Advocate @aimee_maree [email protected] What is DeCoupled Drupal? How can it help your deployment strategies?

Upload: aimee-maree-forsstrom

Post on 16-Apr-2017

416 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: DeCoupling Drupal

DeCoupling Drupal

Aimee Maree Forsstrom Software Engineer – Advocate

@aimee_maree [email protected]

What is DeCoupled Drupal?How can it help your deployment strategies?

Page 2: DeCoupling Drupal

Who am IAimee Maree Forsstrom Software Engineer – Drupal Community Member since 2008@aimee_maree [email protected]

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

Page 3: DeCoupling Drupal

Agenda What is Decoupled Drupal

Traditional CMS technology stack Decoupled CMS technology stack

Advantages of Decoupling

Traditional CMS Workflow Decoupled CMS Workflow

Page 4: DeCoupling Drupal

Traditional CMS

Backend

CMS

Frontend

Page 5: DeCoupling Drupal

Content is King

Page 6: DeCoupling Drupal

Decoupled CMS

Frontend

CMS

Backend

Page 7: DeCoupling Drupal

Partial DecoupledFrontend

CMS

Backend Frontend

Angular

Page 8: DeCoupling Drupal

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

Page 9: DeCoupling Drupal

Front End 2005

Page 10: DeCoupling Drupal

Front End 2015

Page 11: DeCoupling Drupal

Technology StackCMS Backend

Content Database

PHP facilitates Data.json .xml

JS receives data Generates HTML

Page 12: DeCoupling Drupal

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

Page 13: DeCoupling Drupal

Targeted Apps

Content

Xbox

Feeds

Smart TV

Web

Mobile

Wearable

Page 14: DeCoupling Drupal

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

Page 15: DeCoupling Drupal

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

Page 16: DeCoupling Drupal

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

Page 17: DeCoupling Drupal

Legacy Workflow

New CMS Version Upgrade Version Upgrade

New Design Re-Design Re-Design

Drupal 6.x2008

Drupal 7.x2011

Drupal 8.x2015 ?

Page 18: DeCoupling Drupal

New Workflow

New CMS

New Design Re-Design Re-Design

Drupal X.x20XX

Re-Design

Page 19: DeCoupling Drupal

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

Page 20: DeCoupling Drupal

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

Page 21: DeCoupling Drupal

From this

Your Companies Version Control Server

One Repo

Drupal coreCustom Drupal Modules

Frontend Template

Drupal Project

Repo

Local DevelopRepos

Page 22: DeCoupling Drupal

To thisYour Companies

Version Control ServerMany Repo's

Drupal core Repo

FrontendRepo

Mobile AppRepo

Drupal Project

Repo

Local DevelopRepos

Page 23: DeCoupling Drupal

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

Page 24: DeCoupling Drupal

Workflow ChangesFrontend

DevelopersBackend

Developers

API

Page 25: DeCoupling Drupal

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

Page 26: DeCoupling Drupal

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

Page 27: DeCoupling Drupal

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

Page 28: DeCoupling Drupal

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

Page 29: DeCoupling Drupal

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

Page 30: DeCoupling Drupal

Thank You

@aimee_maree

CreditsLogos of Technology projects shown are copyright

as per project guidelines