Rails Cluster
Mehrserverlösung zum Betrieb von RoR
            Applikationen




                 Julian Fischer
         ...
Einleitung
Einleitung
 Über mich
Über mich
     Julian Fischer
     ‣Geschäftsführender Gesellschafter der Avarteq GmbH
     ‣Twitter: http://www.twitter.c...
Über mich
       Julian Fischer
       ‣Geschäftsführender Gesellschafter der Avarteq GmbH
       ‣Twitter: http://www.twi...
Über mich
       Julian Fischer
       ‣Geschäftsführender Gesellschafter der Avarteq GmbH
       ‣Twitter: http://www.twi...
Über mich
       Julian Fischer
       ‣Geschäftsführender Gesellschafter der Avarteq GmbH
       ‣Twitter: http://www.twi...
Einleitung
Über die Avarteq GmbH
Über die Avarteq GmbH
Über die Avarteq GmbH


 ‣ Gegründet im Nov. 2008
   aus zwei Einzelunternehmungen
Über die Avarteq GmbH


 ‣ Gegründet im Nov. 2008
   aus zwei Einzelunternehmungen



 ‣ Beteiligung der Key-Systems GmbH
...
Über die Avarteq GmbH


 ‣ Gegründet im Nov. 2008
   aus zwei Einzelunternehmungen



 ‣ Beteiligung der Key-Systems GmbH
...
Einleitung
 Portfolio
Über die Avarteq GmbH
Über die Avarteq GmbH


 ‣ Umfasst alle Phasen eines Web-
   Projekts
Über die Avarteq GmbH


 ‣ Umfasst alle Phasen eines Web-
   Projekts

  ‣ Beratung
Über die Avarteq GmbH


 ‣ Umfasst alle Phasen eines Web-
   Projekts

  ‣ Beratung
  ‣ Konzeption und Screendesign
Über die Avarteq GmbH


 ‣ Umfasst alle Phasen eines Web-
   Projekts

  ‣ Beratung
  ‣ Konzeption und Screendesign
  ‣ Ru...
Über die Avarteq GmbH


 ‣ Umfasst alle Phasen eines Web-
   Projekts

  ‣ Beratung
  ‣ Konzeption und Screendesign
  ‣ Ru...
Wie erstellt man einen
 hochwertigen Rails
       Cluster?
Vorbarbeit
Vorarbeit
Wahl des Rechenzentrums
Wahl des RZ

                            Hetzner                   Thomas Krenn AG

                          Software,   ...
Vorarbeit
Dimensionierung
Dimensionierung
Dimensionierung


‣ Wieviele Server werden benötigt?
Dimensionierung


‣ Wieviele Server werden benötigt?
‣ Welche Server-Rollen wird es geben?
  App, DB, LB, BG-Jobs, ...
Dimensionierung


‣ Wieviele Server werden benötigt?
‣ Welche Server-Rollen wird es geben?
  App, DB, LB, BG-Jobs, ...

‣ ...
Dimensionierung


‣ Wieviele Server werden benötigt?
‣ Welche Server-Rollen wird es geben?
  App, DB, LB, BG-Jobs, ...

‣ ...
Vorarbeit
System-Design
System-Design
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?

 ‣ APP und DB auf die gleichen Server?
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?

 ‣ APP und DB auf die gleichen Server?
 ‣ Dediziert...
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?

 ‣ APP und DB auf die gleichen Server?
 ‣ Dediziert...
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?

 ‣ APP und DB auf die gleichen Server?
 ‣ Dediziert...
System-Design


‣ Welche System-Komponente kommt auf
 welchen Server?

 ‣ APP und DB auf die gleichen Server?
 ‣ Dediziert...
Hardware
Hardware
Load Balancer
Load Balancer
Load Balancer


‣ Selten der Flaschenhals
Load Balancer


‣ Selten der Flaschenhals
‣ Oft Single Point of Failure (SPOF)
Load Balancer


‣ Selten der Flaschenhals
‣ Oft Single Point of Failure (SPOF)
‣ Zwei sind besser als einer!
Load Balancer


‣ Selten der Flaschenhals
‣ Oft Single Point of Failure (SPOF)
‣ Zwei sind besser als einer!
‣ Was tun wen...
Load Balancer


‣ Selten der Flaschenhals
‣ Oft Single Point of Failure (SPOF)
‣ Zwei sind besser als einer!
‣ Was tun wen...
Hardware
 Storage
Load Balancer
Load Balancer


‣ Wohin etc. den Uploads?
  Profilbilder,
                mit
Load Balancer


‣ Wohin etc. den Uploads?
  Profilbilder,
                mit


‣ NFS?
Load Balancer


‣ Wohin etc. den Uploads?
  Profilbilder,
                mit


‣ NFS?
 ‣ SPOF
Load Balancer


‣ Wohin etc. den Uploads?
  Profilbilder,
                mit


‣ NFS?
 ‣ SPOF
 ‣ Vergleichsweise langsam
Load Balancer
Load Balancer


‣ Redundante iSCSI Storage Appliance
Load Balancer


‣ Redundante iSCSI Storage Appliance
‣ Jeder App Server wird mit einer
  separaten GBit-Leitung angeschlos...
Load Balancer


‣ Redundante iSCSI Storage Appliance
‣ Jeder App Server wird mit einer
  separaten GBit-Leitung angeschlos...
Load Balancer


‣ Redundante iSCSI Storage Appliance
‣ Jeder App Server wird mit einer
  separaten GBit-Leitung angeschlos...
Load Balancer


‣ Redundante iSCSI Storage Appliance
‣ Jeder App Server wird mit einer
  separaten GBit-Leitung angeschlos...
Hardware
 Netzwerk
Netzwerk
Netzwerk


‣ Wie sind die Rechner des Clusters
  miteinander verbunden?
Netzwerk


‣ Wie sind die Rechner des Clusters
  miteinander verbunden?

‣ Privates (!) physikalisches Netzwerk
Netzwerk


‣ Wie sind die Rechner des Clusters
  miteinander verbunden?

‣ Privates (!) physikalisches Netzwerk
‣ >= 1 GBi...
Netzwerk


‣ Wie sind die Rechner des Clusters
  miteinander verbunden?

‣ Privates (!) physikalisches Netzwerk
‣ >= 1 GBi...
Hardware
 Scale out
Netzwerk
Netzwerk


‣ Neue Server sollen ins private Netzwerk
  aufgenommen werden.
Netzwerk


‣ Neue Server sollen ins private Netzwerk
  aufgenommen werden.

 ‣ Rechner sollten an einem gemeinsamen
   Swi...
Netzwerk


‣ Neue Server sollen ins private Netzwerk
  aufgenommen werden.

 ‣ Rechner sollten an einem gemeinsamen
   Swi...
Netzwerk


‣ Neue Server sollen ins private Netzwerk
  aufgenommen werden.

 ‣ Rechner sollten an einem gemeinsamen
   Swi...
Software
Software
Application Server
Application Server
Application Server


‣ = Phusion Passenger
Application Server


‣ = Phusion Passenger
 ‣ Speicherverbrauch abschätzen,
   # App-Instanzen einstellen
Application Server


‣ = Phusion Passenger
 ‣ Speicherverbrauch abschätzen,
   # App-Instanzen einstellen

 ‣ Auf Upload-E...
Application Server


‣ = Phusion Passenger
 ‣ Speicherverbrauch abschätzen,
   # App-Instanzen einstellen

 ‣ Auf Upload-E...
Application Server
Application Server


‣ Einen geeigneten Session-Store wählen
Application Server


‣ Einen geeigneten Session-Store wählen
 ‣ Cookie-St. ist ein guter Anfang
Application Server


‣ Einen geeigneten Session-Store wählen
 ‣ Cookie-St. ist ein guter Anfang
 ‣ Memcached-St., etw. ver...
Application Server


‣ Einen geeigneten Session-Store wählen
 ‣ Cookie-St. ist ein guter Anfang
 ‣ Memcached-St., etw. ver...
Application Server
Application Server


‣ Storage einbinden
Application Server


‣ Storage einbinden
 ‣ In App-Ordner verlinken
Application Server


‣ Storage einbinden
 ‣ In App-Ordner verlinken
 ‣ Storage-Mounts überwachen
Software
Database Server
Database Server
Database Server


‣ MySQL, Postgres, ... CouchDB wird interessanter
Database Server


‣ MySQL, Postgres, ... CouchDB wird interessanter
‣ Scale-Out der DB ist immer hässlich
Database Server


‣ MySQL, Postgres, ... CouchDB wird interessanter
‣ Scale-Out der DB ist immer hässlich
‣ Dennoch nicht ...
Database Server


‣ MySQL, Postgres, ... CouchDB wird interessanter
‣ Scale-Out der DB ist immer hässlich
‣ Dennoch nicht ...
Database Server


‣ MySQL, Postgres, ... CouchDB wird interessanter
‣ Scale-Out der DB ist immer hässlich
‣ Dennoch nicht ...
Software
Database Replikation?
Database Server
Database Server


‣ Ja aber nicht unbedingt zum Last-Scale-out.
Database Server


‣ Ja aber nicht unbedingt zum Last-Scale-out.
‣ „Echtzeit“-Backup der Datenbank.
Database Server
Database Server


‣ Welche Art der Replikation?
Database Server


‣ Welche Art der Replikation?
 ‣ Fingereure AnwendungMultimaster-Gefrickel,
   es sei denn
             ...
Database Server


‣ Welche Art der Replikation?
 ‣ Fingereure AnwendungMultimaster-Gefrickel,
   es sei denn
             ...
Database Server


‣ Welche Art der Replikation?
 ‣ Fingereure AnwendungMultimaster-Gefrickel,
   es sei denn
             ...
Database Server


‣ Welche Art der Replikation?
 ‣ Fingereure AnwendungMultimaster-Gefrickel,
   es sei denn
             ...
Software
Suchen und Finden
Suchen und Finden
Suchen und Finden


‣ Sphinx ist gut, Solr auch!
Suchen und Finden


‣ Sphinx ist gut, Solr auch!
‣ Suchserver laufen lange neben der
  Anwendung
Suchen und Finden


‣ Sphinx ist gut, Solr auch!
‣ Suchserver laufen lange neben der
  Anwendung

‣ Wenn Sie groß werden, ...
Software
Hintergrundverarbeitung
Hintergrundverarbeitung
Hintergrundverarbeitung


‣ BackgroundRB, Starling&Workling, ...
Hintergrundverarbeitung


‣ BackgroundRB, Starling&Workling, ...
‣ Arbeiter wollen auch irgendwann ein
  eigenes Zimmer.
Hintergrundverarbeitung


‣ BackgroundRB, Starling&Workling, ...
‣ Arbeiter wollen auch irgendwann ein
  eigenes Zimmer.

...
Software
Deployment
Deployment
Deployment


‣ Capistrano
Deployment


‣ Capistrano
‣ Anpassung des Deployment-Rezepts an
 die vorhandenen Server/Server-Rollen
Deployment


‣ Capistrano
‣ Anpassung des Deployment-Rezepts an
  die vorhandenen Server/Server-Rollen

‣ Initiales Deploy...
Backups
Backups
 OMG!
Backups
Backups


‣ Automatisierte Backups erhalten die
  Freundschaft.
Backups


‣ Automatisierte Backups erhalten die
  Freundschaft.

‣ Dateisystem und Datenbank.
Backups


‣ Automatisierte Backups erhalten die
  Freundschaft.

‣ Dateisystem und Datenbank.
‣ Backups packen, verschlüss...
Backups


‣ Automatisierte Backups erhalten die
  Freundschaft.

‣ Dateisystem und Datenbank.
‣ Backups packen, verschlüss...
Backups
Backups


‣ Wieviele Backups passen auf den
  Backupserver?
Backups


‣ Wieviele Backups passen auf den
   Backupserver?

‣ Backups sollten rotiert werden.
  z.B. tägliches Backup, 7...
Backups


‣ Wieviele Backups passen auf den
   Backupserver?

‣ Backups sollten rotiert werden.
  z.B. tägliches Backup, 7...
Backups


‣ Wieviele Backups passen auf den
   Backupserver?

‣ Backups sollten rotiert werden.
  z.B. tägliches Backup, 7...
Monitoring
„Nur weil ich paranoid bin, heißt es nicht, dass
        sie nicht hinter mir her sind.“
                   (Werauchimmer)
Woher weiß der Admin,
dass etwas kaputt ist?
Monitoring
  Nagios
Nagios
Nagios


‣ Nagios überwacht Schlüsselmerkmale
 eines jeden Rechners. So sollte er eingerichtet werden.
Nagios


‣ Nagios überwacht Schlüsselmerkmale
  eines jeden Rechners. So sollte er eingerichtet werden.

‣ Stimmt etwas ni...
Nagios
Nagios


‣ Was wird überprüft?
Nagios


‣ Was wird überprüft?
 ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
Nagios


‣ Was wird überprüft?
 ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
 ‣ LOAD. Mehr sysload als Cores? Prozess...
Nagios


‣ Was wird überprüft?
 ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
 ‣ LOAD. Mehr sysload als Cores? Prozess...
Nagios


‣ Was wird überprüft?
 ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
 ‣ LOAD. Mehr sysload als Cores? Prozess...
Nagios


‣ Was wird überprüft?
 ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
 ‣ LOAD. Mehr sysload als Cores? Prozess...
Monitoring
Ressourcen-Historie
Ressourcen-Historie
Ressourcen-Historie


‣ Munin
Ressourcen-Historie
Ressourcen-Historie


‣ Zeichnet die Auslastung bestimmter
  Ressourcen auf.
Ressourcen-Historie


‣ Zeichnet die Auslastung bestimmter
  Ressourcen auf.

‣ Trend-Analyse
Ressourcen-Historie


‣ Zeichnet die Auslastung bestimmter
  Ressourcen auf.

‣ Trend-Analyse
‣ Was war nach meiner PR-Akt...
Ressourcen-Historie


‣ Zeichnet die Auslastung bestimmter
  Ressourcen auf.

‣ Trend-Analyse
‣ Was war nach meiner PR-Akt...
Ressourcen-Historie


‣ Zeichnet die Auslastung bestimmter
  Ressourcen auf.

‣ Trend-Analyse
‣ Was war nach meiner PR-Akt...
Wartung
Wartung
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.


   ‣   Für größere Updates werden einzelne Ser...
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.


   ‣   Für größere Updates werden einzelne Ser...
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.


   ‣   Für größere Updates werden einzelne Ser...
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.


   ‣   Für größere Updates werden einzelne Ser...
Wartung


‣ OS-Aktualisierungen.
  Minor-, Major-, Distributions-Updates.


   ‣    Für größere Updates werden einzelne Se...
Fazit




Ist ja alles gut zu wissen, aber...
Fazit




 ... wer kommt neben all diesen

Dingen noch zum programmieren?
Fragen?
Vielen Dank
              für Ihre
          Aufmerksamkeit!


Headquarter:            Rails Enterprise Hosting:
http://ww...
Mehrserver Lösungen
Nächste SlideShare
Wird geladen in …5
×

Mehrserver Lösungen

1.086 Aufrufe

Veröffentlicht am

Wie baut man einen Server-Cluster zum Betrieb einer hochverfügbaren Ruby on Rails-Anwendung.
Themen: Load Balancing, Storage, NFS, iSCSI Phusion Passenger, Wahl des Rechenzentrums, ...

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.086
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
100
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Mehrserver Lösungen

  1. 1. Rails Cluster Mehrserverlösung zum Betrieb von RoR Applikationen Julian Fischer fischer@enterprise-rails.de http://www.enterprise-rails.de
  2. 2. Einleitung
  3. 3. Einleitung Über mich
  4. 4. Über mich Julian Fischer ‣Geschäftsführender Gesellschafter der Avarteq GmbH ‣Twitter: http://www.twitter.com/railshoster ‣E-Mail: fischer@enterprise-rails.de
  5. 5. Über mich Julian Fischer ‣Geschäftsführender Gesellschafter der Avarteq GmbH ‣Twitter: http://www.twitter.com/railshoster ‣E-Mail: fischer@enterprise-rails.de ‣ Lehrbeauftragter im Fach „Ruby on Rails“ an der HTWdS
  6. 6. Über mich Julian Fischer ‣Geschäftsführender Gesellschafter der Avarteq GmbH ‣Twitter: http://www.twitter.com/railshoster ‣E-Mail: fischer@enterprise-rails.de ‣ Lehrbeauftragter im Fach „Ruby on Rails“ an der HTWdS ‣ Ruby und Ruby on Rails Programmierer
  7. 7. Über mich Julian Fischer ‣Geschäftsführender Gesellschafter der Avarteq GmbH ‣Twitter: http://www.twitter.com/railshoster ‣E-Mail: fischer@enterprise-rails.de ‣ Lehrbeauftragter im Fach „Ruby on Rails“ an der HTWdS ‣ Ruby und Ruby on Rails Programmierer ‣ Entperise-Rails.de - Head of Hosting
  8. 8. Einleitung Über die Avarteq GmbH
  9. 9. Über die Avarteq GmbH
  10. 10. Über die Avarteq GmbH ‣ Gegründet im Nov. 2008 aus zwei Einzelunternehmungen
  11. 11. Über die Avarteq GmbH ‣ Gegründet im Nov. 2008 aus zwei Einzelunternehmungen ‣ Beteiligung der Key-Systems GmbH verwaltet derzeit 2,5 Mio. Domains für Kunden aus über 200 Ländern
  12. 12. Über die Avarteq GmbH ‣ Gegründet im Nov. 2008 aus zwei Einzelunternehmungen ‣ Beteiligung der Key-Systems GmbH verwaltet derzeit 2,5 Mio. Domains für Kunden aus über 200 Ländern ‣ Teamgröße: 14 Personen 7 Vollzeit, 7 Teilzeit/Freelancer
  13. 13. Einleitung Portfolio
  14. 14. Über die Avarteq GmbH
  15. 15. Über die Avarteq GmbH ‣ Umfasst alle Phasen eines Web- Projekts
  16. 16. Über die Avarteq GmbH ‣ Umfasst alle Phasen eines Web- Projekts ‣ Beratung
  17. 17. Über die Avarteq GmbH ‣ Umfasst alle Phasen eines Web- Projekts ‣ Beratung ‣ Konzeption und Screendesign
  18. 18. Über die Avarteq GmbH ‣ Umfasst alle Phasen eines Web- Projekts ‣ Beratung ‣ Konzeption und Screendesign ‣ Ruby on Rails Enticklung. Inhouse & vorort.
  19. 19. Über die Avarteq GmbH ‣ Umfasst alle Phasen eines Web- Projekts ‣ Beratung ‣ Konzeption und Screendesign ‣ Ruby on Rails Enticklung. Inhouse & vorort. ‣ Ruby on Rails Hosting RailsHoster.de - Enterprise-Rails.de
  20. 20. Wie erstellt man einen hochwertigen Rails Cluster?
  21. 21. Vorbarbeit
  22. 22. Vorarbeit Wahl des Rechenzentrums
  23. 23. Wahl des RZ Hetzner Thomas Krenn AG Software, 2 LB Appliances, Load Balancer Apache or Nginx autom. IP-Failover NetApp Storage Appliance, Storage NFS redundante HW, separate 1GBit Verbindung zu jedem App-Server HW nach individuellem Bedarf, z.B. SuperMicro Basis, 2xIntel Xeon App-Servers EQ4-EQ9 Quad Core CPUs, redundantes Netzweil, Hardware-Raid mit BBU Anzahl der Server muss Neue Server können jederzeit Privates Netzwerk im Voraus bekannt sein hinzugenommen werden. HDD defekt? Ticket an RZ Rechner piept? Anruf durch RZ: Support im RZ Support. Downtime. HDD könnte defekt sein. Diagnose. Tausch der HDD. HDD hotswap. Keine Downtime!
  24. 24. Vorarbeit Dimensionierung
  25. 25. Dimensionierung
  26. 26. Dimensionierung ‣ Wieviele Server werden benötigt?
  27. 27. Dimensionierung ‣ Wieviele Server werden benötigt? ‣ Welche Server-Rollen wird es geben? App, DB, LB, BG-Jobs, ...
  28. 28. Dimensionierung ‣ Wieviele Server werden benötigt? ‣ Welche Server-Rollen wird es geben? App, DB, LB, BG-Jobs, ... ‣ Welche HW ist für die jeweilige Rolle am besten geeignet?
  29. 29. Dimensionierung ‣ Wieviele Server werden benötigt? ‣ Welche Server-Rollen wird es geben? App, DB, LB, BG-Jobs, ... ‣ Welche HW ist für die jeweilige Rolle am besten geeignet? ‣ ...
  30. 30. Vorarbeit System-Design
  31. 31. System-Design
  32. 32. System-Design ‣ Welche System-Komponente kommt auf welchen Server?
  33. 33. System-Design ‣ Welche System-Komponente kommt auf welchen Server? ‣ APP und DB auf die gleichen Server?
  34. 34. System-Design ‣ Welche System-Komponente kommt auf welchen Server? ‣ APP und DB auf die gleichen Server? ‣ Dedizierte DB Server?
  35. 35. System-Design ‣ Welche System-Komponente kommt auf welchen Server? ‣ APP und DB auf die gleichen Server? ‣ Dedizierte DB Server? ‣ Wohin mit dem Suchserver?
  36. 36. System-Design ‣ Welche System-Komponente kommt auf welchen Server? ‣ APP und DB auf die gleichen Server? ‣ Dedizierte DB Server? ‣ Wohin mit dem Suchserver? ‣ Wo werden Job-Queues laufen?
  37. 37. System-Design ‣ Welche System-Komponente kommt auf welchen Server? ‣ APP und DB auf die gleichen Server? ‣ Dedizierte DB Server? ‣ Wohin mit dem Suchserver? ‣ Wo werden Job-Queues laufen? ‣ ...
  38. 38. Hardware
  39. 39. Hardware Load Balancer
  40. 40. Load Balancer
  41. 41. Load Balancer ‣ Selten der Flaschenhals
  42. 42. Load Balancer ‣ Selten der Flaschenhals ‣ Oft Single Point of Failure (SPOF)
  43. 43. Load Balancer ‣ Selten der Flaschenhals ‣ Oft Single Point of Failure (SPOF) ‣ Zwei sind besser als einer!
  44. 44. Load Balancer ‣ Selten der Flaschenhals ‣ Oft Single Point of Failure (SPOF) ‣ Zwei sind besser als einer! ‣ Was tun wenn einer kaputt geht?
  45. 45. Load Balancer ‣ Selten der Flaschenhals ‣ Oft Single Point of Failure (SPOF) ‣ Zwei sind besser als einer! ‣ Was tun wenn einer kaputt geht? ‣ Redundanter LB mit automatischem IP Failover!
  46. 46. Hardware Storage
  47. 47. Load Balancer
  48. 48. Load Balancer ‣ Wohin etc. den Uploads? Profilbilder, mit
  49. 49. Load Balancer ‣ Wohin etc. den Uploads? Profilbilder, mit ‣ NFS?
  50. 50. Load Balancer ‣ Wohin etc. den Uploads? Profilbilder, mit ‣ NFS? ‣ SPOF
  51. 51. Load Balancer ‣ Wohin etc. den Uploads? Profilbilder, mit ‣ NFS? ‣ SPOF ‣ Vergleichsweise langsam
  52. 52. Load Balancer
  53. 53. Load Balancer ‣ Redundante iSCSI Storage Appliance
  54. 54. Load Balancer ‣ Redundante iSCSI Storage Appliance ‣ Jeder App Server wird mit einer separaten GBit-Leitung angeschlossen
  55. 55. Load Balancer ‣ Redundante iSCSI Storage Appliance ‣ Jeder App Server wird mit einer separaten GBit-Leitung angeschlossen ‣ iSCSI = SCSI über TCP = Remote Blockdevice
  56. 56. Load Balancer ‣ Redundante iSCSI Storage Appliance ‣ Jeder App Server wird mit einer separaten GBit-Leitung angeschlossen ‣ iSCSI = SCSI über TCP = Remote Blockdevice ‣ Weniger Overhead als NFS
  57. 57. Load Balancer ‣ Redundante iSCSI Storage Appliance ‣ Jeder App Server wird mit einer separaten GBit-Leitung angeschlossen ‣ iSCSI = SCSI über TCP = Remote Blockdevice ‣ Weniger Overhead als NFS ‣ Clusterdateisystem benötigt. OCFS2, GFS, ...
  58. 58. Hardware Netzwerk
  59. 59. Netzwerk
  60. 60. Netzwerk ‣ Wie sind die Rechner des Clusters miteinander verbunden?
  61. 61. Netzwerk ‣ Wie sind die Rechner des Clusters miteinander verbunden? ‣ Privates (!) physikalisches Netzwerk
  62. 62. Netzwerk ‣ Wie sind die Rechner des Clusters miteinander verbunden? ‣ Privates (!) physikalisches Netzwerk ‣ >= 1 GBit/s
  63. 63. Netzwerk ‣ Wie sind die Rechner des Clusters miteinander verbunden? ‣ Privates (!) physikalisches Netzwerk ‣ >= 1 GBit/s ‣ Minimale Latenz durch die Verteilung der Komponenten
  64. 64. Hardware Scale out
  65. 65. Netzwerk
  66. 66. Netzwerk ‣ Neue Server sollen ins private Netzwerk aufgenommen werden.
  67. 67. Netzwerk ‣ Neue Server sollen ins private Netzwerk aufgenommen werden. ‣ Rechner sollten an einem gemeinsamen Switch hängen.
  68. 68. Netzwerk ‣ Neue Server sollen ins private Netzwerk aufgenommen werden. ‣ Rechner sollten an einem gemeinsamen Switch hängen. ‣ RZ mit Flexibilität ist gefragt.
  69. 69. Netzwerk ‣ Neue Server sollen ins private Netzwerk aufgenommen werden. ‣ Rechner sollten an einem gemeinsamen Switch hängen. ‣ RZ mit Flexibilität ist gefragt. ‣ Massenhoster sind meist wenig flexibel.
  70. 70. Software
  71. 71. Software Application Server
  72. 72. Application Server
  73. 73. Application Server ‣ = Phusion Passenger
  74. 74. Application Server ‣ = Phusion Passenger ‣ Speicherverbrauch abschätzen, # App-Instanzen einstellen
  75. 75. Application Server ‣ = Phusion Passenger ‣ Speicherverbrauch abschätzen, # App-Instanzen einstellen ‣ Auf Upload-Endungen achten und ggf. PHP deaktivieren
  76. 76. Application Server ‣ = Phusion Passenger ‣ Speicherverbrauch abschätzen, # App-Instanzen einstellen ‣ Auf Upload-Endungen achten und ggf. PHP deaktivieren ‣ ...
  77. 77. Application Server
  78. 78. Application Server ‣ Einen geeigneten Session-Store wählen
  79. 79. Application Server ‣ Einen geeigneten Session-Store wählen ‣ Cookie-St. ist ein guter Anfang
  80. 80. Application Server ‣ Einen geeigneten Session-Store wählen ‣ Cookie-St. ist ein guter Anfang ‣ Memcached-St., etw. vergesslich, memcached benötigt
  81. 81. Application Server ‣ Einen geeigneten Session-Store wählen ‣ Cookie-St. ist ein guter Anfang ‣ Memcached-St., etw. vergesslich, memcached benötigt ‣ ActiveRecord-St., nicht der Schnellste, benötigt keine Extra-Wurst
  82. 82. Application Server
  83. 83. Application Server ‣ Storage einbinden
  84. 84. Application Server ‣ Storage einbinden ‣ In App-Ordner verlinken
  85. 85. Application Server ‣ Storage einbinden ‣ In App-Ordner verlinken ‣ Storage-Mounts überwachen
  86. 86. Software Database Server
  87. 87. Database Server
  88. 88. Database Server ‣ MySQL, Postgres, ... CouchDB wird interessanter
  89. 89. Database Server ‣ MySQL, Postgres, ... CouchDB wird interessanter ‣ Scale-Out der DB ist immer hässlich
  90. 90. Database Server ‣ MySQL, Postgres, ... CouchDB wird interessanter ‣ Scale-Out der DB ist immer hässlich ‣ Dennoch nicht den MySQL NDB Cluster verwenden, es sei denn ihr habt einen Fulltime-DB-Admin.
  91. 91. Database Server ‣ MySQL, Postgres, ... CouchDB wird interessanter ‣ Scale-Out der DB ist immer hässlich ‣ Dennoch nicht den MySQL NDB Cluster verwenden, es sei denn ihr habt einen Fulltime-DB-Admin. ‣ DB-Server gut ausrüsten bzw. aufrüstbar gestalten
  92. 92. Database Server ‣ MySQL, Postgres, ... CouchDB wird interessanter ‣ Scale-Out der DB ist immer hässlich ‣ Dennoch nicht den MySQL NDB Cluster verwenden, es sei denn ihr habt einen Fulltime-DB-Admin. ‣ DB-Server gut ausrüsten bzw. aufrüstbar gestalten ‣ Viele kleine, schnelle Festplatten verwenden
  93. 93. Software Database Replikation?
  94. 94. Database Server
  95. 95. Database Server ‣ Ja aber nicht unbedingt zum Last-Scale-out.
  96. 96. Database Server ‣ Ja aber nicht unbedingt zum Last-Scale-out. ‣ „Echtzeit“-Backup der Datenbank.
  97. 97. Database Server
  98. 98. Database Server ‣ Welche Art der Replikation?
  99. 99. Database Server ‣ Welche Art der Replikation? ‣ Fingereure AnwendungMultimaster-Gefrickel, es sei denn weg von löst Datensatzkonflikte auf.
  100. 100. Database Server ‣ Welche Art der Replikation? ‣ Fingereure AnwendungMultimaster-Gefrickel, es sei denn weg von löst Datensatzkonflikte auf. ‣ Master/Slave ist ein guter Anfang.
  101. 101. Database Server ‣ Welche Art der Replikation? ‣ Fingereure AnwendungMultimaster-Gefrickel, es sei denn weg von löst Datensatzkonflikte auf. ‣ Master/Slave ist ein guter Anfang. ‣ Kein automatisches Failover
  102. 102. Database Server ‣ Welche Art der Replikation? ‣ Fingereure AnwendungMultimaster-Gefrickel, es sei denn weg von löst Datensatzkonflikte auf. ‣ Master/Slave ist ein guter Anfang. ‣ Kein automatisches Failover ‣ Manuelles Failover schneller als DB- Server neu aufzusetzen. Aber nehmt euch nach dem Recovery Zeit für die Reintegration des Masters.
  103. 103. Software Suchen und Finden
  104. 104. Suchen und Finden
  105. 105. Suchen und Finden ‣ Sphinx ist gut, Solr auch!
  106. 106. Suchen und Finden ‣ Sphinx ist gut, Solr auch! ‣ Suchserver laufen lange neben der Anwendung
  107. 107. Suchen und Finden ‣ Sphinx ist gut, Solr auch! ‣ Suchserver laufen lange neben der Anwendung ‣ Wenn Sie groß werden, wollen Sie ein eigenes Zimmer! Munin hilft den richtigen Zeitpunkt zu erkennen.
  108. 108. Software Hintergrundverarbeitung
  109. 109. Hintergrundverarbeitung
  110. 110. Hintergrundverarbeitung ‣ BackgroundRB, Starling&Workling, ...
  111. 111. Hintergrundverarbeitung ‣ BackgroundRB, Starling&Workling, ... ‣ Arbeiter wollen auch irgendwann ein eigenes Zimmer.
  112. 112. Hintergrundverarbeitung ‣ BackgroundRB, Starling&Workling, ... ‣ Arbeiter wollen auch irgendwann ein eigenes Zimmer. ‣ Bis dahin tut es auch ein beliebiger Rechner mit etwas Freiraum. CPU und RAM.
  113. 113. Software Deployment
  114. 114. Deployment
  115. 115. Deployment ‣ Capistrano
  116. 116. Deployment ‣ Capistrano ‣ Anpassung des Deployment-Rezepts an die vorhandenen Server/Server-Rollen
  117. 117. Deployment ‣ Capistrano ‣ Anpassung des Deployment-Rezepts an die vorhandenen Server/Server-Rollen ‣ Initiales Deployment schmerzt am meisten.
  118. 118. Backups
  119. 119. Backups OMG!
  120. 120. Backups
  121. 121. Backups ‣ Automatisierte Backups erhalten die Freundschaft.
  122. 122. Backups ‣ Automatisierte Backups erhalten die Freundschaft. ‣ Dateisystem und Datenbank.
  123. 123. Backups ‣ Automatisierte Backups erhalten die Freundschaft. ‣ Dateisystem und Datenbank. ‣ Backups packen, verschlüsseln und verstauen. Duplicity sei dank!
  124. 124. Backups ‣ Automatisierte Backups erhalten die Freundschaft. ‣ Dateisystem und Datenbank. ‣ Backups packen, verschlüsseln und verstauen. Duplicity sei dank! ‣ Ab und zu ein Backup entpacken und kontrollieren. Kaputte Backups = keine Backups.
  125. 125. Backups
  126. 126. Backups ‣ Wieviele Backups passen auf den Backupserver?
  127. 127. Backups ‣ Wieviele Backups passen auf den Backupserver? ‣ Backups sollten rotiert werden. z.B. tägliches Backup, 7 Backups werden vorhalten.
  128. 128. Backups ‣ Wieviele Backups passen auf den Backupserver? ‣ Backups sollten rotiert werden. z.B. tägliches Backup, 7 Backups werden vorhalten. ‣ Größtes Backup * 7 <= Backupspace
  129. 129. Backups ‣ Wieviele Backups passen auf den Backupserver? ‣ Backups sollten rotiert werden. z.B. tägliches Backup, 7 Backups werden vorhalten. ‣ Größtes Backup * 7 <= Backupspace ‣ Backupspace überwachen
  130. 130. Monitoring
  131. 131. „Nur weil ich paranoid bin, heißt es nicht, dass sie nicht hinter mir her sind.“ (Werauchimmer)
  132. 132. Woher weiß der Admin, dass etwas kaputt ist?
  133. 133. Monitoring Nagios
  134. 134. Nagios
  135. 135. Nagios ‣ Nagios überwacht Schlüsselmerkmale eines jeden Rechners. So sollte er eingerichtet werden.
  136. 136. Nagios ‣ Nagios überwacht Schlüsselmerkmale eines jeden Rechners. So sollte er eingerichtet werden. ‣ Stimmt etwas nicht, benachrichtigt er der/die verantworliche Person(en). Dito.
  137. 137. Nagios
  138. 138. Nagios ‣ Was wird überprüft?
  139. 139. Nagios ‣ Was wird überprüft? ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm.
  140. 140. Nagios ‣ Was wird überprüft? ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm. ‣ LOAD. Mehr sysload als Cores? Prozesse müssen warten.
  141. 141. Nagios ‣ Was wird überprüft? ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm. ‣ LOAD. Mehr sysload als Cores? Prozesse müssen warten. ‣ HTTP. Ist da noch ein Webserver?
  142. 142. Nagios ‣ Was wird überprüft? ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm. ‣ LOAD. Mehr sysload als Cores? Prozesse müssen warten. ‣ HTTP. Ist da noch ein Webserver? ‣ APP. Gibt meine Anwendung noch den String XY aus?
  143. 143. Nagios ‣ Was wird überprüft? ‣ Swap. Viel swap = wenig RAM = Laaaangsssaaahmm. ‣ LOAD. Mehr sysload als Cores? Prozesse müssen warten. ‣ HTTP. Ist da noch ein Webserver? ‣ APP. Gibt meine Anwendung noch den String XY aus? ‣ und vieles mehr!
  144. 144. Monitoring Ressourcen-Historie
  145. 145. Ressourcen-Historie
  146. 146. Ressourcen-Historie ‣ Munin
  147. 147. Ressourcen-Historie
  148. 148. Ressourcen-Historie ‣ Zeichnet die Auslastung bestimmter Ressourcen auf.
  149. 149. Ressourcen-Historie ‣ Zeichnet die Auslastung bestimmter Ressourcen auf. ‣ Trend-Analyse
  150. 150. Ressourcen-Historie ‣ Zeichnet die Auslastung bestimmter Ressourcen auf. ‣ Trend-Analyse ‣ Was war nach meiner PR-Aktion auf den Servern los?
  151. 151. Ressourcen-Historie ‣ Zeichnet die Auslastung bestimmter Ressourcen auf. ‣ Trend-Analyse ‣ Was war nach meiner PR-Aktion auf den Servern los? ‣ Wann muss ich zusätzliche Server kaufen?
  152. 152. Ressourcen-Historie ‣ Zeichnet die Auslastung bestimmter Ressourcen auf. ‣ Trend-Analyse ‣ Was war nach meiner PR-Aktion auf den Servern los? ‣ Wann muss ich zusätzliche Server kaufen? ‣ Hat meine APP ein Speicherleck?
  153. 153. Wartung
  154. 154. Wartung
  155. 155. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates.
  156. 156. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates. ‣ Für größere Updates werden einzelne Server aus dem Verbund gelöst, aktualisiert und danach wieder eingefügt.
  157. 157. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates. ‣ Für größere Updates werden einzelne Server aus dem Verbund gelöst, aktualisiert und danach wieder eingefügt. ‣ Ruby Updates. Ruby, Rails, Gems, ...
  158. 158. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates. ‣ Für größere Updates werden einzelne Server aus dem Verbund gelöst, aktualisiert und danach wieder eingefügt. ‣ Ruby Updates. Ruby, Rails, Gems, ... ‣ Rotation und Stichproben der Logs.
  159. 159. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates. ‣ Für größere Updates werden einzelne Server aus dem Verbund gelöst, aktualisiert und danach wieder eingefügt. ‣ Ruby Updates. Ruby, Rails, Gems, ... ‣ Rotation und Stichproben der Logs. ‣ Überprüfung der Backups.
  160. 160. Wartung ‣ OS-Aktualisierungen. Minor-, Major-, Distributions-Updates. ‣ Für größere Updates werden einzelne Server aus dem Verbund gelöst, aktualisiert und danach wieder eingefügt. ‣ Ruby Updates. Ruby, Rails, Gems, ... ‣ Rotation und Stichproben der Logs. ‣ Überprüfung der Backups. ‣ ...
  161. 161. Fazit Ist ja alles gut zu wissen, aber...
  162. 162. Fazit ... wer kommt neben all diesen Dingen noch zum programmieren?
  163. 163. Fragen?
  164. 164. Vielen Dank für Ihre Aufmerksamkeit! Headquarter: Rails Enterprise Hosting: http://www.avarteq.de http://www.enterprise- rails.de Blog: http:// Rails Hosting: www.treibstofff.de http://www.railshoster.de

×