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

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/

    View full-size slide

  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

    View full-size slide

  3. „Klassische“ Systemarchitektur
    für Webhosting

    View full-size slide

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

    View full-size slide

  5. 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

    View full-size slide

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

    View full-size slide

  7. SPACES
    Container
    Architecture
    Applikations-Pods
    (Deployment)
    Caching-Pods
    (StatefulSet)
    Database Pods
    (MySQL, Elasticsearch, …)
    (StatefulSet)
    Logging Pod
    (Deployment)
    Management Pod
    (Deployment)

    View full-size slide

  8. SCALING
    CONTAINERS

    View full-size slide

  9. SCALING
    TRADITIONELLE ARCHITEKTUREN
    • VERTIKALE SKALIERUNG
    „Buy a bigger box“
    • HORIZONTALE SKALIERUNG
    „Buy more boxes“
    Teurer
    Load Balancer

    View full-size slide

  10. 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

    View full-size slide

  11. $ 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

    View full-size slide

  12. $ kubectl autoscale deployment my-app \
    --min=4 --max=128 --cpu-percent=80
    deployment "my-app" autoscaled

    View full-size slide

  13. NUTZEN
    KUNDE + PROVIDER
    • Effiziente Ressourcenauslastung
    (kein „Over-Provisioning“)
    • Schneller Scale-Up & Scale-Down
    • „zero-conf“

    View full-size slide

  14. HERAUS-
    FORDERUNGEN

    View full-size slide

  15. HERAUSFORDERUNGEN
    Viele PHP-Applikationen
    unterstützen horizontales Scaling
    nur bedingt.
    Fallstricke:
    • Daten (Caches oder Nutzdaten)
    im lokalen Filesystem
    • Sich selbst verändernder Code

    View full-size slide

  16. Shared
    Filesystem
    typo3temp/
    typo3conf/
    fileadmin/
    uploads/
    GLUSTER

    View full-size slide

  17. HERAUSFORDERUNGEN
    • Die Applikation selbst kann
    (eventuell mit Biegen und
    Brechen) gut horizontal skaliert
    werden
    • Darunter liegende Datenbank-
    systeme (bspw. MySQL) nicht so
    einfach

    View full-size slide

  18. Database
    Skalierbare
    Caching-Schicht

    View full-size slide