large scale drupal - behind the scenes

23
Large Scale Drupal in the Municipality of Copenhagen - Behind the Scenes Drupal Camp Berlin 2014

Upload: boyan-borisov

Post on 11-Jul-2015

183 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Large Scale Drupal - Behind the Scenes

Large Scale Drupal in

the Municipality of

Copenhagen - Behind

the Scenes

Drupal Camp Berlin 2014

Page 2: Large Scale Drupal - Behind the Scenes

About me

• Boyan Borisov

• Open Source Tech Lead

and Architect @

Propeople

[email protected]

• @boyan_borisov

• Skype: boian.borisov

• https://drupal.org/u/bo

yan.borisov

Page 3: Large Scale Drupal - Behind the Scenes

What were the client’s requirements?

• Multisite platform able to handle a thousand web sites

• Scalable infrastructure able to handle a thousand sites available 24/7

• Multi vendor environment which allows every module to be reusable

• Content sharing between all the sites on all the profiles

• Centralized Digital Asset Management (DAM) system

Page 4: Large Scale Drupal - Behind the Scenes

What were the client’s requirements?

• Editorial friendly UI

• Hierarchy structure of the site pages

• Web Content Accessibility Guidelines

(WCAG) – WCAG 2.0 AA

• Performance

• Automated tests

• Continuous integration

Page 5: Large Scale Drupal - Behind the Scenes

Multisite platform able to handle a thousand web sites

One Aegir to rule

them all!

• What is Aegir?

• Why did we choose it?

• What did we do in

order to extend Aegir?

Page 6: Large Scale Drupal - Behind the Scenes

Scalable infrastructure able to handle a thousand sites available 24/7

Page 7: Large Scale Drupal - Behind the Scenes

Monitoring and logging

• Graphite - Scalable Realtime Graphing

• Elasticsearch - http://www.elasticsearch.org

• Logstash - http://logstash.net

• JSONlog - https://www.drupal.org/project/jsonlog

• Elasticsearch Connector -

https://www.drupal.org/project/elasticsearch_con

nector

Page 8: Large Scale Drupal - Behind the Scenes

Multi vendor environment which allows every module to be reusable

• Gitlab - https://about.gitlab.com

• Mini “drupal.org” for all municipality custom modules

• Every module into its own repository

• Drush make file to build a platform

• Reusable drush make files

• Phing build tool

• Jira

Page 9: Large Scale Drupal - Behind the Scenes

Reusable make files

core = 7.x

api = 2

; KKMS inheritance

includes[] = "https://kkgit.kk.dk/drupal-7-kkms-modules/kkms_profile/raw/7.x-1.26/release.make

includes[] = "https://kkgit.kk.dk/drupal-7-kkms-modules/kkdk_profile/raw/dev/contrib.make"

includes[] = "https://kkgit.kk.dk/drupal-7-kkms-modules/kkdk_profile/raw/dev/features.make"

includes[] = "https://kkgit.kk.dk/drupal-7-kkms-modules/kkdk_profile/raw/dev/custom.make"

Page 10: Large Scale Drupal - Behind the Scenes

Content sharing between all the sites on all the profiles

• Push content to a site(s)

• Push content to a channel

• Pull content from a site

• Pull content from a channel

• Centralized Digital Asset Management

(DAM) system

• Central content management system

Page 11: Large Scale Drupal - Behind the Scenes

Content sharing architecture

Page 12: Large Scale Drupal - Behind the Scenes

Centralized Digital Asset Management (DAM) system

Page 13: Large Scale Drupal - Behind the Scenes

Central Localization Distribution (CLD)

CLD

Site1 Site2 SiteN

Page 14: Large Scale Drupal - Behind the Scenes

Editorial friendly UI

• Field group • Media and Media browser plus • Admin views and Views bulk operations • Workbench• Entity reference and References dialog • Panelizer• Node clone • Ckeditor and Better formats • Chosen, Multiselect and Hierarchical Select • Taxonomy manager

Page 15: Large Scale Drupal - Behind the Scenes

Hierarchy structure of the site pages

• Be aware not to use a module which will

make a hierarchy on top of the menu_router

table!

• Solution is Menu Reference -

https://www.drupal.org/project/menu_refe

rence

Page 16: Large Scale Drupal - Behind the Scenes

The German trace

Page 17: Large Scale Drupal - Behind the Scenes

Web Content Accessibility Guidelines (WCAG) – WCAG 2.0 AA

● Drupal and accessibility

https://groups.drupal.org/node/18595

https://www.drupal.org/project/node_accessi

bility

● Test tools

http://siteimprove.com/

http://wave.webaim.org/

Accessibility Developer Tools - Chrome plugin

Page 18: Large Scale Drupal - Behind the Scenes

Performance

• Varnish with a custom vcl file

• Memcache

• Apache Solr views

• APC cache

• Horizontal and vertical scaling

Page 19: Large Scale Drupal - Behind the Scenes

Automated tests

Page 20: Large Scale Drupal - Behind the Scenes

Continuous integration

• Continuous integration with Aegir

• Gitlab + webhooks + merge request

• Jira + Gitlab integration

• Phing build tool for local development

• Release branches

• Jenkins

• Fabric

Page 21: Large Scale Drupal - Behind the Scenes

The best part!

What did we give back to the

community?

Page 22: Large Scale Drupal - Behind the Scenes

Contributions

● 90+ patches

● 300+ comments

● 7 contributed modules

Page 23: Large Scale Drupal - Behind the Scenes

Questions?