Drupal 7 Architectuur
-
Author
maikel-mardjan -
Category
Technology
-
view
3.476 -
download
2
Embed Size (px)
description
Transcript of Drupal 7 Architectuur

DRUPAL 7 ARCHITECTUUR
Concepten, bouwblokken en praktijk
2010 cc Organisatieontwerp.nl
Dinsdag 11 januari 2011
Door: Maikel Mardjan

LEERDOEL
Schrijf voor jezelf vijf leerdoelstellingen op.

JIJ ÉN DEZE WORKSHOP
Maak je eigen aantekeningen
Stel vragen (gedurende de cursus én na afloop)
Iedere sectie heeft een preview en een review

LOGISTIEK
Eindtijd
Koffie / thee
Sanitaire stop(s)
Pauze
Calamiteiten procedures / nooduitgang

WIE?
Wie ben je?
Wat is je ervaring met Drupal?
Bekendheid met OSS?
Bekendheid met WCM?
Bekendheid met „Web 2.0‟?
Bekendheid met technische werking WCM websites?

WIE IS ORGANISATIEONTWERP.NL
Drs. Ir. Maikel J. Mardjan MBM
Meer dan 20 jaar relevante kennis en ervaring op gebied van IT, management en organisatie. Sterk op het raakvlak tussen bedrijfsprocessen en IT.
Msc (ir) Elektrotechniek – Technische Universiteit Delft
Msc (drs) Bedrijfswetenschappen –Rijksuniversiteit Groningen
Master Business Management (MBM) – TSM Business School
Belangrijkste aandachtsgebieden: Architectuur, (IT) ontwerpen, Open Source, Integratie (SOA), Open Innovatie, Nieuwe Management Concepten en Internet.

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

INLEIDING DRUPAL 7
Preview
Wat is Drupal
Nieuwe functies in Drupal 7
Waarom OSS
Populariteit?

WAT IS DRUPAL 7
Drupal 7 is de meest recente release van het open source content management systeem Drupal.
Belangrijkste verbeteringen in Drupal 7:
Gebruikersvriendelijkheid
Beveiliging
Theme system
RDF ondersteuning
SEO optimalisatie
Performance
Architectuur (o.a. database abstractie laag, custom fields)
(> later meer over de verbeteringen)

WAAROM EEN CMS?
Gezamenlijk werken aan het maken en onderhouden van (web)content op een consistente manier.
Door het gebruik van een CMS is het mogelijk om eenvoudiger zelf of door een bedrijf wijzigingen op een website neer te zetten of te onderhouden.
CMS = Content Management System

STANDAARD WCM FUNCTIES IN
DRUPAL7
De basis (core) is in Drupal 7 sterk verbeterd:
Een content repository (flexibel, schaalbaar en uitbreidbaar)
Authenticatie van gebruikers (auteurs, editors, reviewers etc)
Content creatie via web browser (Echter noodzakelijke wysiwyg editor zit NIET in core!)
Templates (look & feel / content templates)
Publicatie variatie (koppelen van content)
(Eenvoudige) web analytics en rapportages
Ontwerpmogelijkheden voor niet technische gebruikers
Internationalization and localization
Installatie / Configuratie
Voor alle denkbare functionaliteit die niet in Drupal 7 „core‟ zit zijn modules beschikbaar. (Al 895 modules beschikbaar voor D7, voor D6 5162 modules). Denk aan:
Workflow
Editors
CAPTCHA etc

WAAROM OSS?
Open source is gebaseerd op drie concepten:
“A development methodology that defines a communityapproach to developing software, meritocracy of developers, and quality based on peer review.”
Een licentie structuur die vrije en directe toegang geeft tot de source code, conform een of meer “Open Source Initiative” licenses.
Een „community‟ (gemeenschap) van gebruikers en ontwikkelaars waarin open participatie centraal staat.
Waarom OSS voor een Content Management Systeem?

VOORDELEN OPEN SOURCE
Voordelen OSS:
Vrijheid van keus
Betrouwbaarheid
Stabiliteit
Mogelijkheid tot code inspectie (audit)
Kosten
Flexibiliteit en „vrijheid‟
Support mogelijkheden

POPULARITEIT DRUPAL

BEKENDE SITES

BEKENDE SITES

BEKENDE SITES

DRUPAL CMS
De basis:
Content op een Drupal website is een „node‟.
Een node kan van alles zijn:
Een tekst, een foto , een stuk tekst op een forum, een stukje blog tekst enz
Nodes kunnen eigenschappen hebben:
Bijvoorbeeld een reactie of commentaar op een stuk tekst. „Comments‟ worden niet bewaard als nodes maar hebben dus een link met een „node‟.
Door het behandelen van content als „nodes‟ is het mogelijk om zeer eenvoudig nieuwe eigenschappen aan content (dus nodes) toe te voegen.

NIEUW IN DRUPAL 7
Eenvoudige mogelijkheid voor het creëren van CCT (Custom Content Types).
Deze functionaliteit wordt geboden door de Field module
De Field module is nieuw in Drupal 7.
In D6 en eerder werd voor het creëren van opmaat content types gebruik gemaakt van de CCK module. Dit was een add-on.
Verbetering op template structuur

DE MEEST ZICHTBARE VERNIEUWING
Het menu lint!
(demo?!)

MENU KENT EEN MEER INTUÏTIEVE
STRUCTUUR

INLEIDING DRUPAL 7
Review
Wat is Drupal
Nieuwe functies in Drupal 7
Waarom OSS
Populariteit?

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

KOSTEN EN BATEN
Preview
Kwalitatieve winst bij gebruik Drupal
Kosten (indicaties) in EUR ?!
TCO model
Winst ?

KOSTEN INDICATIESStandaard hardware: Dell Dell PowerEdge (M910): EUR 4500 (ex housing)
Software: Drupal: 0 EUR (*) IBM Portal: 3500 EUR (let op complexe pricing structuur: PVU‟s,
authorized users, concurrent users, maintenance etc) SDL Tridion: 5500 EUR (ook hier veel „verborgen‟ vendor lock-in kosten) Sharepoint: 7000 EUR (ook hier een complexe ondoorzichtige
prijsstructuur)Implementatie kosten:
Altijd voor 80% afhankelijk van bedrijfsspecifieke eisen/wensen!Beheerkosten:
Zelf beheren / Zelf hosten / Extern hosten / Managed Service
(*) Drupal 7 werkt met op ieder gangbaar OS en met OSS databases.
Voor professioneel gebruik is nodig: Een staging omgeving!Indicaties verschillen Drupal vs Commerciële omgeving voor „kleine site‟:
0 EUR vs 250k (!)
Algemeen:Commerciële WCM pakketen kennen een zeer complexe en niet transparante prijsstructuur, waarbij niet altijd kosten voor ‘triviale’ componenten zoals OS, Database beheercomponenten zijn meegenomen.

TCO MODEL
Evaluation and
procurement
Architecture and Design
DevelopmentOperations
and Management
TCO Influence Factors
License CostPersonal Cost
Manageability

OSS OF NIET?
Bij een CMS selectie dient men goed te letten op de beheerskosten achteraf. Hier zit namelijk de grootste kostenpost.
Factoren:
Eenmalige licentie kosten
Gewenste afhankelijkheid / onafhankelijkheid voor (eind)klanten
Hosting model
Realiseren „op maat‟ functionaliteit
Training / Consultancy

VOORDELEN VOOR KLANT (DRUPAL 7)
Subjectieve kwalitatieve voordelen:
Niet afhankelijk van één bedrijf (voor realisatie / beheer / training).
Eenvoudig te wisselen van implementatie partner
Zonder externe partijen content beheer kunnen doen
Geen licentie kosten
Enorme installed base
Betrouwbaarheid
Regelmatige updates
Veel aanvullende functionaliteit beschikbaar
Gevaren:
Incompatabiliteit van modules
Duur beheer
Afhankelijkheid van implementatie partner
Tips:
Maak goede (juridische) afspraken.
Borg code aanpassing via GPL of BSD licentie
Kijk of implementatie partner voor uw gemaakte functionaliteit ongewijzigd in OSS domein beschikbaar stelt.

WINST?
Hergebruik
Niet opnieuw uitvinden van het wiel
Gebruik maken van Drupal community
Maar vooral:
Flexibiliteit en
Snelheid
Bijna duizend mensen van de hebben een directe bijdrage aan de core van Drupal 7 geleverd.

KOSTEN EN BATEN
Review
Kwalitatieve winst bij gebruik Drupal
Kosten in EUR ?!
TCO model
Winst ?

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

TECHNISCHE ARCHITECTUUR
Preview
Overzicht belangrijkste onderdelen Drupal 7
Basisbouwblokken
Technieken achter Drupal
Pagina ontwerp & Thema ontwerp

DRUPAL 7 OVERZICHT
Drupal 7 Core
Modules
Templates
Middleware
(PHP / WebServer/ Database)
PHP ‘framework’
API’s
Content (nodes)

DRUPAL 7 BASIS BOUWBLOKKEN
Physical Server(s)
Virtual Server(s)
Operating System
Middleware (PHP, WebServer, Databases)
Drupal 7 FrameworkDrupal 7 Contributed
modules
Business Services (CMS, eCommerce)

TECHNIEK ACHTER DRUPAL7
De belangrijkste componenten:
Webserver (IIS / Apache)
PHP
Jquery
Database
PostgressSQL
MySQL (of MariaDB)
SQL-Lite
Let op versies van componenten.

DRUPAL 7: LOGISCH
Web browser Client (user)
Web browser Admin UI
WebServer(Apache / IIS)
Drupal 7
Database

PAGE DESIGNING AND THEMING
Let op: Theme afhankelijkheid!

CONFIGURATIE VAN EEN BLOCK

UX:VARIABELEN
Zichtbaar en makkelijk aanpasbaar:
Blocks (Bepaald welke block content waar op de site terug komt)
Menus (Toevoegen, front-page, comment setting etc)
Content types
Blocks zijn via drag-and-drop te plaatsen in Drupal 7

ZELF EEN THEME MAKEN?
Kracht met Drupal 7:
Page, node, block and other template (.tpl.php) file inheritance
Sub themes
(Zie:http://drupal.org/node/171194)

VOORBEELD STRUCTUUR THEME
name = Bartikdescription = A flexible, recolorable theme with many regions.package = Coreversion = VERSIONcore = 7.x
stylesheets[all][] = css/layout.cssstylesheets[all][] = css/style.cssstylesheets[all][] = css/colors.cssstylesheets[print][] = css/print.css
regions[header] = Headerregions[help] = Helpregions[page_top] = Page topregions[page_bottom] = Page bottomregions[highlighted] = Highlighted
regions[featured] = Featuredregions[content] = Contentregions[sidebar_first] = Sidebar firstregions[sidebar_second] = Sidebar second…

TECHNISCHE ARCHITECTUUR
Review
Overzicht belangrijkste onderdelen Drupal 7
Basisbouwblokken
Technieken achter Drupal
Pagina ontwerp & Thema ontwerp

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

WAT IS EEN ‘OPEN STANDAARD’
Open vragen?
Verschil met OSS
Belang van een „open standaard‟
Kan Web 2.0 zonder open standaarden?
Stelling: Een open standaard is niet nodig voor succesvolle OSS software!

DEFINITIE OPEN STANDAARD
Een standaard is volledig „open‟ als:
De standaard is goedgekeurd en zal worden gehandhaafd door een non-profit organisatie
De standaard is gepubliceerd en over het specificatiedocument van de standaard kan vrijelijk worden beschikt.
Het intellectuele eigendom – met betrekking tot mogelijk aanwezige patenten – van (delen) van de standaard is onherroepelijk ter beschikking gesteld op een „royalty-free‟ basis;
Er zijn geen beperkingen omtrent het hergebruik van de standaard.
Stelling: Een open standaard is niet nodig voor succesvolle OSS software!

BESCHIKBAAR IN DRUPAL7
OPML (Zit in de „core‟ aggregator module).
OPML is een op XML gebaseerd formaat om gestructuureerdeinformatie tussen verschillende applicaties uit te wisselen.
Resource Description Framework (RDF) and RDFa (W3c)
PURLs (Persistent Uniform Resource Locators) zijn Web addressen die als permanente identifiers fungeren voor dynamische website.
OpenID
Daarnaast gebruik van veel „standaard‟ componenten, zoals:
Jquery
Php-pdo
En natuurlijk:
Javascript
CSS

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

DRUPAL7 SEO EN HET SEMANTISCH WEB
Preview
Voordelen semantisch web?
RDF
SEO
Nut / Noodzaak leesbare URL‟s

SEMANTIC WEB
Gebaseerd op paradigma shift:
Internet transformatie naar universeel medio voor data, informatie en kennis uitwisseling
WWW Content & links
WWW Relaties & betekenisvol
(beschrijvingen)

VOORDELEN SEMANTIC WEB
Voor content makers / eigenaars:
Nieuwe mogelijkheden om zichtbaarheid van content te verhogen
Cross marketing voordelen doordat nieuwe routes naar jouw Drupal 7 content mogelijk zijn
Door verhoogde relevantie vanuit zoekresultaten meer terugkerende bezoekers naar de site.

RDF
Hiërarchie werkt niet meer: Ga voor „slimme‟ tags. Dus:
Toevoegen slimme tags aan content (‘nodes’)
In Drupal 7 zit standaard een verbeterde taxonomie ondersteuning. Gebruiken om:
Site beter te organiseren
Vindbaarheid van informatie drastisch te verhogen
Bij grote omgevingen (meerdere informatie stromen, eigenaren)
(Voor techneuten:In Drupal 7 is taxonomy gebaseerd op de „Field‟ module)

SEO

DRUPAL 7 SEO
De basis principes blijven geldig, maar eenvoudiger wordt het wel:
De „Drupal SEO module‟ is niet meer 100% noodzakelijk. (Ook nog niet vrijgegeven voor D7).
Standaard:
Code is W3C compliant
Layouts zijn op CSS gebaseerd
Mogelijkheid om content te categoriseren
* <title> tags worden automatisch gecreëerd
Werkbare robot.txt
Modules zijn er om :
Meta tags toe te voegen
Xml map
Meer controle over <title> tag
Controle over meta tags zoals description, keywords
Uploaden van een Google XML Sitemap
Google lijkt eind 2010 gevoelig voor ‘snelheid’ en unieke content (<p>uniek</p>). Manipulatie wordt nog altijd niet gewaardeerd!

DRUPAL 7 EN KORTE URL’S?!
(korte demo)
http://sitename/?q=node#overlay=%3Fq%3Dadmin%252Freports
Of
http://sitename/overzichtjes

DRUPAL7 SEO EN HET SEMANTISCH WEB
Review
Voordelen semantisch web?
RDF
SEO
Nut / Noodzaak leesbare URL‟s

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

GEBRUIK, BEHEER EN ONDERHOUD
Preview
Gebruik en grootschalig gebruik (heavy use)
LCM (ITIL, ASL, BISL?)
Testen

GEBRUIK
Bij het gebruik starten van een Drupal project zijn verschillende stakeholders betrokken:
GUI ontwerper / Interactie ontwerper
Ontwikkelaar
Themer (Ontwikkelaar voor style sheets)
Site eigenaar
Eindgebruikers
Business managers (marketing, verkoop, legal)
Webmaster(s) (m/v)
Beheerders (system administrators)
Trainers

GROOTGEBRUIK?
Ook met Drupal is bewezen 20 miljoen page views verdeeld over 12 uur gehaald!
Technieken:
- CDN (met of zonder de D7 module)
- DB-Cluster (SQL-Cluster0
- Loadbalancing
- Hadoop
- performance process (profiling!)
- Webserver optimalisation
- Memcache
- HipHop
Denk aan session management bij schaling!
(voor de technische mensen: Er is meer dan alleen het PHPSESSID)

GANGBARE CONFIGURATIE BIJ
GROOTGEBRUIK(plenair)
Belangrijkste punten:
Pagina‟s per minuut
NFR‟s!
Loadbalancers
Proxies
SSL offloader(s)
Beschikbaarheid (99,998%)? (Single Points of Failuegeaccepteerd?)
Extern laten hosten

LIFE CYCLE MANAGEMENT
Toevoegen / wijzingen functionaliteit
Software updates(security)fixes
Regressie testen !
Monitoren gebruikKleine aanpassingen
Nieuwe node templates
Look &FeelFunctioneel / Technisch
AGILE!
Onderhoud
Requirements
OntwerpImplementatie
QA (QoS)

TESTEN!
In Drupal 7 is het test framework aan de „core‟ toegevoegd (defaultuit natuurlijk)
Drupal test framework is gebaseerd op het defacto PHP framework: SimpleTest (OSS Unit testing framework for PHP)
Kijk naar de risico‟s:
Wat testen?
Waarom testen?
Hoe te testen?
Wie moet testen?

SCREENSHOT TESTEN IN D7

TEST RESULTATEN VIA ADMIN GUI

GEBRUIK, BEHEER EN ONDERHOUD
Review
Gebruik en grootschalig gebruik (heavy use)
LCM (ITIL, ASL, BISL?)
Testen

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

DRUPAL7 ALS FLEXIBELE PORTAL
Presentation Services
Application Services
Data Services
Ecommerce Portal BI PortalCorporate
Portal
SearchIdentity
Management
Knowledge Portal
Specialized Portal
Workflow PersonalizationData
Integration
Collaboration / Groupware
Application Integration
Externaldata
...
Data Storage Data Abstraction Backup/Restore
InternalData
Metadata
Customerdata
Data Access

MOGELIJKHEDEN VOOR EIGEN
(UNIEKE) FUNCTIONALITEITEigen functionaliteit toevoegen:
Drupal 7 gebruiken als php-framework
API‟s
Hooks
Modules (uitbreiden)
Look & Feel!
Best practices:
Requirements
Agile aanpak
CCT als optie?
Is het echt noodzakelijk
Voortbouwen op een module

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

OOK VERVELEND?

BEVEILIGING?!
Traditioneel:
Betrouwbaarheid
Integriteit
Beschikbaarheid
Wat biedt Drupal 7 standaard?
201x:
Imago
Privacy
Web 2.x?!

STANDAARD DRUPAL 7 MOGELIJKHEDEN
Gebruikers
Rechten per rol
Rechten op content onderdelen
Rechten op (module) functionaliteit
IP-Blocking

RECHTEN OP FUNCTIONALITEIT

AGENDA
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

DRUPAL8 OF DRUPAL7++
Wenselijke of noodzakelijke verbeteringen:
Caching
Plug-in framework (modules)
Performance (memory gebruik)
Afronden van niet-afgemaakte delen
Php6?
HTML5 (volledig)
API‟s (incl documentatie)
Belangrijkste voor gebruikers:
Stabiliteit
Backwards compabiliteit

DRUPAL 8
Nog meer nadruk op:
Gebruikersvriendelijkheid
Performance verbeteringen voor „standaard‟ installaties
Webmasters
Themers
Extensie ontwikkelaars (api‟s / modules)
Testbaarheid
En natuurlijk:
Ipad / Tables
Mobile devices integratie

SAMENVATTING
Inleiding Drupal7
Kosten en baten
Technische architectuur Drupal7
Open standaarden in Drupal7
Drupal7 SEO en het semantisch web
Gebruik, beheer en onderhoud
Bedrijfsspecifieke uitbreidingen maken in Drupal7
Beveiliging
Toekomst van Drupal

KANSEN!Organisatieontwerp.nl werkt samen met gerenommeerde bureaus die voldoen aan de hoogste kwaliteitscriteria op gebied van kennis en ervaring op gebied van organisatieadvies en architectuurondersteuning.
Organisatieontwerp.nl is platinum partner van het innovatienetwerk van de Business Management Support Stichting.
Meer informatie over dit innovatienetwerk is te vinden op: www.bm-support.org

CONTACT?
Bel : +31 (0) 6 22869536 of
Mail : [email protected]
‘Alleen is niemand wijs genoeg’
Plautus