Chefkoch goes Drupal8

Per Bernhardt
Per BernhardtSoftwareentwickler at chefkoch.de
Insert company logo
PHP
Chefkoch goes Drupal8
Per Bernhardt
Per Bernhardt 30.09.2016
Ich bin Per.
@perprogramming
Ich arbeite bei
Chefkoch.
• Das „CMS-Projekt“
• Drupal8
• Ökosystem
• Kernfeatures
• Konfiguration
• Software-Architektur & Code
• Herausforderungen
• Migration
• SEO
• QA
• Integration in die nativen Apps
• Performance & Deployments
• Fazit
• Q & A
Das „CMS-Projekt“
Unser Magazin.
ca. 6000 Artikel
ca. 40.000 Bilder
15 RedakteurInnen
ca. 2 Mio. monatliche Leser
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
• Wir wollen ein neues CMS, am liebsten von der Stange!
• Wir wollen ein neues CMS, am liebsten von der Stange!
• Wir wollen ein responsives Design!
• Wir wollen ein neues CMS, am liebsten von der Stange!
• Wir wollen ein responsives Design!
• Wir wollen den gesamten Magazin-Content in den nativen Apps!
• Wir wollen ein neues CMS, am liebsten von der Stange!
• Wir wollen ein responsives Design!
• Wir wollen den gesamten Magazin-Content in den nativen Apps!
• Wir wollen tolle neue Features und Widgets!
• Wir wollen ein neues CMS, am liebsten von der Stange!
• Wir wollen ein responsives Design!
• Wir wollen den gesamten Magazin-Content in den nativen Apps!
• Wir wollen tolle neue Features und Widgets!
• Es darf nichts kaputt oder verloren gehen…
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Drupal 8
Ökosystem
Chefkoch goes Drupal8
• Open Source
• Open Source
• PHP
• Open Source
• PHP
• Version 8 basiert auf Symfony Components
• Open Source
• PHP
• Version 8 basiert auf Symfony Components
• 8.0 Release Ende 2015
• Open Source
• PHP
• Version 8 basiert auf Symfony Components
• 8.0 Release Ende 2015
• Community > 1.000.000, Entwickler > 36.000
• Open Source
• PHP
• Version 8 basiert auf Symfony Components
• 8.0 Release Ende 2015
• Community > 1.000.000, Entwickler > 36.000
• Modules Version 7 > 10.000, Version 8 > 2.000
Kernfeatures
Chefkoch goes Drupal8
Nodes
Nodes Terms
Nodes Terms Files/Media
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Konfiguration
./drush config-export
Chefkoch goes Drupal8
./drush config-import
Software Architektur & Code
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Herausforderungen
Migration
Chefkoch goes Drupal8
Chefkoch goes Drupal8
SEO
Chefkoch goes Drupal8
Chefkoch goes Drupal8
QA
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Integration in die nativen Apps
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
X-Chefkoch-Native-App: 1
X-Chefkoch-Native-App: 1
Performance & Deployments
Chefkoch goes Drupal8
• ca. 2 Millionen Unique Visitor pro Monat
• ca. 2 Millionen Unique Visitor pro Monat
• ca. 50 Millionen PageImpressions pro Monat
• ca. 2 Millionen Unique Visitor pro Monat
• ca. 50 Millionen PageImpressions pro Monat
• ~ 20 Requests / Sekunde
Chefkoch goes Drupal8
Chefkoch goes Drupal8
• 300 - 400 SQL Queries pro Seite (ungecached)
• 300 - 400 SQL Queries pro Seite (ungecached)
• Content + Config in DB
• 300 - 400 SQL Queries pro Seite (ungecached)
• Content + Config in DB
• Unbedingt APCu, sonst Config jedes mal aus DB
• 300 - 400 SQL Queries pro Seite (ungecached)
• Content + Config in DB
• Unbedingt APCu, sonst Config jedes mal aus DB
• Dynamic Cache
• 300 - 400 SQL Queries pro Seite (ungecached)
• Content + Config in DB
• Unbedingt APCu, sonst Config jedes mal aus DB
• Dynamic Cache
• Und dann?
Chefkoch goes Drupal8
Chefkoch goes Drupal8
Chefkoch goes Drupal8
• Hohe TTL (> 24h)
• Hohe TTL (> 24h)
• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)
• Hohe TTL (> 24h)
• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)
• Modules „purge“ + „varnish-purge“
• Hohe TTL (> 24h)
• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)
• Modules „purge“ + „varnish-purge“
• https://www.drupal.org/project/varnish
Drupal Response Header:
X-Drupal-Cache-Tags: node:123 term:456 media:789 …
BAN-Requests von Varnish-Purge
X-Drupal-Cache-Tags: node:123
X-Drupal-Cache-Tags: term:456
X-Drupal-Cache-Tags: media:789
Fazit
Chefkoch goes Drupal8
• Projektumfang nicht optimal
• Projektumfang nicht optimal
• Software-Architektur & Code-Qualität ausbaufähig
• Projektumfang nicht optimal
• Software-Architektur & Code-Qualität ausbaufähig
• Die ersten 80% sind schnell gemacht, aber dann…
• Projektumfang nicht optimal
• Software-Architektur & Code-Qualität ausbaufähig
• Die ersten 80% sind schnell gemacht, aber dann…
• Performance ist schwierig
• Projektumfang nicht optimal
• Software-Architektur & Code-Qualität ausbaufähig
• Die ersten 80% sind schnell gemacht, aber dann…
• Performance ist schwierig
• Unsicher, wohin unsere Reise geht…
Vielen Dank!
Fragen?
@perprogramming
www.perprogramming.de
info@perprogramming.de
1 of 106

Recommended

Umzug eines Hochlast-Dienstes by
Umzug eines Hochlast-DienstesUmzug eines Hochlast-Dienstes
Umzug eines Hochlast-DienstesPer Bernhardt
382 views43 slides
Continiuous Integration and Delivery with Bamboo by
Continiuous Integration and Delivery with BambooContiniuous Integration and Delivery with Bamboo
Continiuous Integration and Delivery with BambooPer Bernhardt
1.4K views15 slides
Scala.js at code.talks 2014, Hamburg by
Scala.js at code.talks 2014, HamburgScala.js at code.talks 2014, Hamburg
Scala.js at code.talks 2014, HamburgLutz Hühnken
1K views21 slides
Seafile Server Installationsangebot by
Seafile Server InstallationsangebotSeafile Server Installationsangebot
Seafile Server Installationsangebotdatamate
36 views15 slides
Test by
TestTest
TestMichel Rossier
270 views12 slides
LFS PyCon DE 2011 by
LFS PyCon DE 2011LFS PyCon DE 2011
LFS PyCon DE 2011diefenbach
418 views84 slides

More Related Content

Similar to Chefkoch goes Drupal8

Was kommt nach den SPAs by
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
5 views47 slides
Responsive Mit Irhem Webseiten (German Edition) by
Responsive Mit Irhem Webseiten (German Edition)Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)Koombea
1.6K views42 slides
Seo Campixx 2015 - Technical SEO for Beginners by
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersJan Berens
6.8K views59 slides
ColdFusion im Enterprise Umfeld - Deep Dive by
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
1.2K views47 slides
Studiosdigital wieninternational.at by
Studiosdigital wieninternational.atStudiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosDigital GmbH
596 views30 slides
Bernhard Wick - appserver.io - code.talks 2015 by
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015AboutYouGmbH
727 views42 slides

Similar to Chefkoch goes Drupal8(20)

Was kommt nach den SPAs by QAware GmbH
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
QAware GmbH5 views
Responsive Mit Irhem Webseiten (German Edition) by Koombea
Responsive Mit Irhem Webseiten (German Edition)Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)
Koombea1.6K views
Seo Campixx 2015 - Technical SEO for Beginners by Jan Berens
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for Beginners
Jan Berens6.8K views
Bernhard Wick - appserver.io - code.talks 2015 by AboutYouGmbH
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
AboutYouGmbH727 views
Crawl-Budget-Booster für eine bessere Search Engine Experience by André Goldmann
Crawl-Budget-Booster für eine bessere Search Engine ExperienceCrawl-Budget-Booster für eine bessere Search Engine Experience
Crawl-Budget-Booster für eine bessere Search Engine Experience
André Goldmann241 views
Frontend-Architektur der 1&1 Bestellsysteme by Nico Steiner
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 Bestellsysteme
Nico Steiner1.3K views
Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020 by Corinna Lins
Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020
Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020
Corinna Lins50 views
SEO für Magento Commerce - SEOkomm 2011 by formaremedia
SEO für Magento Commerce - SEOkomm 2011SEO für Magento Commerce - SEOkomm 2011
SEO für Magento Commerce - SEOkomm 2011
formaremedia1.9K views
High Traffic Websites mit Craft CMS umsetzen by web-solutions
High Traffic Websites mit Craft CMS umsetzenHigh Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzen
web-solutions19 views
Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012 by get on top gmbh
Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012
Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012
get on top gmbh2.3K views
Vortrag IT der Piratenfraktion im AGH by Philip Brechler
Vortrag IT der Piratenfraktion im AGHVortrag IT der Piratenfraktion im AGH
Vortrag IT der Piratenfraktion im AGH
Philip Brechler463 views
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017) by SEO & UX München
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
SEO & UX München1.3K views
SDC2011: Web Performance Optimization by Jakob
SDC2011: Web Performance OptimizationSDC2011: Web Performance Optimization
SDC2011: Web Performance Optimization
Jakob 645 views
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ... by Andreas Wissel
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Andreas Wissel188 views
Redaktionelle Hochlastwebseiten am Beispiel von stern.de by Nils Langner
Redaktionelle Hochlastwebseiten am Beispiel von stern.deRedaktionelle Hochlastwebseiten am Beispiel von stern.de
Redaktionelle Hochlastwebseiten am Beispiel von stern.de
Nils Langner6.5K views
Modern Lightweight Enterprise Architectures mit Java by OPEN KNOWLEDGE GmbH
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit Java

More from Per Bernhardt

Die Rolle des CTO by
Die Rolle des CTODie Rolle des CTO
Die Rolle des CTOPer Bernhardt
11 views37 slides
Event Carried State Transfer @ LeanIX by
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXPer Bernhardt
183 views25 slides
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021) by
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Per Bernhardt
71 views32 slides
Microservice Test Strategy (@Bonn Code Meetup) by
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Per Bernhardt
103 views24 slides
Communication in a Microservice Architecture by
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice ArchitecturePer Bernhardt
366 views41 slides
Magazin-Relaunch bei Chefkoch by
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochPer Bernhardt
512 views19 slides

More from Per Bernhardt(12)

Event Carried State Transfer @ LeanIX by Per Bernhardt
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIX
Per Bernhardt183 views
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021) by Per Bernhardt
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Per Bernhardt71 views
Microservice Test Strategy (@Bonn Code Meetup) by Per Bernhardt
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)
Per Bernhardt103 views
Communication in a Microservice Architecture by Per Bernhardt
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice Architecture
Per Bernhardt366 views
Magazin-Relaunch bei Chefkoch by Per Bernhardt
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei Chefkoch
Per Bernhardt512 views
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne by Per Bernhardt
kubernetes @ chefkoch.de - Kubernetes Meetup Colognekubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
Per Bernhardt1.8K views
Kubernetes: Wie Chefkoch.de mit Containern arbeitet by Per Bernhardt
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Per Bernhardt3.4K views
Microservice Teststrategie mit Symfony2 by Per Bernhardt
Microservice Teststrategie mit Symfony2Microservice Teststrategie mit Symfony2
Microservice Teststrategie mit Symfony2
Per Bernhardt4.1K views
Application Layer in PHP by Per Bernhardt
Application Layer in PHPApplication Layer in PHP
Application Layer in PHP
Per Bernhardt3.4K views
Anwendungsintegration mit Edge Side Includes by Per Bernhardt
Anwendungsintegration mit Edge Side IncludesAnwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side Includes
Per Bernhardt1.7K views

Chefkoch goes Drupal8