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 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 Slide

  3. „Klassische“ Systemarchitektur
    für Webhosting

    View Slide

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

    View Slide

  5. WHY DOCKER?

    View Slide

  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

    View Slide

  7. KUBERNETES

    View Slide

  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…

    View Slide

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

    View Slide

  10. SCALING
    CONTAINERS

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  16. HERAUS-
    FORDERUNGEN

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. Database
    Skalierbare
    Caching-Schicht

    View Slide

  21. View Slide

  22. View Slide