Varnish Cache performant revalidieren

Für eine Applikation haben wir eine Möglichkeit gesucht, um einzelne Objekte bzw. URLs in einem vorgeschalteten Varnish Cache vor Ablauf der maximalen Caching-Dauer zu erneuern. Die Anwendung sollte dabei möglichst wenig belastet werden. Die Clients sollen zudem bei der Erneuerung von Inhalten keine erhöhten Antwortzeiten wahrnehmen.

„Varnish Cache performant revalidieren“ 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

Prometheus-Metriken für Puppet Server mit Mtail

Wir verwalten alle unsere über 1000 Linux-Maschinen zentral mit Puppet. Puppet Server ist also eine wichtige Komponente unserer Infrastruktur. Wenn Puppet nicht zuverlässig läuft, können wir nicht ordentlich arbeiten.

In solche wichtigen Komponenten wollen wir Einblick, damit wir bei Problemen verstehen können wo es klemmt. Deswegen sammeln wir generell alle möglichen Daten mit Prometheus ein und werten diese in Grafana-Dashboards aus.

„Prometheus-Metriken für Puppet Server mit Mtail“ weiterlesen

Bonding-Flapping mit Linux und Supermicro-IPMI

Dass jedes System irgendwann mal ausfällt, kommt natürlich vor. Neulich hatten wir einen Ausfall, welcher routinemäßig anfing, sich jedoch als sehr seltsam entpuppte.

Alles begann an einem Dienstagmorgen gegen halb drei. Einer der Switches im Rack fiel aus und das Monitoring klingelte die Bereitschafts-Admins wach, da nicht nur der Switch, sondern auch ein paar Server nicht mehr erreichbar waren. Der Ausfall selber wäre halb so wild, da die Server mithilfe eines Active-Passive Bondings an zwei verschiedenen Switches hängen. Jedoch wurde bei manchen Servern der Port, welcher an den defekten Switch angeschlossen war, immer wieder auf „Active“ gesetzt. Das dies ein falsches Verhalten ist, ist natürlich klar, jedoch die Ursache ein schönes Beispiel für das Zusammenspiel von mehreren unbekannten Standardparametern.

„Bonding-Flapping mit Linux und Supermicro-IPMI“ weiterlesen

Featurebranches mit Gitlab auf gemeinsamer Stage-Umgebung testen

Im Hosting-Team von Babiel verwenden wir (natürlich) Git-Repos für unsere Anwendungen und Konfigurationen. Wir nutzen Gitlab um die Repos zu hosten. Dabei arbeiten wir stark mit Featurebranches, Merge Requests und CI-Pipelines, damit Änderungen vor dem Rollout einen Code-Review und automatische Tests durchlaufen können. Üblicherweise erlauben wir in unseren Repos nicht, direkt in den Hauptbranch (master/main) zu pushen, damit dort keine Änderungen ankommen, die die Pipeline für die Kolleg*innen kaputt machen würden.

Manchmal möchte man einen Branch tatsächlich deployen, um ihn bewerten zu können, bevor man ihn merget. Bei Gitlab gibt es dazu das Feature „Review Apps“, mit dem Branches in eine temporäre Umgebung ausgerollt werden können. Gitlab zeigt auch einen Link zu dieser Umgebung an, so dass man direkt dorthin springen kann. Wenn man den Branch löscht (was meistens automatisch beim Merge passiert), wird die temporäre Umgebung ebenfalls gelöscht.

Review Apps sind ein sehr nützliches Feature. Wir benutzen es für die meisten Services, die wir auf Kubernetes betreiben, denn dort können wir schnell zusätzliche Umgebungen erstellen und ebenso schnell auch wieder löschen. 

„Featurebranches mit Gitlab auf gemeinsamer Stage-Umgebung testen“ 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!