ns.10be.de — Ein neues Kapitel nach fast zwei Jahren Arbeit

ns.10be.de – One Click Nightscout Hosting

Ich schreibe diesen Post mit einem sehr guten Gefühl. Nicht weil alles perfekt ist — das wird es nie sein — sondern weil ich auf die letzten zwei Jahre zurückblicke und sehe, was entstanden ist.

 

Wie alles begann

Wer ns.10be.de kennt, weiß: Der Dienst läuft seit November 2017. Damals war die Idee einfach: anderen ermöglichen, Nightscout zu bekommen — ohne dass jeder selbst Serveradmin sein muss und ohne dass ich dabei viel manuell arbeiten muss. Was als kleines automatisiertes Projekt startete, wurde über die Jahre zu einer ernsthaften Infrastruktur mit Hunderten von Nutzern, mehreren Clustern, MongoDB-Servern, Proxy-Servern, Backup-Systemen und einer Menge Abenden vor dem Terminal.

Irgendwann war klar: Es muss komplett neu gebaut werden. Nicht weil es nicht lief — sondern weil der Code über die Jahre immer weiter gewachsen war, neue Funktionen wurden draufgestapelt, Updates blieben aus weil schlicht keine Zeit war, und irgendwann crashte es. Der Code war nicht mehr wartbar, zu viel war zusammengestückelt was eigentlich sauber hätte aufgebaut sein müssen. Es gab keine Alternative mehr — ein kompletter Neuaufbau war der einzige Weg nach vorne.

 

Fast zwei Jahre Arbeit im Hintergrund schon davor

Was die meisten Nutzer nicht sehen: Während alles lief wie gewohnt, wurde im Hintergrund schon viel früher praktisch alles neu aufgebaut. Neue Cluster. Neues OS. Neues Docker-Setup. Ein komplett neues Queuing-System das Befehle zuverlässig über einen eigenen Message-Queue-Server abarbeitet. Neue Proxy-Server auf HAProxy/TPROXY-Basis die das alte nginx-Setup ablösen.

Das klingt trocken — ist es aber nicht, wenn man nachts um 3 Uhr vor einem frisch abgestürzten Cluster sitzt und herausfindet, dass neue AMD-Hardware unter Last anders reagiert als erwartet. Oder wenn man merkt, dass RAM-Limits trotz korrekter Konfiguration nicht übernommen werden. Oder wenn ein unkontrolliert mehrfach laufender Verteilerprozess die gesamte neue Hardware in die Knie zwingt. Nach Tagen der Fehlersuche war die Lösung: Intel-Hardware, sauber konfiguriert, mit 10–20 % RAM-Reserve und vielen Anpassungen. Seitdem läuft alles stabil.

Parallel dazu: MongoDB Replica Set und PostgreSQL Replica aufgebaut — damit kein einzelner Datenbankausfall mehr zu Problemen führt. Zwei Proxy-Server in getrennten Rechenzentren mit automatischem Failover. 47 Tage Backup-Aufbewahrung statt der alten 28 Tage.

Und dann die Geschwindigkeit. Früher dauerte ein Deploy bis zu 15 Minuten für fünf Instanzen. Heute startet eine Nightscout-Instanz in unter 3 Sekunden. Ein Redeploy zum Version aktualisieren, in unter 5 Sekunden. Das ist das Ergebnis von monatelanger Arbeit an der Infrastruktur und dank der Nightscout- und DIY-Looper-Community möglich.

 

Die neue Webseite

Die Webseite hatte bereits eine solide Basis — aber das Design war über die Jahre zusammengestückelt und an vielen Stellen nicht mehr konsistent. Das wurde jetzt von Grund auf korrigiert und deutlich verbessert. Es gibt eine Erste-Schritte-Seite mit einer echten Schritt-für-Schritt-Anleitung, eine Tour-Seite die zeigt wie das Dashboard und die Konfiguration aussehen, eine Changelog-Seite mit allem was sich seit 2017 verändert hat, und eine überarbeitete FAQ.

Aber auch im Dashboard selbst hat sich viel getan: Man kann jetzt das eigene Abo direkt in NS10BE kündigen oder die Laufzeit wechseln — ohne Umweg über Stripe oder PayPal. Follower-Tokens sind per Klick erstellbar. Viele kleine Dinge die sich über die Zeit angesammelt haben und jetzt endlich sauber umgesetzt sind.

Fünf Sprachen — Deutsch, Englisch, Französisch, Spanisch und jetzt auch Polnisch. Darkmode, Schriftgrössenauswahl, Browser-Spracherkennung. Das klingt nach Details — aber genau diese Details machen den Unterschied für jemanden der spät abends versucht, Nightscout für sein Kind einzurichten.

 

Nocturne — die moderne Nightscout-Oberfläche

Ein weiteres Thema das viel Zeit gekostet hat: Nocturne. Die neue, modern entwickelte Nightscout-Oberfläche ist technisch eine andere Welt als das klassische Nightscout-UI — und entsprechend aufwändig war es, sie auf ns.10be.de zum Laufen zu bringen und ausgiebig zu testen. Es steckt einiges an Arbeit dahinter, das Ganze so zu integrieren dass es zuverlässig funktioniert und nicht mit dem Rest der Infrastruktur kollidiert.

Erste Entwickler können Nocturne auf ns.10be.de bereits nutzen. Wer als aktiver Nightscout-Entwickler testen möchte, soll sich gerne melden — allgemeine Verfügbarkeit folgt wenn alles ausreichend getestet und stabil ist.

Was als nächstes kommt

Der Hauptserver-Umzug ist vollzogen — und auch die Extra-Server für Medtrum, Libre, Diasend/Glooko und weitere sind neu installiert. Das war der Teil der mir am meisten Sorgen gemacht hat: rund 40 Server gleichzeitig neu installieren, im laufenden Betrieb. Im Test lief alles sauber — und zum Glück hat es auch in der Realität funktioniert. Immer wieder Ausfälle gab es, da die Erkennung von fehlerhaften Logins selbst fehlerhaft war :-). Dies ist aber nun alles gefixt.

Jetzt läuft alles auf dem neuen System. Was noch kommt, werden kleinere Verbesserungen und Feinschliff sein — und natürlich alles was die Community als nächstes braucht.

Ein persönliches Wort

ns.10be.de ist ein Projekt von jemandem der selbst betroffen ist und seit 2017 daran arbeitet, dass andere sich nicht um Technik kümmern müssen. Jede Verbesserung kommt aus echtem Feedback echter Nutzer. Jeder Fehler wird von mir persönlich behoben — meistens schneller als erwartet, weil ich direkt per Discord benachrichtigt werde.

Wenn ihr Fehler findet — bitte melden. Ich hab alles mehrfach getestet, aber vier Augen sehen mehr als zwei.

Danke an alle die seit 2017 dabei sind. 🙏

→ Screenshots & Tour ansehen

 

P.S. der Text wurde mit Hilfe von KI verbessert, ansonsten wäre der Blogpost viel, viel zu technisch und 10 Seiten lang geworden 🙂

Uptime und Traffic von ns.10be.de (managed nightscout service)

Uptime von ns.10be.de

In den letzten Tagen/Wochen, lief ns.10be.de sehr stabil.

Der Service von uptimerobot, welcher alle Server, die hinter ns.10be.de stehen überwacht, ob diese laufen und auch, ob auf den einzelnen Cluster eine Monitoring-Instanz, sowie die MongoDB-Dienste schnell genug antworten, hat für die letzten 90 Tage eine Uptime von:

99.974%

errechnet. Dabei sind die Probleme mit den Medtronic-Servern auch mit drin (seit dem 15.02.21 aber erst).
Vor ein paar Tagen, war z.B. der MongoDB-Server 2 down. Dank der Automatisierung, wurde diese aber automatisch vom System dann neu gestartet.
Eine Analyse hat ergeben, das dieser das swappen angefangen hat, da nach den Anpassungen der Config, ich vergessen hatte auf diesem die MongoDB-Datenbank-Server neu zu starten und somit die Anpassung noch nicht gegriffen hat.
Ebenso sind darin auch z.B. das Up-/Downgraden von Cluster/Proxy-Server enthalten. So lange mindestens noch ein Proxy-Server verfügbar ist, sind die Nightscout-Server erreichbar.

Detailtieres Monitoring:

Was noch fehlt, ist die Ermittlung, warum zwei Cluster manchmal eine stark erhöhte Load von > 100 haben für einige Minuten.
Ich denke, da wird evtl. jemand autotune oder ein export machen oder viele komplexe Queries senden. Zum Glück, konnte ich dies bisher nur bei zwei Clustern sehen.
Die Überwachung der Server erfolgt detaillierter über Munin:
Die Analyse, führen wir mit atop durch, welches alle 5 Minuten die Daten wie Ram-Auslastung, Prozesse mit der meisten CPU- oder RAM-Nutzung, speichert. So kann man dann feststellen, ob ein Systemprozess oder Dienst von 10be dafür verantwortlich ist, oder eine/mehrere Nightscout-Instanzen.

Requests, die bei 10be eingehen

Pro Sekunden gehen bei ns.10be.de ca. 120 Requests, verteilt auf drei Proxy-Server ein.

Durchschnittlich sind auf allen Proxy-Server zusammen 700.000 Verbindungen offen, welche z.B. durch xdrip, spike, androidaps, diabox usw. gemacht werden.

Das gute bei den JiffyBox-Servern von df.eu ist, das man sie sehr schnell vergrößern/verkleinern kann. Aktuell sind beim proxy2 z.B. viel mehr Requests eingegangen, als üblich und dadurch kam dieser an seine Grenzen.

Daher wird dieser nun in einen größeren Tarif gerade gewechselt und ist in paar Minuten wieder online mit mehr Ram und CPU-Power.

Aktuell stehen hinter ns.10be.de 43 Server und es soll bald noch ein Proxy-Server im asiatischen und amerikanischen Raum dazu kommen, um von dort den Verbindungsaufbau und die Geschwindigkeit dort zu erhöhen.

Traffic von ns.10be.de

Im Monat 04/2021, hatten die Server bei Provider 1 ein Traffic von:

23.768,920 GB

Bei Provider 2 kamen im April:

53.260,035 GB

 

Zusammen also grob:

77TB

Dies konnte reduziert werden, da bei einigen Punkten, wie z.B. MySQL-Queries, welche von den Cluster-Servern (Dienste von 10be), die prüfen ob sich Daten einer Instanz geändert haben (Server erstellt, editiert oder z.B. auf redeploy geklickt wurde), komprimiert gesendet werden.

Ebenso wurde durch die Stabilität, die Anzahl der Neuverbindungen und Abbrüche reduziert, was auch etwas Traffic spart.

Und im April haben praktisch keine Umzüge stattgefunden, wo von Server 1 auf Server 2, Daten kopiert werden, was auch wieder pro Umzug einige bis hunderte MB einspart.