Top Banner
Insert company logo PHP Chefkoch goes Drupal8 Per Bernhardt Per Bernhardt 30.09.2016
106

Chefkoch goes Drupal8

Jan 07, 2017

Download

Technology

Per Bernhardt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chefkoch goes Drupal8

Insert company logo

PHP

Chefkoch goes Drupal8Per Bernhardt

Per Bernhardt 30.09.2016

Page 2: Chefkoch goes Drupal8

Ich bin Per.@perprogramming

Page 3: Chefkoch goes Drupal8

Ich arbeite bei Chefkoch.

Page 4: Chefkoch goes Drupal8

• Das „CMS-Projekt“ • Drupal8

• Ökosystem • Kernfeatures • Konfiguration • Software-Architektur & Code

• Herausforderungen • Migration • SEO • QA • Integration in die nativen Apps • Performance & Deployments

• Fazit • Q & A

Page 5: Chefkoch goes Drupal8

Das „CMS-Projekt“

Page 6: Chefkoch goes Drupal8

Unser Magazin.ca. 6000 Artikel

ca. 40.000 Bilder 15 RedakteurInnen

ca. 2 Mio. monatliche Leser

Page 7: Chefkoch goes Drupal8
Page 8: Chefkoch goes Drupal8
Page 9: Chefkoch goes Drupal8
Page 10: Chefkoch goes Drupal8
Page 11: Chefkoch goes Drupal8
Page 12: Chefkoch goes Drupal8

• Wir wollen ein neues CMS, am liebsten von der Stange!

Page 13: Chefkoch goes Drupal8

• Wir wollen ein neues CMS, am liebsten von der Stange!

• Wir wollen ein responsives Design!

Page 14: Chefkoch goes Drupal8

• 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!

Page 15: Chefkoch goes Drupal8

• 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!

Page 16: Chefkoch goes Drupal8

• 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…

Page 17: Chefkoch goes Drupal8
Page 18: Chefkoch goes Drupal8
Page 19: Chefkoch goes Drupal8
Page 20: Chefkoch goes Drupal8

Drupal 8

Page 21: Chefkoch goes Drupal8

Ökosystem

Page 22: Chefkoch goes Drupal8
Page 23: Chefkoch goes Drupal8

• Open Source

Page 24: Chefkoch goes Drupal8

• Open Source

• PHP

Page 25: Chefkoch goes Drupal8

• Open Source

• PHP

• Version 8 basiert auf Symfony Components

Page 26: Chefkoch goes Drupal8

• Open Source

• PHP

• Version 8 basiert auf Symfony Components

• 8.0 Release Ende 2015

Page 27: Chefkoch goes Drupal8

• Open Source

• PHP

• Version 8 basiert auf Symfony Components

• 8.0 Release Ende 2015

• Community > 1.000.000, Entwickler > 36.000

Page 28: Chefkoch goes Drupal8

• 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

Page 29: Chefkoch goes Drupal8

Kernfeatures

Page 30: Chefkoch goes Drupal8
Page 31: Chefkoch goes Drupal8

Nodes

Page 32: Chefkoch goes Drupal8

Nodes Terms

Page 33: Chefkoch goes Drupal8

Nodes Terms Files/Media

Page 34: Chefkoch goes Drupal8
Page 35: Chefkoch goes Drupal8
Page 36: Chefkoch goes Drupal8
Page 37: Chefkoch goes Drupal8
Page 38: Chefkoch goes Drupal8
Page 39: Chefkoch goes Drupal8
Page 40: Chefkoch goes Drupal8
Page 41: Chefkoch goes Drupal8
Page 42: Chefkoch goes Drupal8

Konfiguration

Page 43: Chefkoch goes Drupal8

./drush config-export

Page 44: Chefkoch goes Drupal8
Page 45: Chefkoch goes Drupal8

./drush config-import

Page 46: Chefkoch goes Drupal8

Software Architektur & Code

Page 47: Chefkoch goes Drupal8
Page 48: Chefkoch goes Drupal8
Page 49: Chefkoch goes Drupal8
Page 50: Chefkoch goes Drupal8
Page 51: Chefkoch goes Drupal8

Herausforderungen

Page 52: Chefkoch goes Drupal8

Migration

Page 53: Chefkoch goes Drupal8
Page 54: Chefkoch goes Drupal8
Page 55: Chefkoch goes Drupal8

SEO

Page 56: Chefkoch goes Drupal8
Page 57: Chefkoch goes Drupal8
Page 58: Chefkoch goes Drupal8

QA

Page 59: Chefkoch goes Drupal8
Page 60: Chefkoch goes Drupal8
Page 61: Chefkoch goes Drupal8

Integration in die nativen Apps

Page 62: Chefkoch goes Drupal8
Page 63: Chefkoch goes Drupal8
Page 64: Chefkoch goes Drupal8
Page 65: Chefkoch goes Drupal8
Page 66: Chefkoch goes Drupal8
Page 67: Chefkoch goes Drupal8
Page 68: Chefkoch goes Drupal8
Page 69: Chefkoch goes Drupal8
Page 70: Chefkoch goes Drupal8
Page 71: Chefkoch goes Drupal8
Page 72: Chefkoch goes Drupal8
Page 73: Chefkoch goes Drupal8
Page 74: Chefkoch goes Drupal8
Page 75: Chefkoch goes Drupal8
Page 76: Chefkoch goes Drupal8

X-Chefkoch-Native-App: 1

Page 77: Chefkoch goes Drupal8

X-Chefkoch-Native-App: 1

Page 78: Chefkoch goes Drupal8

Performance & Deployments

Page 79: Chefkoch goes Drupal8
Page 80: Chefkoch goes Drupal8

• ca. 2 Millionen Unique Visitor pro Monat

Page 81: Chefkoch goes Drupal8

• ca. 2 Millionen Unique Visitor pro Monat

• ca. 50 Millionen PageImpressions pro Monat

Page 82: Chefkoch goes Drupal8

• ca. 2 Millionen Unique Visitor pro Monat

• ca. 50 Millionen PageImpressions pro Monat

• ~ 20 Requests / Sekunde

Page 83: Chefkoch goes Drupal8
Page 84: Chefkoch goes Drupal8
Page 85: Chefkoch goes Drupal8

• 300 - 400 SQL Queries pro Seite (ungecached)

Page 86: Chefkoch goes Drupal8

• 300 - 400 SQL Queries pro Seite (ungecached)

• Content + Config in DB

Page 87: Chefkoch goes Drupal8

• 300 - 400 SQL Queries pro Seite (ungecached)

• Content + Config in DB

• Unbedingt APCu, sonst Config jedes mal aus DB

Page 88: Chefkoch goes Drupal8

• 300 - 400 SQL Queries pro Seite (ungecached)

• Content + Config in DB

• Unbedingt APCu, sonst Config jedes mal aus DB

• Dynamic Cache

Page 89: Chefkoch goes Drupal8

• 300 - 400 SQL Queries pro Seite (ungecached)

• Content + Config in DB

• Unbedingt APCu, sonst Config jedes mal aus DB

• Dynamic Cache

• Und dann?

Page 90: Chefkoch goes Drupal8
Page 91: Chefkoch goes Drupal8
Page 92: Chefkoch goes Drupal8
Page 93: Chefkoch goes Drupal8

• Hohe TTL (> 24h)

Page 94: Chefkoch goes Drupal8

• Hohe TTL (> 24h)

• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)

Page 95: Chefkoch goes Drupal8

• Hohe TTL (> 24h)

• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)

• Modules „purge“ + „varnish-purge“

Page 96: Chefkoch goes Drupal8

• Hohe TTL (> 24h)

• Varnish Grace Mode (Stale-While-Revalidate + Stale-While-Error)

• Modules „purge“ + „varnish-purge“

• https://www.drupal.org/project/varnish

Page 97: Chefkoch goes Drupal8

Drupal Response Header:

X-Drupal-Cache-Tags: node:123 term:456 media:789 …

Page 98: Chefkoch goes Drupal8

BAN-Requests von Varnish-Purge

X-Drupal-Cache-Tags: node:123X-Drupal-Cache-Tags: term:456X-Drupal-Cache-Tags: media:789

Page 99: Chefkoch goes Drupal8

Fazit

Page 100: Chefkoch goes Drupal8
Page 101: Chefkoch goes Drupal8

• Projektumfang nicht optimal

Page 102: Chefkoch goes Drupal8

• Projektumfang nicht optimal

• Software-Architektur & Code-Qualität ausbaufähig

Page 103: Chefkoch goes Drupal8

• Projektumfang nicht optimal

• Software-Architektur & Code-Qualität ausbaufähig

• Die ersten 80% sind schnell gemacht, aber dann…

Page 104: Chefkoch goes Drupal8

• Projektumfang nicht optimal

• Software-Architektur & Code-Qualität ausbaufähig

• Die ersten 80% sind schnell gemacht, aber dann…

• Performance ist schwierig

Page 105: Chefkoch goes Drupal8

• 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…

Page 106: Chefkoch goes Drupal8

Vielen Dank! Fragen?

@perprogramming www.perprogramming.de [email protected]