$30 off During Our Annual Pro Sale. View Details »

TYPO3CMD18: Hosting TYPO3 in Container Cloud Architectures

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. „Klassische“ Systemarchitektur für Webhosting

  4. „Klassische“ Systemarchitektur für Webhosting Container-basierte Systemarchitektur

  5. WHY DOCKER?

  6. 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
  7. KUBERNETES

  8. 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…
  9. SPACES Container Architecture Applikations-Pods (Deployment) Caching-Pods (StatefulSet) Database Pods (MySQL,

    Elasticsearch, …) (StatefulSet) Logging Pod (Deployment) Management Pod (Deployment)
  10. SCALING CONTAINERS

  11. SCALING TRADITIONELLE ARCHITEKTUREN • VERTIKALE SKALIERUNG „Buy a bigger box“

    • HORIZONTALE SKALIERUNG „Buy more boxes“ Teurer Load Balancer
  12. 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
  13. $ 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 …
  14. $ kubectl autoscale deployment my-app \ --min=4 --max=128 --cpu-percent=80 deployment

    "my-app" autoscaled
  15. NUTZEN KUNDE + PROVIDER • Effiziente Ressourcenauslastung (kein „Over-Provisioning“) •

    Schneller Scale-Up & Scale-Down • „zero-conf“
  16. HERAUS- FORDERUNGEN

  17. HERAUSFORDERUNGEN Viele PHP-Applikationen unterstützen horizontales Scaling nur bedingt. Fallstricke: •

    Daten (Caches oder Nutzdaten) im lokalen Filesystem • Sich selbst verändernder Code
  18. Shared Filesystem typo3temp/ typo3conf/ fileadmin/ uploads/ GLUSTER

  19. HERAUSFORDERUNGEN • Die Applikation selbst kann (eventuell mit Biegen und

    Brechen) gut horizontal skaliert werden • Darunter liegende Datenbank- systeme (bspw. MySQL) nicht so einfach
  20. Database Skalierbare Caching-Schicht

  21. None
  22. None