Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TYPO3CMD18: Hosting TYPO3 in Container Cloud Ar...

TYPO3CMD18: Hosting TYPO3 in Container Cloud Architectures

Slides of my session at the TYPO3Camp Mitteldeutschland in Dresden 2018

Martin Helmich

January 26, 2018
Tweet

More Decks by Martin Helmich

Other Decks in Technology

Transcript

  1. Hosting TYPO3 in Container Cloud Architectures Martin Helmich Mittwald CM

    Service GmbH & Co. KG TYPO3Camp Mitteldeutschland, Dresden 26. Januar 2018 CC-0, mahaviharya https://pixabay.com/en/meditation-monk-snow-mountain-3083274/
  2. Martin Helmich Software & Systems Architect @ Mittwald CM Service

    Dozent @ Private Hochschule für Wirtschaft & Technik http://stackoverflow.com/story/martinhelmich https://github.com/martin-helmich https://www.martin-helmich.de
  3. WHY DOCKER? • EFFIZIENZ Geringerer Overhead als „klassische“ Virtuelle Maschinen

    • STANDARDISIERT Open Container Initiative • COMMUNITY Docker + Kubernetes gehören zu den aktivsten Projekten auf GitHub • AUTOMATISIERUNG Auf DevOps zugeschnittene Tools Hoher Automatisierungsgrad
  4. KUBERNETES • KUBER-WIEBITTE? „Kubernetes is an open-source system for automating

    deployment, scaling and management of containerized applications“ • GOOGLE SCALE „billions of containers a week“ • AUTOMATISIERUNG Horizontale Skalierung Selbstheilung Storage-Orchestrierung Konfigurationsmanagement und noch mehr…
  5. SPACES Container Architecture Applikations-Pods (Deployment) Caching-Pods (StatefulSet) Database Pods (MySQL,

    Elasticsearch, …) (StatefulSet) Logging Pod (Deployment) Management Pod (Deployment)
  6. SCALING TRADITIONELLE ARCHITEKTUREN • VERTIKALE SKALIERUNG „Buy a bigger box“

    • HORIZONTALE SKALIERUNG „Buy more boxes“ Teurer Load Balancer
  7. SCALING THE KUBERNETES WAY 1. Provider mit genügend Überkapazität finden

    2. „Horizontal Autoscaler“ in Kubernetes konfigurieren 3. Zurücklehnen Viele kleine Applikations-Container Kurzlebig, häufig erstellt & gelöscht
  8. $ kubectl scale deployment my-app --replicas=32 deployment "my-app" scaled $

    kubectl get deployments NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE my-app 32 32 32 15 30m $ kubectl get pods NAME READY STATUS RESTARTS AGE my-app-2035384211-7ci7o 1/1 Running 0 18s my-app-2035384211-kzszj 1/1 Running 0 18s my-app-2035384211-qqcnn 1/1 Running 0 18s …
  9. HERAUSFORDERUNGEN Viele PHP-Applikationen unterstützen horizontales Scaling nur bedingt. Fallstricke: •

    Daten (Caches oder Nutzdaten) im lokalen Filesystem • Sich selbst verändernder Code
  10. HERAUSFORDERUNGEN • Die Applikation selbst kann (eventuell mit Biegen und

    Brechen) gut horizontal skaliert werden • Darunter liegende Datenbank- systeme (bspw. MySQL) nicht so einfach