decoupling drupal

Download DeCoupling Drupal

Post on 16-Apr-2017

394 views

Category:

Internet

0 download

Embed Size (px)

TRANSCRIPT

  • 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 CMSBackend

    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 thisYour Companies

    Version Control ServerOne 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

    RepoLocal Develop

    Repos

  • 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

View more >