SlideShare a Scribd company logo
Hong Kong Drupal User Group 
(HKDUG) 
Workshop & Sharing 
2014 December 13th
Wong Hoi Sing, Edison 
● CEO, Founder, PantaRei Design 
– 2009, PantaRei Design founded 
– 2010, HKFYG YBHK applicant 
– 2011, ITF SERAP applicant 
– 2011, HKSTP Incu-Tech applicant 
● FOSS and Drupal Developer, Contributor and HKDUG Co-founder 
– 2000, Debian GNU/Linux 2.2 ('potato') 
– 2005, Drupal Developer 
– 2008, BarCamp HK Speaker 
– 2008, HKDUG Co-founder 
– 2011, Drupal 7.x Core Contributor 
● hswong3i@pantarei-design.com 
● https://www.drupal.org/u/hswong3i
PantaRei Design 
● Hong Kong based FOSS service provider 
– Content Management System (CMS) with Drupal 
– Cloud Hosting Solution with Amazon Web Services 
(AWS) 
● Business Partner with industry leaders 
– 2012, AWS Consulting Partner 
– 2013, Acquia Partner 
– 2013, Atlassian Experts 
– 2014, Rackspace Hosting Partner
Outline 
● What is Drupal? 
● Evaluate Drupal Project Online 
● Scalable & Modularized Architecture 
● Export Settings with Features 
● Revision Control with GIT
What is Drupal? 
● Drupal is an open-source platform and content 
management system (CMS) for building dynamic web 
sites 
● Distributed under the terms of the GNU General 
Public License (or "GPL"), which means anyone is 
free to download it and share it with others 
● To easily organize, manage and publish your content, 
with an endless variety of customization
Evaluate Drupal Project Online 
● http://simplytest.me/ 
● On-demand sandbox environments 
● No overhead for setup LAMP stack 
● Simple, fast and for free! 
● Let's try it now! 
– http://simplytest.me/project/drupal/7.x 
– http://simplytest.me/project/drupal/8.x 
– http://simplytest.me/project/drustack/7.x-26.x
Evaluate Drupal Project Online 
(cont.) 
● Check “Status report” page 
● Add new article 
● Add new main menu link 
● Add new block to region 
● Add new user 
● Change look & feel (theme) 
● Change system settings
Scalable & Modularized 
Architecture 
● Why? 
– Easy for implementation 
– Reduce team development overhead 
– Managable and redeployable 
● How? 
– Categorizing changes in different level 
– Export data/settings with Features 
– Manage revision with GIT
Scalable & Modularized 
Architecture (cont.) 
● Categorizing 
– Global modules configuration (Module) 
– Content types (CCK) 
– Dummy data (UUID Features) 
– Filtering logics (Views) 
– Contextual conditions and reactions (Context) 
– MISC 
– Look & feel (Theme)
Module 
● Review your project requirement 
● Choose which modules/distribution would be suitable, 
e.g. 
– https://drupal.org/project/commerce_kickstart 
– https://drupal.org/project/commons 
– https://drupal.org/project/drustack 
● Enable and configure 
– admin/config 
– admin/structure
Content Construction Kit (CCK) 
● Content type is the main container for CMS 
– admin/structure/types 
● Group your content type by functionality 
– i.e. share same fields structure 
– Moreover, use Taxonomy to label different purpose 
● Keep It Simple Stupid (KISS) 
● Less is More 
● CCK is in Drupal 7 core!
UUID Features 
● Node/Term with UUID = Features exportable 
● Taxonomy term related to filtering logic should 
be export with UUID Features 
– i.e. can remap with UUID in Views 
● Usually, only basic pages should be export with 
UUID Features 
– Dynamic content migration should consider Migrate 
● Patches required
Views 
● Filter content with no custom code nor SQL 
required 
– admin/structure/views 
● Manage with GUI 
● Supported by most 3rd party modules 
● Exportable with Features 
– Good combo with Taxonomy + UUID Features! 
● Views is in Drupal 8 Core!
Context 
● Manage contextual conditions and reactions for 
different portions 
– admin/structure/context 
● Very flexible and powerful (i.e. by rules) 
– Drupal default with by blocks 
● Reuse theme predefined regions 
– Panels default custom layout and design 
● Exportable with Features 
– Good combo with Taxonomy + UUID Features!
MISC 
● Custom blocks 
– https://drupal.org/project/boxes 
– https://drupal.org/project/bean 
● Custom modules 
● Additional functionality
Theme 
● Site should work well even with Drupal default 
theme 
● Keep away from custom PHP logic 
– Try to implement with previous level 
– Reduce backend dependency 
● Don't hack core 
– Overriding with themable output
Export Settings with Features 
● By default, modules settings store in database 
– variable_get(), variable_set(), variable_del() 
● Features can export these dynamic changes into a 
new custom module (a.k.a. Features export) 
– https://drupal.org/project/features 
● After export, latest changes can compare with 
archived version, and (partly) rollback or recreate
Export Settings with Features 
(cont.) 
● With Scalable & Modularized Architecture 
– Export each layer, each group of configuration, individually 
● Team development can be workout by sharing code, 
and maintain own environment independently 
– Shared testbed (i.e. single copy of code + database) no 
longer required 
● Redeployable 
– i.e. Continous Integration (CI) possible
Export Settings with Features 
(cont.) 
● Knowledge management become possible 
● Reduce development risk 
● Reduce on going maintenance overhead
Revision Control with GIT (cont.) 
● CSV 
– Manage revision per file (rename not support) 
– Remote repository server required (no local folder 
offline management) 
– Single commit management (other else contribute 
by submit patches) 
– TOOOOO OLD (well...) 
● Used by Drupal during 7.x development cycle 
● After Drupal 7 released, soon migrated to GIT
Revision Control with GIT (cont.) 
● SVN 
– Manage revision per folder 
– Remote repository server required 
– Single commit management 
– A bit better than CSV, but branching model still 
looks crazy 
● At least, we now have GIT, why still using SVN?
Revision Control with GIT (cont.) 
● GIT 
– Manage revision per entire project 
– Remote/local repository supported 
● git init 
● git add --all 
● git commit -am 'Initial commit' 
● git push 
● git log 
● git status 
– Distributed workflows 
– Used by https://drupal.org/ since Drupal 7 
– You also know https://github.com/, isn't it?
Revision Control with GIT (cont.) 
● Drupal configuration goes dynamic 
● Features export make it as static files 
● Static files revision control by GIT 
● Team members can therefore share progress 
by managed code with GIT 
● Project manager (PM) can review individual pull 
request submitted by team members, and fully 
test before commit to main stream
Q&A
I Need More Help! 
● Read documents from Drupal Community 
– https://drupal.org/documentation 
● Join Hong Kong Drupal User Group 
– http://www.meetup.com/Hong-Kong-Drupal-User-Group/ 
– https://groups.drupal.org/hong-kong 
● Contact us for one (1) month free-trial support 
service 
– sales@pantarei-design.com
Thank You 
● Please feel free to contact us: 
– PantaRei Design Limited 
– Unit 326, 3/F, Building 16W 
No.16 Science Park West Avenue 
Hong Kong Science Park, Shatin, N.T. 
– Phone: +852 2576 3812 
– Fax: +852 3753 3663 
– Email: sales@pantarei-design.com 
– Web: http://pantarei-design.com

More Related Content

Similar to Drupal Architecture and functionality

Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8th
Wong Hoi Sing Edison
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
Philip Norton
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
Wong Hoi Sing Edison
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hood
Guido Stevens
 
Barcamp Hong Kong 2014 - Introduction to GIT
Barcamp Hong Kong 2014 - Introduction to GITBarcamp Hong Kong 2014 - Introduction to GIT
Barcamp Hong Kong 2014 - Introduction to GIT
Wong Hoi Sing Edison
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Wong Hoi Sing Edison
 
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdfLupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
WolfgangZiegler6
 
Open Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thOpen Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26th
Wong Hoi Sing Edison
 
Migrations
MigrationsMigrations
Migrations
Yaron Tal
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDoku
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
MariaDB plc
 
01 - Git vs SVN
01 - Git vs SVN01 - Git vs SVN
01 - Git vs SVN
Edward Goikhman
 
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Chipway
 
pfSense 2.3 Preview - pfSense Hangout December 2015
pfSense 2.3 Preview - pfSense Hangout December 2015pfSense 2.3 Preview - pfSense Hangout December 2015
pfSense 2.3 Preview - pfSense Hangout December 2015
Netgate
 
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
Movel
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
Jon Peck
 
Drupal 8 update: May 2014. Migrate in core.
Drupal 8 update: May 2014. Migrate in core.Drupal 8 update: May 2014. Migrate in core.
Drupal 8 update: May 2014. Migrate in core.
Vladimir Roudakov
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
Dan Stine
 

Similar to Drupal Architecture and functionality (20)

Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8th
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hood
 
Barcamp Hong Kong 2014 - Introduction to GIT
Barcamp Hong Kong 2014 - Introduction to GITBarcamp Hong Kong 2014 - Introduction to GIT
Barcamp Hong Kong 2014 - Introduction to GIT
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
 
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdfLupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
 
Open Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26thOpen Innovation Lab (OIL) - 2014 Sep 26th
Open Innovation Lab (OIL) - 2014 Sep 26th
 
Migrations
MigrationsMigrations
Migrations
 
Praes
PraesPraes
Praes
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
 
01 - Git vs SVN
01 - Git vs SVN01 - Git vs SVN
01 - Git vs SVN
 
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
 
pfSense 2.3 Preview - pfSense Hangout December 2015
pfSense 2.3 Preview - pfSense Hangout December 2015pfSense 2.3 Preview - pfSense Hangout December 2015
pfSense 2.3 Preview - pfSense Hangout December 2015
 
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
Scaling AngularJS: Enterprise SOA on the MEAN Stack (Responsive Web & Mobile)
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Drupal 8 update: May 2014. Migrate in core.
Drupal 8 update: May 2014. Migrate in core.Drupal 8 update: May 2014. Migrate in core.
Drupal 8 update: May 2014. Migrate in core.
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

Drupal Architecture and functionality

  • 1. Hong Kong Drupal User Group (HKDUG) Workshop & Sharing 2014 December 13th
  • 2.
  • 3. Wong Hoi Sing, Edison ● CEO, Founder, PantaRei Design – 2009, PantaRei Design founded – 2010, HKFYG YBHK applicant – 2011, ITF SERAP applicant – 2011, HKSTP Incu-Tech applicant ● FOSS and Drupal Developer, Contributor and HKDUG Co-founder – 2000, Debian GNU/Linux 2.2 ('potato') – 2005, Drupal Developer – 2008, BarCamp HK Speaker – 2008, HKDUG Co-founder – 2011, Drupal 7.x Core Contributor ● hswong3i@pantarei-design.com ● https://www.drupal.org/u/hswong3i
  • 4. PantaRei Design ● Hong Kong based FOSS service provider – Content Management System (CMS) with Drupal – Cloud Hosting Solution with Amazon Web Services (AWS) ● Business Partner with industry leaders – 2012, AWS Consulting Partner – 2013, Acquia Partner – 2013, Atlassian Experts – 2014, Rackspace Hosting Partner
  • 5.
  • 6.
  • 7. Outline ● What is Drupal? ● Evaluate Drupal Project Online ● Scalable & Modularized Architecture ● Export Settings with Features ● Revision Control with GIT
  • 8. What is Drupal? ● Drupal is an open-source platform and content management system (CMS) for building dynamic web sites ● Distributed under the terms of the GNU General Public License (or "GPL"), which means anyone is free to download it and share it with others ● To easily organize, manage and publish your content, with an endless variety of customization
  • 9.
  • 10.
  • 11.
  • 12. Evaluate Drupal Project Online ● http://simplytest.me/ ● On-demand sandbox environments ● No overhead for setup LAMP stack ● Simple, fast and for free! ● Let's try it now! – http://simplytest.me/project/drupal/7.x – http://simplytest.me/project/drupal/8.x – http://simplytest.me/project/drustack/7.x-26.x
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Evaluate Drupal Project Online (cont.) ● Check “Status report” page ● Add new article ● Add new main menu link ● Add new block to region ● Add new user ● Change look & feel (theme) ● Change system settings
  • 21. Scalable & Modularized Architecture ● Why? – Easy for implementation – Reduce team development overhead – Managable and redeployable ● How? – Categorizing changes in different level – Export data/settings with Features – Manage revision with GIT
  • 22. Scalable & Modularized Architecture (cont.) ● Categorizing – Global modules configuration (Module) – Content types (CCK) – Dummy data (UUID Features) – Filtering logics (Views) – Contextual conditions and reactions (Context) – MISC – Look & feel (Theme)
  • 23. Module ● Review your project requirement ● Choose which modules/distribution would be suitable, e.g. – https://drupal.org/project/commerce_kickstart – https://drupal.org/project/commons – https://drupal.org/project/drustack ● Enable and configure – admin/config – admin/structure
  • 24. Content Construction Kit (CCK) ● Content type is the main container for CMS – admin/structure/types ● Group your content type by functionality – i.e. share same fields structure – Moreover, use Taxonomy to label different purpose ● Keep It Simple Stupid (KISS) ● Less is More ● CCK is in Drupal 7 core!
  • 25. UUID Features ● Node/Term with UUID = Features exportable ● Taxonomy term related to filtering logic should be export with UUID Features – i.e. can remap with UUID in Views ● Usually, only basic pages should be export with UUID Features – Dynamic content migration should consider Migrate ● Patches required
  • 26. Views ● Filter content with no custom code nor SQL required – admin/structure/views ● Manage with GUI ● Supported by most 3rd party modules ● Exportable with Features – Good combo with Taxonomy + UUID Features! ● Views is in Drupal 8 Core!
  • 27. Context ● Manage contextual conditions and reactions for different portions – admin/structure/context ● Very flexible and powerful (i.e. by rules) – Drupal default with by blocks ● Reuse theme predefined regions – Panels default custom layout and design ● Exportable with Features – Good combo with Taxonomy + UUID Features!
  • 28. MISC ● Custom blocks – https://drupal.org/project/boxes – https://drupal.org/project/bean ● Custom modules ● Additional functionality
  • 29. Theme ● Site should work well even with Drupal default theme ● Keep away from custom PHP logic – Try to implement with previous level – Reduce backend dependency ● Don't hack core – Overriding with themable output
  • 30. Export Settings with Features ● By default, modules settings store in database – variable_get(), variable_set(), variable_del() ● Features can export these dynamic changes into a new custom module (a.k.a. Features export) – https://drupal.org/project/features ● After export, latest changes can compare with archived version, and (partly) rollback or recreate
  • 31.
  • 32. Export Settings with Features (cont.) ● With Scalable & Modularized Architecture – Export each layer, each group of configuration, individually ● Team development can be workout by sharing code, and maintain own environment independently – Shared testbed (i.e. single copy of code + database) no longer required ● Redeployable – i.e. Continous Integration (CI) possible
  • 33. Export Settings with Features (cont.) ● Knowledge management become possible ● Reduce development risk ● Reduce on going maintenance overhead
  • 34. Revision Control with GIT (cont.) ● CSV – Manage revision per file (rename not support) – Remote repository server required (no local folder offline management) – Single commit management (other else contribute by submit patches) – TOOOOO OLD (well...) ● Used by Drupal during 7.x development cycle ● After Drupal 7 released, soon migrated to GIT
  • 35. Revision Control with GIT (cont.) ● SVN – Manage revision per folder – Remote repository server required – Single commit management – A bit better than CSV, but branching model still looks crazy ● At least, we now have GIT, why still using SVN?
  • 36. Revision Control with GIT (cont.) ● GIT – Manage revision per entire project – Remote/local repository supported ● git init ● git add --all ● git commit -am 'Initial commit' ● git push ● git log ● git status – Distributed workflows – Used by https://drupal.org/ since Drupal 7 – You also know https://github.com/, isn't it?
  • 37.
  • 38.
  • 39. Revision Control with GIT (cont.) ● Drupal configuration goes dynamic ● Features export make it as static files ● Static files revision control by GIT ● Team members can therefore share progress by managed code with GIT ● Project manager (PM) can review individual pull request submitted by team members, and fully test before commit to main stream
  • 40.
  • 41. Q&A
  • 42. I Need More Help! ● Read documents from Drupal Community – https://drupal.org/documentation ● Join Hong Kong Drupal User Group – http://www.meetup.com/Hong-Kong-Drupal-User-Group/ – https://groups.drupal.org/hong-kong ● Contact us for one (1) month free-trial support service – sales@pantarei-design.com
  • 43. Thank You ● Please feel free to contact us: – PantaRei Design Limited – Unit 326, 3/F, Building 16W No.16 Science Park West Avenue Hong Kong Science Park, Shatin, N.T. – Phone: +852 2576 3812 – Fax: +852 3753 3663 – Email: sales@pantarei-design.com – Web: http://pantarei-design.com