SlideShare ist ein Scribd-Unternehmen logo
1 von 106
Downloaden Sie, um offline zu lesen
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
• 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…
Drupal 8
Ökosystem
• 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
Nodes
Nodes Terms
Nodes Terms Files/Media
Konfiguration
./drush config-export
./drush config-import
Software Architektur & Code
Herausforderungen
Migration
SEO
QA
Integration in die nativen Apps
X-Chefkoch-Native-App: 1
X-Chefkoch-Native-App: 1
Performance & Deployments
• 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
• 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?
• 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
• 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

Weitere ähnliche Inhalte

Ähnlich wie Chefkoch goes Drupal8

Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)Koombea
 
Seo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersJan Berens
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
Studiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosDigital GmbH
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015AboutYouGmbH
 
Crawl-Budget-Booster für eine bessere Search Engine Experience
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 ExperienceAndré Goldmann
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend DeveloperChristoph Hautzinger
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeNico Steiner
 
Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020
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 2020Corinna Lins
 
SEO für Magento Commerce - SEOkomm 2011
SEO für Magento Commerce - SEOkomm 2011SEO für Magento Commerce - SEOkomm 2011
SEO für Magento Commerce - SEOkomm 2011formaremedia
 
High Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenHigh Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenweb-solutions
 
PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?Sebastian Heuer
 
Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012
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 2012get on top gmbh
 
Vortrag IT der Piratenfraktion im AGH
Vortrag IT der Piratenfraktion im AGHVortrag IT der Piratenfraktion im AGH
Vortrag IT der Piratenfraktion im AGHPhilip Brechler
 
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
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ünchen
 
SDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationSDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationJakob
 
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 ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
Redaktionelle Hochlastwebseiten am Beispiel von stern.de
Redaktionelle Hochlastwebseiten am Beispiel von stern.deRedaktionelle Hochlastwebseiten am Beispiel von stern.de
Redaktionelle Hochlastwebseiten am Beispiel von stern.deNils Langner
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaOPEN KNOWLEDGE GmbH
 

Ähnlich wie Chefkoch goes Drupal8 (20)

Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)Responsive Mit Irhem Webseiten (German Edition)
Responsive Mit Irhem Webseiten (German Edition)
 
Seo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for Beginners
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Studiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosdigital wieninternational.at
Studiosdigital wieninternational.at
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Crawl-Budget-Booster für eine bessere Search Engine Experience
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
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend Developer
 
Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 Bestellsysteme
 
Microsoft Collaboration Meetup -UI Anpassungen in SharePoint - Januar 2020
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
 
SEO für Magento Commerce - SEOkomm 2011
SEO für Magento Commerce - SEOkomm 2011SEO für Magento Commerce - SEOkomm 2011
SEO für Magento Commerce - SEOkomm 2011
 
High Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenHigh Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzen
 
PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?
 
Wie projektiere ich eine expired Domain mit Wordpress - SEO Campixx 2012
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
 
Vortrag IT der Piratenfraktion im AGH
Vortrag IT der Piratenfraktion im AGHVortrag IT der Piratenfraktion im AGH
Vortrag IT der Piratenfraktion im AGH
 
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
Pagespeed Learnings aus mehreren Relaunches (SEO Campixx 2017)
 
SDC2011: Web Performance Optimization
SDC2011: Web Performance OptimizationSDC2011: Web Performance Optimization
SDC2011: Web Performance Optimization
 
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 ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Redaktionelle Hochlastwebseiten am Beispiel von stern.de
Redaktionelle Hochlastwebseiten am Beispiel von stern.deRedaktionelle Hochlastwebseiten am Beispiel von stern.de
Redaktionelle Hochlastwebseiten am Beispiel von stern.de
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit Java
 

Mehr von Per Bernhardt

Event Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXPer 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)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Per Bernhardt
 
Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Per Bernhardt
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice ArchitecturePer Bernhardt
 
Magazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochPer Bernhardt
 
Contract Tests mit Pact
Contract Tests mit PactContract Tests mit Pact
Contract Tests mit PactPer Bernhardt
 
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Colognekubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup ColognePer Bernhardt
 
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetPer Bernhardt
 
Microservice Teststrategie mit Symfony2
Microservice Teststrategie mit Symfony2Microservice Teststrategie mit Symfony2
Microservice Teststrategie mit Symfony2Per Bernhardt
 
Application Layer in PHP
Application Layer in PHPApplication Layer in PHP
Application Layer in PHPPer Bernhardt
 
Anwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesAnwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesPer Bernhardt
 

Mehr von Per Bernhardt (12)

Die Rolle des CTO
Die Rolle des CTODie Rolle des CTO
Die Rolle des CTO
 
Event Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIX
 
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)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
 
Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice Architecture
 
Magazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei Chefkoch
 
Contract Tests mit Pact
Contract Tests mit PactContract Tests mit Pact
Contract Tests mit Pact
 
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Colognekubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
 
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitetKubernetes: Wie Chefkoch.de mit Containern arbeitet
Kubernetes: Wie Chefkoch.de mit Containern arbeitet
 
Microservice Teststrategie mit Symfony2
Microservice Teststrategie mit Symfony2Microservice Teststrategie mit Symfony2
Microservice Teststrategie mit Symfony2
 
Application Layer in PHP
Application Layer in PHPApplication Layer in PHP
Application Layer in PHP
 
Anwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesAnwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side Includes
 

Chefkoch goes Drupal8