Clusterbau
Motivation
• IaaS stellt APIs zur Automatisierung 
bereit 
• Verständnis der zu automatisierenden 
Aufgaben gewinnen
Software im Netz
Der Klassiker 
- 
Ein Server, eine App
• Betriebssystem = Linux 
• Webserver = Apache 
• Datenbank = MySQL / Postgres 
• App Deployment
• Alles auf einem Server = SPOF 
• App 
• Datenbank 
• Dateien (z.B. Profilbilder von 
Benutzerprofilen)
DB 
APP 
Files
• Eine Komponente fällt aus 
⇒ Ausfall des Gesamtsystems 
• Wenn die Last zu groß wird, schnelle 
Skalierung nicht möglich...
Zwei Server, 
App / DB Server getrennt
APP 
Files 
DB
• Erfahrungswert: einer der Server 
langweilt sich 
> Suboptimale Lastverteilung 
• Fällt eine Komponente aus, fällt das 
...
2-4 Server, 
App / DB Server getrennt, 
LB, DB Replikation
APP 
NFS SRV 
Mount 
APP 
NFS Mount 
Slave 
DB 
Master 
DB 
Load 
BalaLnoceard 
Balancer
• Load Balancer verteilt Anfragen 
• Pacemaker benötigt für 
• LB Failover 
• DB Failover 
• NFS Failover 
• Volle Redunda...
Das erste Scale-Out hin zur Redundanz 
bringt die meisten Herausforderungen 
mit sich.
Ab hier ist die 
Skalierung der App 
einfach.
APP 
NFS SRV 
Mount 
APP 
NFS Mount 
Slave 
DB 
Master 
DB 
Load 
BalaLnoceard 
Balancer 
APP 
NFS Mount 
APP 
NFS Mount 
...
• RDBMS skalieren oft nur vertikal 
• Skalierbarkeit und Robustheit wird 
durch die Auswahl der (Persitenz)- 
Dienste wese...
APP 
NFS Server 
NFS SRV 
Mount 
APP 
NFS Mount 
Slave 
DB 
Master 
DB 
Load 
Balancer 
Elastic 
Search 
Server 
RabbitMq ...
Begriffe der Skalierung
Horizontale Skalierung 
= 
Mehr Hardware
Vertikale Skalierung 
• Einen besseren Server als den Besten 
gibt es nicht. 
• = Begrenztes Wachstum 
• Nicht-linearer Ko...
Vertikale Skalierung 
= 
Bessere Hardware
Vertikale Skalierung 
• Mehr RAM 
• Mehr CPUs 
• Mehr und schnellere Festplatten 
• 10 GBit/s LAN 
• Bond LANs 
• etc.
Systeme mit hohem 
Lastvorkommen sollten 
auf horizontale Skalierung 
ausgelegt werden.
Deployment
Deployment 
• Deployments werden mit steigender 
Systemkomplexität zur Herausforderung 
• Deployment-Werkzeuge notwendig 
...
Installations- 
Automatisierung
Installationsautomatisierung 
• Skalierbarkeit und Selbstheilung 
erfordern eine möglichst vollständige 
Installationsauto...
Puppet
https://docs.puppetlabs.com/ 
learning/
Chef
http://learn.getchef.com 
https://www.youtube.com/watch?v=S5lHUpzoCYo
Bosh
http:// 
docs.cloudfoundry.org/bosh/
Pacemaker
• Überwacht und Repariert Anwendungen 
und Dienste (z.B. Datenbanken, Load Balancer, etc.) 
• Konfigurierbare Quorum-Strat...
Storage
Warum NFS keine Lösung ist
• Kapazität skaliert schlecht horizontal 
• Performance skaliert schlecht horizontal 
• Keine Ausfallsicherheit aufgrund 
...
Arten von Storage
• Block Storage 
• Remote Filesystem 
• Object Storage
• GlusterFS (block, filesystem) 
• Ceph (block, object, filesystem) 
• OpenStack Swift (object) 
• Riak (object)
OpenStack Swift
• Distributed object store 
• Skaliert in den Petabyte-Bereich 
• Skaliert horizontal 
• Ausfallsicherheit durch Redundanz...
• Proxy Server 
• The Ring 
• Object Server 
• Container Server
• Account Server 
• Replication 
• Updaters 
• Auditors
GusterFS
• Skaliert in den Petabyte-Bereich 
• Skaliert horizontal 
• Ausfallsicherheit durch Redundanz 
• Gewöhnliche Server-HW ge...
Application Server
• = Web Server 
• Liefert die Anwendung aus 
• Schlägt die Brücke zur 
Programmiersprache / Web-Framework
• Apache httpd Web Server 
• Apache Tomcat 
• Unicorn (Rails) 
• …
Load Balancer
• Verteilt eingehende Anfragen auf 1-n 
Application Server (Lastverteilung) 
• Erkennt Ausfälle > Liefert nur an 
lebende ...
• Apache mit mod_proxy_balancer 
• Nginx 
• keepalived
Message Queues
• Meist asynchrone Kommunikation 
• Entkopplung von 
Anwendungskomponenten
Beispiel 
RabbitMQ
• Verlässlich 
• Persistent 
• Sendebenachrichtigungen 
• Empfangsbenachrichtungen 
• Hochverfügbarkeit durch Clustering
• Flexibles Routing 
• HA Queues im Cluster 
• Clients in fast jeder Sprache verfügbar
http://www.rabbitmq.com/getstarted.html 
Hello World Worker Queue 
Pub/Sub Routing 
Topics RPC
Fragen?
Danke!
j@avtq.de 
@fischerjulian
Vorlesung - Cloud infrastrukturen - Clusterbau
Vorlesung - Cloud infrastrukturen - Clusterbau
Nächste SlideShare
Wird geladen in …5
×

Vorlesung - Cloud infrastrukturen - Clusterbau

483 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
483
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Vorlesung - Cloud infrastrukturen - Clusterbau

  1. 1. Clusterbau
  2. 2. Motivation
  3. 3. • IaaS stellt APIs zur Automatisierung bereit • Verständnis der zu automatisierenden Aufgaben gewinnen
  4. 4. Software im Netz
  5. 5. Der Klassiker - Ein Server, eine App
  6. 6. • Betriebssystem = Linux • Webserver = Apache • Datenbank = MySQL / Postgres • App Deployment
  7. 7. • Alles auf einem Server = SPOF • App • Datenbank • Dateien (z.B. Profilbilder von Benutzerprofilen)
  8. 8. DB APP Files
  9. 9. • Eine Komponente fällt aus ⇒ Ausfall des Gesamtsystems • Wenn die Last zu groß wird, schnelle Skalierung nicht möglich.
  10. 10. Zwei Server, App / DB Server getrennt
  11. 11. APP Files DB
  12. 12. • Erfahrungswert: einer der Server langweilt sich > Suboptimale Lastverteilung • Fällt eine Komponente aus, fällt das gesamte System aus. • Kein Schutz vor Datenverlust.
  13. 13. 2-4 Server, App / DB Server getrennt, LB, DB Replikation
  14. 14. APP NFS SRV Mount APP NFS Mount Slave DB Master DB Load BalaLnoceard Balancer
  15. 15. • Load Balancer verteilt Anfragen • Pacemaker benötigt für • LB Failover • DB Failover • NFS Failover • Volle Redundanz erreichbar • Aufwändige Einrichtung
  16. 16. Das erste Scale-Out hin zur Redundanz bringt die meisten Herausforderungen mit sich.
  17. 17. Ab hier ist die Skalierung der App einfach.
  18. 18. APP NFS SRV Mount APP NFS Mount Slave DB Master DB Load BalaLnoceard Balancer APP NFS Mount APP NFS Mount APP NFS Mount
  19. 19. • 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
  20. 20. APP NFS Server 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
  21. 21. Begriffe der Skalierung
  22. 22. Horizontale Skalierung = Mehr Hardware
  23. 23. Vertikale Skalierung • Einen besseren Server als den Besten gibt es nicht. • = Begrenztes Wachstum • Nicht-linearer Kostenverlauf
  24. 24. Vertikale Skalierung = Bessere Hardware
  25. 25. Vertikale Skalierung • Mehr RAM • Mehr CPUs • Mehr und schnellere Festplatten • 10 GBit/s LAN • Bond LANs • etc.
  26. 26. Systeme mit hohem Lastvorkommen sollten auf horizontale Skalierung ausgelegt werden.
  27. 27. Deployment
  28. 28. Deployment • Deployments werden mit steigender Systemkomplexität zur Herausforderung • Deployment-Werkzeuge notwendig • Capistrano • PaaS • CI/CD
  29. 29. Installations- Automatisierung
  30. 30. Installationsautomatisierung • Skalierbarkeit und Selbstheilung erfordern eine möglichst vollständige Installationsautomatisierung • Populäre Technologien für HW Cluster • Puppet • Chef
  31. 31. Puppet
  32. 32. https://docs.puppetlabs.com/ learning/
  33. 33. Chef
  34. 34. http://learn.getchef.com https://www.youtube.com/watch?v=S5lHUpzoCYo
  35. 35. Bosh
  36. 36. http:// docs.cloudfoundry.org/bosh/
  37. 37. Pacemaker
  38. 38. • Überwacht und Repariert Anwendungen und Dienste (z.B. Datenbanken, Load Balancer, etc.) • Konfigurierbare Quorum-Strategien • Unterstützt viele Clustertypen
  39. 39. Storage
  40. 40. Warum NFS keine Lösung ist
  41. 41. • Kapazität skaliert schlecht horizontal • Performance skaliert schlecht horizontal • Keine Ausfallsicherheit aufgrund fehlender Redundanz
  42. 42. Arten von Storage
  43. 43. • Block Storage • Remote Filesystem • Object Storage
  44. 44. • GlusterFS (block, filesystem) • Ceph (block, object, filesystem) • OpenStack Swift (object) • Riak (object)
  45. 45. OpenStack Swift
  46. 46. • 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
  47. 47. • Proxy Server • The Ring • Object Server • Container Server
  48. 48. • Account Server • Replication • Updaters • Auditors
  49. 49. GusterFS
  50. 50. • Skaliert in den Petabyte-Bereich • Skaliert horizontal • Ausfallsicherheit durch Redundanz • Gewöhnliche Server-HW genügt • Kostenlos und Open Source
  51. 51. Application Server
  52. 52. • = Web Server • Liefert die Anwendung aus • Schlägt die Brücke zur Programmiersprache / Web-Framework
  53. 53. • Apache httpd Web Server • Apache Tomcat • Unicorn (Rails) • …
  54. 54. Load Balancer
  55. 55. • Verteilt eingehende Anfragen auf 1-n Application Server (Lastverteilung) • Erkennt Ausfälle > Liefert nur an lebende App-Server (Failover) • Sollte redundant ausgelegt sein (pacemaker)
  56. 56. • Apache mit mod_proxy_balancer • Nginx • keepalived
  57. 57. Message Queues
  58. 58. • Meist asynchrone Kommunikation • Entkopplung von Anwendungskomponenten
  59. 59. Beispiel RabbitMQ
  60. 60. • Verlässlich • Persistent • Sendebenachrichtigungen • Empfangsbenachrichtungen • Hochverfügbarkeit durch Clustering
  61. 61. • Flexibles Routing • HA Queues im Cluster • Clients in fast jeder Sprache verfügbar
  62. 62. http://www.rabbitmq.com/getstarted.html Hello World Worker Queue Pub/Sub Routing Topics RPC
  63. 63. Fragen?
  64. 64. Danke!
  65. 65. j@avtq.de @fischerjulian

×