Vorlesung - Cloud infrastrukturen - Clusterbau

67
Clusterbau

description

Um die Bedeutung moderner Cloud-Technologien einschätzen zu können, werden zunächst Grundlagen herkömmlicher Cluster-Architekturen behandelt. Darunter zählen Konzepte wie vertikale und horizontale Skalierung, Load-Balancing, Storage-Arten, usw.

Transcript of Vorlesung - Cloud infrastrukturen - Clusterbau

Page 1: Vorlesung - Cloud infrastrukturen - Clusterbau

Clusterbau

Page 2: Vorlesung - Cloud infrastrukturen - Clusterbau

Motivation

Page 3: Vorlesung - Cloud infrastrukturen - Clusterbau

• IaaS stellt APIs zur Automatisierung bereit

• Verständnis der zu automatisierenden Aufgaben gewinnen

Page 4: Vorlesung - Cloud infrastrukturen - Clusterbau

Software im Netz

Page 5: Vorlesung - Cloud infrastrukturen - Clusterbau

Der Klassiker -

Ein Server, eine App

Page 6: Vorlesung - Cloud infrastrukturen - Clusterbau

• Betriebssystem = Linux

• Webserver = Apache

• Datenbank = MySQL / Postgres

• App Deployment

Page 7: Vorlesung - Cloud infrastrukturen - Clusterbau

• Alles auf einem Server = SPOF

• App

• Datenbank

• Dateien (z.B. Profilbilder von Benutzerprofilen)

Page 8: Vorlesung - Cloud infrastrukturen - Clusterbau

DB

APP

Files

Page 9: Vorlesung - Cloud infrastrukturen - Clusterbau

• Eine Komponente fällt aus ⇒ Ausfall des Gesamtsystems

• Wenn die Last zu groß wird, schnelle Skalierung nicht möglich.

Page 10: Vorlesung - Cloud infrastrukturen - Clusterbau

Zwei Server, App / DB Server getrennt

Page 11: Vorlesung - Cloud infrastrukturen - Clusterbau

APP

Files

DB

Page 12: Vorlesung - Cloud infrastrukturen - Clusterbau

• Erfahrungswert: einer der Server langweilt sich > Suboptimale Lastverteilung

• Fällt eine Komponente aus, fällt das gesamte System aus.

• Kein Schutz vor Datenverlust.

Page 13: Vorlesung - Cloud infrastrukturen - Clusterbau

2-4 Server, App / DB Server getrennt,

LB, DB Replikation

Page 14: Vorlesung - Cloud infrastrukturen - Clusterbau

APP

NFS SRV Mount

APP

NFS Mount

Slave DB

Master DB

Load BalancerLoad

Balancer

Page 15: Vorlesung - Cloud infrastrukturen - Clusterbau

• Load Balancer verteilt Anfragen

• Pacemaker benötigt für

• LB Failover

• DB Failover

• NFS Failover

• Volle Redundanz erreichbar

• Aufwändige Einrichtung

Page 16: Vorlesung - Cloud infrastrukturen - Clusterbau

Das erste Scale-Out hin zur Redundanz bringt die meisten Herausforderungen

mit sich.

Page 17: Vorlesung - Cloud infrastrukturen - Clusterbau

Ab hier ist die Skalierung der App

einfach.

Page 18: Vorlesung - Cloud infrastrukturen - Clusterbau

APP

NFS SRV Mount

APP

NFS Mount

Slave DB

Master DB

Load BalancerLoad

Balancer

APP

NFS Mount

APP

NFS Mount

APP

NFS Mount

Page 19: Vorlesung - Cloud infrastrukturen - Clusterbau

• RDBMS skalieren oft nur vertikal

• Skalierbarkeit und Robustheit wird durch die Auswahl der (Persitenz)-Dienste wesentlich mitbestimmt.

• NFS Server

• skalieren schlecht

• Hochverfügbarkeit nicht inhärent

Page 20: Vorlesung - Cloud infrastrukturen - Clusterbau

NFS Server

APP

NFS SRV Mount

APP

NFS Mount

Slave DB

Master DB

Load Balancer

Elastic Search Server

RabbitMq Starling

...RabbitMq Starling

...RabbitMq Starling

...RabbitMq Starling

...

APP

NFS Mount

APP

NFS SRV Mount

APP

NFS Mount

APP

NFS SRV Mount

Load Balancer

iSCSI Storage Servers

iSCSI Storage Servers

iSCSI Storage Servers

Swift Storage Servers

Yuhuu!

Elastic Search Server

Elastic Search Server

Page 21: Vorlesung - Cloud infrastrukturen - Clusterbau

Begriffe der Skalierung

Page 22: Vorlesung - Cloud infrastrukturen - Clusterbau

Horizontale Skalierung =

Mehr Hardware

Page 23: Vorlesung - Cloud infrastrukturen - Clusterbau

Vertikale Skalierung

• Einen besseren Server als den Besten gibt es nicht.

• = Begrenztes Wachstum

• Nicht-linearer Kostenverlauf

Page 24: Vorlesung - Cloud infrastrukturen - Clusterbau

Vertikale Skalierung =

Bessere Hardware

Page 25: Vorlesung - Cloud infrastrukturen - Clusterbau

Vertikale Skalierung

• Mehr RAM

• Mehr CPUs

• Mehr und schnellere Festplatten

• 10 GBit/s LAN

• Bond LANs

• etc.

Page 26: Vorlesung - Cloud infrastrukturen - Clusterbau

Systeme mit hohem Lastvorkommen sollten

auf horizontale Skalierung ausgelegt werden.

Page 27: Vorlesung - Cloud infrastrukturen - Clusterbau

Deployment

Page 28: Vorlesung - Cloud infrastrukturen - Clusterbau

Deployment

• Deployments werden mit steigender Systemkomplexität zur Herausforderung

• Deployment-Werkzeuge notwendig

• Capistrano

• PaaS

• CI/CD

Page 29: Vorlesung - Cloud infrastrukturen - Clusterbau

Installations- Automatisierung

Page 30: Vorlesung - Cloud infrastrukturen - Clusterbau

Installationsautomatisierung

• Skalierbarkeit und Selbstheilung erfordern eine möglichst vollständige Installationsautomatisierung

• Populäre Technologien für HW Cluster

• Puppet

• Chef

Page 31: Vorlesung - Cloud infrastrukturen - Clusterbau

Puppet

Page 32: Vorlesung - Cloud infrastrukturen - Clusterbau

https://docs.puppetlabs.com/learning/

Page 33: Vorlesung - Cloud infrastrukturen - Clusterbau

Chef

Page 34: Vorlesung - Cloud infrastrukturen - Clusterbau

http://learn.getchef.com

https://www.youtube.com/watch?v=S5lHUpzoCYo

Page 35: Vorlesung - Cloud infrastrukturen - Clusterbau

Bosh

Page 36: Vorlesung - Cloud infrastrukturen - Clusterbau

http://docs.cloudfoundry.org/bosh/

Page 37: Vorlesung - Cloud infrastrukturen - Clusterbau

Pacemaker

Page 38: Vorlesung - Cloud infrastrukturen - Clusterbau

• Überwacht und Repariert Anwendungen und Dienste (z.B. Datenbanken, Load Balancer, etc.)

• Konfigurierbare Quorum-Strategien

• Unterstützt viele Clustertypen

Page 39: Vorlesung - Cloud infrastrukturen - Clusterbau
Page 40: Vorlesung - Cloud infrastrukturen - Clusterbau
Page 41: Vorlesung - Cloud infrastrukturen - Clusterbau

Storage

Page 42: Vorlesung - Cloud infrastrukturen - Clusterbau

Warum NFS keine Lösung ist

Page 43: Vorlesung - Cloud infrastrukturen - Clusterbau

• Kapazität skaliert schlecht horizontal

• Performance skaliert schlecht horizontal

• Keine Ausfallsicherheit aufgrund fehlender Redundanz

Page 44: Vorlesung - Cloud infrastrukturen - Clusterbau

Arten von Storage

Page 45: Vorlesung - Cloud infrastrukturen - Clusterbau

• Block Storage

• Remote Filesystem

• Object Storage

Page 46: Vorlesung - Cloud infrastrukturen - Clusterbau

• GlusterFS (block, filesystem)

• Ceph (block, object, filesystem)

• OpenStack Swift (object)

• Riak (object)

Page 47: Vorlesung - Cloud infrastrukturen - Clusterbau

OpenStack Swift

Page 48: Vorlesung - Cloud infrastrukturen - Clusterbau

• Distributed object store

• Skaliert in den Petabyte-Bereich

• Skaliert horizontal

• Ausfallsicherheit durch Redundanz

• Grad der Redundanz ist Einstellbar

• Gewöhnliche Server-HW genügt

• Kostenlos und Open Source

Page 49: Vorlesung - Cloud infrastrukturen - Clusterbau

• Proxy Server

• The Ring

• Object Server

• Container Server

Page 50: Vorlesung - Cloud infrastrukturen - Clusterbau

• Account Server

• Replication

• Updaters

• Auditors

Page 51: Vorlesung - Cloud infrastrukturen - Clusterbau

GusterFS

Page 52: Vorlesung - Cloud infrastrukturen - Clusterbau

• Skaliert in den Petabyte-Bereich

• Skaliert horizontal

• Ausfallsicherheit durch Redundanz

• Gewöhnliche Server-HW genügt

• Kostenlos und Open Source

Page 53: Vorlesung - Cloud infrastrukturen - Clusterbau

Application Server

Page 54: Vorlesung - Cloud infrastrukturen - Clusterbau

• = Web Server

• Liefert die Anwendung aus

• Schlägt die Brücke zur Programmiersprache / Web-Framework

Page 55: Vorlesung - Cloud infrastrukturen - Clusterbau

• Apache httpd Web Server

• Apache Tomcat

• Unicorn (Rails)

• …

Page 56: Vorlesung - Cloud infrastrukturen - Clusterbau

Load Balancer

Page 57: Vorlesung - Cloud infrastrukturen - Clusterbau

• Verteilt eingehende Anfragen auf 1-n Application Server (Lastverteilung)

• Erkennt Ausfälle > Liefert nur an lebende App-Server (Failover)

• Sollte redundant ausgelegt sein (pacemaker)

Page 58: Vorlesung - Cloud infrastrukturen - Clusterbau

• Apache mit mod_proxy_balancer

• Nginx

• keepalived

Page 59: Vorlesung - Cloud infrastrukturen - Clusterbau

Message Queues

Page 60: Vorlesung - Cloud infrastrukturen - Clusterbau

• Meist asynchrone Kommunikation

• Entkopplung von Anwendungskomponenten

Page 61: Vorlesung - Cloud infrastrukturen - Clusterbau

Beispiel RabbitMQ

Page 62: Vorlesung - Cloud infrastrukturen - Clusterbau

• Verlässlich

• Persistent

• Sendebenachrichtigungen

• Empfangsbenachrichtungen

• Hochverfügbarkeit durch Clustering

Page 63: Vorlesung - Cloud infrastrukturen - Clusterbau

• Flexibles Routing

• HA Queues im Cluster

• Clients in fast jeder Sprache verfügbar

Page 64: Vorlesung - Cloud infrastrukturen - Clusterbau

http://www.rabbitmq.com/getstarted.html

Hello World Worker Queue

Pub/Sub Routing

Topics RPC

Page 65: Vorlesung - Cloud infrastrukturen - Clusterbau

Fragen?

Page 66: Vorlesung - Cloud infrastrukturen - Clusterbau

Danke!

Page 67: Vorlesung - Cloud infrastrukturen - Clusterbau

[email protected] @fischerjulian