Ausfallsicherheit Web Applikation

  • Hallo zusammen,


    ich bin gerade dabei eine Anwendung auf ein möglichst ausfallsicheres Niveau zu bringen.
    Dazu haben wir eine verteilte, containerbasierte Web Applikation entwickelt die (aktuell) auf 2 Server verteilt läuft.
    Hierzu gibt es aktuell einen LoadBalancer der den Traffic verwaltet. Nun existiert hier natürlich aber ein SinglePoint of Failure, den wir gerne auch absichern würden.
    Daher die Idee einen zweiten LoadBalancer zu betreiben und diesen über keepalived mit dem primären zu verbinden (Healthchecks).
    Eine FailoverIP dann im Notfall zum Wechseln zwischen den LoadBalancern.


    Da ich 1-2 Fragen zur FailoverIP hatte, hatte ich mich an den netten NetCup Support gewandt, dieser war auch sehr hilfreich, hatte am Ende aber eine sehr kryptische Anmerkung, dass es wohl auch andere, sinnvolle(re) Alternativen zu diesem Vorgehen gäbe, auf die er aber in seiner Tätigkeit als technischer Support nicht weiter eingehen kann. Ich solle mich doch an das nette und hilfreiche Forum wenden :)


    Daher hier mal die Frage, spricht generell etwas gegen dieses Vorgehen? Bzw. was wäre denn eine adäquate Alternative? Gäbe es die Möglichkeit über DNS dies zu gewährleisten?


    Besten Dank und viele Grüße
    Chris

  • DNS ist im Normalfall keine ausreichende Lösung, siehe auch Drawbacks im vorher verlinkten Wikipedia-Artikel.


    Ich persönlich würde es einfach mit der Failover-IP realisieren. Das sollte die wenigsten Nachteile haben. Wenn netcup als Ganzes nicht erreichbar ist, bricht das System halt trotzdem zusammen… :D



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Sessions die auf dem einen Server waren gehen verloren.


    Das kann theoretisch damit gelöst werden, indem die Sessions auf einem (weiteren) zentralen Server z.B. im memcache Storage oder einem zentral gemounteten storage pfad gelagert werden wovon sich beide Server bedienen. Ob das den Aufwand/Kosten wert ist oder ob der User beim Wechsel dann einmalig "session abgelaufen" bekommt und sich neu einloggen muss, muss man dann entscheiden.
    Für Dinge wie Warenkorb kann man auch den localstorage des Browsers nutzen und wäre dann unabhängig vom session backend.

  • danke erstmal für eure Empfehlungen.
    Ich habe auch noch einmal ein bisschen mehr google bemüht und denke wir werden es tatsächlich erst einmal mit den failover IPs testen.
    Sind zwar ein paar Mehrkosten aber wenn es funktioniert ist es das Wert. Letztendlich sollte es ja kaum vorkommen dass NetCup komplett vom Netz fällt und 1 min für einen Switchover finde ich noch ganz im Rahmen....


    Falls jemand noch weitere Alternativen hat, lerne ich aber gerne weiter.

  • Chris_
    Meine Poor-Mans-Replication besteht einfach nur aus zwei Netcup Servern welche regelmäßig mit rsync untereinander synchron gehalten werden - dabei reicht mir ein Zeitversatz von 15 Minuten leicht aus da die Daten relativ statisch sind (Firmenwebsite, Mailserver). Wenn also der eine Host ausfällt kann ich simpel die Failover IP umswitchen und nach kurzer Zeit übernimmt der Ersatzserver.
    Ich hab das sogar mal gestoppt:

    Code
    2 Sekunden nachdem das Umleiten der Failover-IP beauftragt wurde 
    kommen keine Pakete mehr an die Failover-IP an. Ca. 30 Sekunden nach 
    Beauftragen kommen dann die Pakete am neuen Server an.
  • hi ThomasChr


    vielen Dank für die Info. So etwas in der Art hat mir auch vorgeschwebt. Ich denke die Downtime ist dann schwer vom "Heartbeat" under Switchtime abhängig.
    Sprich bei einem Heartbeat von 30sek. dann wohl im dümmsten Fall 1 min, ansonsten auch schneller.