Inhaltsverzeichnis


Viktor Studenyak

DjangoKubernetes

13.04.2021

What's new?Coole neue Features für Django-Hurricane

Mit dem Open-Source-Projekt Django-Hurricane wollen wir bei Blueshoe die Entwicklung in dem Bereich django und Kubernetes vorantreiben. Heute möchten wir dir einige neue Features vorstellen.

whats_new2

Ende 2020 haben wir dir unser neues Open-Source-Projekt Django-Hurricane präsentiert. Den Blogpost zur Vorstellung von Django-Hurricane kannst du hier lesen. Mit diesem Projekt wollen wir bei Blueshoe die Entwicklung in dem Bereich Django und Kubernetes vorantreiben und viele Routineaufgaben, die beim Aufsetzen des Projektes entstehen, von den Schultern der Entwickler nehmen und in ein robustes Framework verlagern.

Wir haben außerdem an der To-do-Liste im GitHub Repository gearbeitet und können jetzt hier einige neue Features von Django-Hurricane präsentieren.

hurricane

Dokumentation

Wir haben intensiv an der Dokumentation gearbeitet. Neben dem User’s Guide, gibt es auch eine Low-Level API Dokumentation. Der User’s Guide gibt hilfreiche Informationen für die Nutzung von Django-Hurricane z. B. die verfügbaren Command-Optionen, nützliche Tipps für die Konfiguration und die allgemeine Aufklärung über die einzelnen Komponenten von Django-Hurricane. In der API-Dokumentation kann man die Funktionalitäten einzelner Komponente besser nachschauen.

christina-wocintechchat

Management-Commands-Ausführung

Außerdem haben wir ein Feature implementiert, welches es ermöglicht, die Management-Commands direkt in dem „serve“-Command zu spezifizieren und auszuführen. Die neuen Command-Optionen sind:

  • no-metrics: Das Metriksammeln deaktivieren.
  • command: Der wiederholbare Befehl, der die Management-Commands definiert. Die Commands werden vor dem Starten des HTTP-Servers ausgeführt. Da der Befehl wiederholbar ist, kann es mehrmals mit den unterschiedlichen Management-Commands definiert werden, die auch weitere Optionen haben können. In diesem Fall muss man die Optionen zusammen mit dem Namen des Commands in einem String angeben.

Ein Command mit den Management-Commands könnte wie folgt aussehen:

python manage.py serve --command makemigrations --command “compilemessages --locale =de_DE”

Probe-Endpoints

Probe-Endpoints können jetzt separat mit dem „serve“-Command definiert werden. Die Optionen dafür sind:

  • startup-probe: Der Pfad für Startup-Endpoint (default: /startup).
  • readiness-probe: Der Pfad für Readiness-Endpoint (default: /ready).
  • liveness-probe: Der Pfad für Liveness-Endpoint (default: /alive).
  • req-queue-len: Der Schwellenwert für die Request-Warteschlange. Wenn dieser Wert überschritten wird, liefert der Readiness-Probe einen Request mit dem Status-Code 400.

Webhooks für Probe-Events

Darüber hinaus haben wir noch ein Feature für Django-Hurricane implementiert: Die Möglichkeit die Webhooks auf eine bestimmte Adresse zu verschicken. Es gibt mittlerweile drei Webhooks, die den drei Probes entsprechen. Der erste Webhook ist der Startup-Webhook. Er wird nach dem Start des HTTP-Servers ausgeführt und an die angegebene Adresse verschickt. Im Falle des Fehlstarts der Applikation wird ein Startup-Webhook mit dem Status „failed“ initiiert. Anschließend wird die Applikation gestoppt.

Die Liveness- und Readiness-Webhooks sind nach den entsprechenden Probe-Anfragen initiiert. Die Webhooks werden nur nach einer State-Änderung ausgeführt, d. h. entweder bei der ersten Probe-Anfrage, wobei der State von „None“ auf „Healthy/Unhealthy“ geändert wird. Ansonsten wird der Webhook bei der Änderung der States von „Healthy“ zu „Unhealthy“ oder von „Unhealthy“ zu „Healthy“ initiiert. Für die Webhooks mit dem Status „failed“ wird entsprechend auch der Fehler-Traceback mitgeschickt.

Damit die Webhooks überhaupt geschickt werden können, muss der Webhook-Command mit der URL-Adresse mitgegeben werden. Die Command-Option heißt „webhook-url” und wird als URL-Adresse für Webhooks mitgegeben. Der gesamte Befehl für die Ausführung der Applikation mit Webhooks würde wie folgt aussehen.

python manage.py serve --webhook-url „http://

Dabei enthält jedes Webhook einige Daten:

  • Status: „failed“ oder „succeeded“, hängt davon ab, ob der Probe erfolgreich ausgeführt wird oder fehlt.
  • Typ: „startup“, „readiness“ oder „liveness“.
  • Timestamp: Zeitpunkt, wenn der Webhook initiiert wurde.
  • Hostname: die Rechner- bzw. Serverbezeichnung.
  • Version: Die Hurricane-Version.
  • Error trace: Wenn der Webhook den Status „failed“ hat, schickt der Server auch die Fehlermeldung mit dem Fehlerpfad.

cyclone

Trotz unserer fleißigen Arbeit an der Django-Hurricane-To-do-Liste in den letzten Monaten, gibt es noch mehrere offene Checkboxen. Wir wären daher sehr dankbar für jegliche Hilfe bei der Weiterentwicklung von Django-Hurricane sowie bei allen unseren anderen Open-Source-Projekten. Wir freuen uns schon jetzt auf die neuen Challenges in der Weiterentwicklung und das Abhaken weiterer Checkboxen auf unserer To-do-Liste im GitHub Repository.


Hast du noch Fragen oder eine Meinung? Mit deinem GitHub Account kannst Du es uns wissen lassen...


Was unsere Kunden über uns sagen

Ofa Bamberg GmbHRainer Kliewe
Ludwig-Maximilians-Universität MünchenProf. Dr. Mario Haim
Deutsches MuseumGeorg Hohmann
Fonds Finanz Maklerservice GmbHNorbert Porazik
Technische Universität HamburgSören Schütt-Sayed
  • Ofa Bamberg GmbH
    Ofa Bamberg GmbH
    B2B Online-Shop | B2C Website | Hosting | Betreuung | Security
    Rainer Kliewe
    © Ofa Bamberg GmbH
    Blueshoe betreut uns und unsere Webapplikationen seit vielen Jahren. Vom Online-Shop bis hin zu großen Teilen unseres Web-Umfelds hat sich das Unternehmen stets kompetent, verlässlich und vorausschauend gezeigt. Wir sind sehr zufrieden mit Blueshoe als Partner.
    Rainer KlieweGeschäftsführer
  • Ludwig-Maximilians-Universität München
    Ludwig-Maximilians-Universität München
    Plattformentwicklung | Hosting | Betreuung | APIs | Website
    Prof. Dr. Mario Haim
    Blueshoe hat unsere Forschungsdatenplattform Munich Media Monitoring (M3) entwickelt und uns hervorragend dabei beraten. Das Team hat unsere Anforderungen genau verstanden und sich aktiv in die Ausgestaltung der Software und der Betriebsumgebung eingebracht. Wir sind froh, dass auch Wartung und weiterführender Support in Blueshoes Händen liegen.
    Prof. Dr. Mario HaimLehrstuhlinhaber, Institut für Kommunikationswissenschaft und Medienforschung
  • Deutsches Museum
    Deutsches Museum
    Digitalisierung | Beratung | Datenbank-Optimierung | GraphQL | CMS
    Georg Hohmann
    Foto: Anne Göttlicher
    Im Rahmen eines komplexen Digitalisierungsprojekts für unsere Exponate-Datenbank war Blueshoe ein äußerst verlässlicher Partner. Sie haben uns nicht nur während des gesamten Projekts hervorragend beraten, sondern unsere Anforderungen perfekt umgesetzt. Dank ihrer Arbeit ist unsere Datenbank nun ein bedeutender Mehrwert für die weltweite wissenschaftliche Forschung.
    Georg HohmannLeiter Deutsches Museum Digital
  • Fonds Finanz Maklerservice GmbH
    Fonds Finanz Maklerservice GmbH
    Plattformentwicklung | Prozess-Systeme | Hosting | Betreuung | Zertifikate | Website
    Norbert Porazik
    © Fonds Finanz Maklerservice GmbH
    Blueshoe ist unsere verlängerte Werkbank für Entwicklung, Wartung und Support unserer Weiterbildungs- und Zertifizierungsplattformen. Das Team hat sich gründlich in unsere Abläufe eingearbeitet, und wir freuen uns, Blueshoe als zuverlässigen Partner an unserer Seite zu haben.
    Norbert PorazikGründer und Geschäftsführer
  • Technische Universität Hamburg
    Technische Universität Hamburg
    Plattformentwicklung | Beratung | Prozess-Systeme | Hosting | Website
    Sören Schütt-Sayed
    Seit 2019 unterstützt uns die Blueshoe GmbH tatkräftig bei der Entwicklung und Weiterentwicklung des "Digital Learning Lab" und der "Digital Learning Tools". Dank ihrer Beratung konnten wir von Anfang an auf eine zukunftssichere, moderne technische Struktur setzen. Die Zusammenarbeit ist reibungslos, und wir fühlen uns rundum gut betreut. Und davon profitieren dann auch die Lehrkräfte in Hamburg.
    Sören Schütt-SayedOberingenieur