Health-Check-Cache für HTTP-Backends

Was ist das, wozu brauchen wir das und was ist daran so kompliziert?

Ein Health-Check-Cache soll, wie der Name schon vermuten lässt, Health-Checks cachen. In Wirklichkeit passiert aber noch mehr, was für uns auch sehr wichtig ist.

Unsere Loadbalancer laufen mit HAProxy. Dieser macht regelmäßig Health-Checks gegen die Backends. Das ist auch gut und richtig, denn er muss ja immer wissen, welches Backend tatsächlich up oder down ist, um den Traffic für den User möglichst ohne Unterbrechung oder Fehler zu lenken. Wenn man jetzt, so wie wir, sehr viele Loadbalancer hat und diese auch noch innerhalb sehr kurzer Zeit vervielfachen kann, wird das jedoch ab einem gewissen Punkt zu einem Problem und skaliert einfach nicht mehr, was die Health-Checks angeht.

Stellen wir uns 50 Loadbalancer vor, die alle N Sekunden gegen ein und das selbe Backend prüfen. Dazu kommt der normale Traffic, der nicht aus dem Cache ausgeliefert wird, oder der gerade im Cache expired ist, plus vielleicht noch eine „nicht optimale“ Backendsoftware, die einfach nicht so viele Requests pro Sekunde schafft. Das alles in Kombination ist denkbar ungünstig. Das Ziel eines Caches ist es ja, das Backend zu entlasten und die Auslieferung bestenfalls noch zu beschleunigen. Selbiges können wir auch für Health-Checks tun. Wieso sollen alle 50 Loadbalancer einzeln ihre Health-Checks gegen die Backends fahren? Auch hier kann man das super konsolidieren, indem wir nur für die Health-Checks einen Cache betreiben und der HAProxy gegen den Cache prüft.

Das Backend bzw. die Software können wir uns leider nicht in jedem Fall aussuchen oder so beeinflussen, dass sie für uns ausreichend performt. Also brauchen wir eine Lösung, die wir einfach überall anwenden können, unabhängig vom eigentlichen Backend. Da passt ein solcher Cache sehr gut ins Konzept.

„Health-Check-Cache für HTTP-Backends“ weiterlesen

go-mmproxy: Anwendung um PROXY-Protokoll erweitern

Für ein Projekt benötigten wir einen mandantenfähig Wowza Streaming Engine Server, wobei der Anwendung für einige Features die öffentliche IP-Adresse des Clients bekannt sein muss (z.B. zur Beschränkung des Startens von Live-Streams). Bei unserem Setup erhält die Applikation den Traffic jedoch von der internen IP-Adresse eines Gateways.

„go-mmproxy: Anwendung um PROXY-Protokoll erweitern“ weiterlesen

Hello world!

Willkommen zum technischen Blog der Babiel GmbH!

Hier schreiben häuptsächlich Kollegen aus dem Bereich des Managed Hostings – unsere HR bespielt Linkedin, Facebook und Instragram – hier sind die Techniker am Werk. 😉 Auf twitter sind wir diejenigen, die technische Dinge (re)tweeten und kennzeichnen dort unsere Beiträge durch unser jeweiliges Kürzel.

Wir hoffen, durch den Blog bessere Einblicke darauf geben zu können, wie wir arbeiten, welche Themen uns bewegen und hoffen, darüber auch in einen Austausch zu kommen. Pre-COVID19 fand man uns regelmäßig auf Meetups, z.B. beim „talk@babiel“ direkt bei uns vor Ort, aber z.B. auch bei DevOps Düsseldorf – dort ebenfalls mit Vorträgen. Da der Vor-Ort Austausch leider schon lange ruhen muss, sieht man sich nun vielleicht mal beim Infrafoo des Chaosdorf.

Zum Team: wir sind derzeit 22 Kollegen und dafür verantwortlich, die IT Services der Babiel zu betreiben. Das fängt an bei Grundlagen wie dem Betrieb unseres Autonomen Systems AS198913, geht weiter über Themen wie Virtualisierung, Storage, Betriebssysteme, Managed Hosting, Monitoring und umfasst auch den Betrieb der Applikationen; aber auch betriebsrelevante Tools werden in der Abteilung programmiert.

Themen die uns bewegen sind also:

  • Datacenter-Technologie im Netzwerkbereich, Loadbalancer, DDoS-Schutz, Virtualisierung
  • Automatisierung, CI/CD Pipelines, Puppet, Go
  • Kubernetes
  • Linux
  • Speziallösungen für IT-Probleme, die man mit der Zeit bekommt und für die es keine „off the shelf“ Lösung gibt

Enjoy our Blog!