Proxer Stream Backend Migration

Heute wurde das Proxer-Stream Backend auf ein neues Backend migriert. Das Proxer-Stream-Backend ist einer unserer wichtigsten Dienste und war ursprünglich zugekauft. Diese Software bestand aus hunderten von Dateien mit Quellcode in Perl und binären verschlüsselten Dateien. Das Upgraden des Betriebssystems war nicht mehr möglich, weil Fehler in verschlüsselten Bereichen geworfen wurden. Es musste daher entweder die neue Version der Software zugekauft oder ein neues Backend entwickelt werden. Diese Feststellung hatte ich vor 4 Jahren gemacht.

Aufbau der Stream Infrastruktur. Skalierung findet über die Fileserver statt.

Das Aufgabe ist, ein neues Backend für den Proxer Stream zu entwickeln, um unsere Streaming-Infrastuktur modernisieren und warten zu können. Als ich dieses Projekt angegangen bin, hatte ich nicht erwartet, dass es solche Ausmaße einnehmen wird… Erst heute hat diese Aufgabe ein Happy End gefunden. Hier ist meine kleine Geschichte vom aufwändigsten Migrationsprojekt, das ich bislang durchführen durfte.

Proxer Stream Backend Migration weiterlesen

Proxer Discord Bot Migration (NadekoBot)

Discord ist einer der beliebtesten Nachrichtendienste heutzutage. Wenn man sich bei Discord registriert, bekommt man kostenlose Nutzung einer großartigen Infrastruktur. Jeder kann sogenannte „Discord Server“ erstellen, andere Nutzer einladen und Inhalte aufbauen. In Discord gibt es daher unzählige Communities, die von dieser Infrastruktur profitieren. Auch auf Proxer besitzen wir einen Discord Server, in dem der Austausch innerhalb der Community stattfindet. Bald wird der Proxer Discord Server 10.000 Mitglieder haben.

Screenshot vom Git Repository des Bots

Um ein wenig Spaß und Spiele in den Server einzubringen, betreiben wir ein Discord Bot. Der Bot basiert auf NadekoBot. Dieser Bot hat nicht mehr funktioniert und musste geprüft werden. Es hat sich heraus gestellt, dass der Bot sich nicht mehr aktualisiert hat. Den Bot wieder zum Laufen zu bekommen, war gar nicht so einfach und hat einen manuellen Migrationsprozess gefordert. In diesem Blogpost möchte ich erklären, warum es wichtig ist, immer wieder mal ein Auge auch auf funktionierende Systeme zu haben.

Proxer Discord Bot Migration (NadekoBot) weiterlesen

SAP HANA und Jupyter Notebook

SAP HANA ist die Datenbanklösung von SAP, die eine breite Palette an Möglichkeiten und Funktionen für Geschäftsanwendungen bieten. Was vielleicht weniger bekannt ist, dass diese Datenbank auch Integration in offene Connectoren wie JDBC oder ODBC APIs anbietet, sodass man aus jeder beliebigen Anwendung heraus Operationen auf der Datenbank ausführen kann.

Vor Kurzem habe ich im Rahmen von Data-Science Aufgaben diese Connectoren genutzt und möchte hier dokumentieren, wie man Operationen in SAP HANA von Jupyter Notebook aus durchführen kann. Es ist dadurch möglich von bestehenden Data-Science Werkzeugen gebrauch zu machen und gleichzeitig von den Möglichkeiten zu profitieren, die SAP HANA für Geschäftsanwendungen bietet. Ich möchte das Ganze in diesem Beitrag an einem Beispiel erläutern.

Das Ergebnis dieser Arbeit findet sich auch auf GitHub.

Update: Blog Artikel gibt es nun auch auf englisch auf blogs.sap.com

SAP HANA und Jupyter Notebook weiterlesen

ABAP Entwicklung

Vor kurzem habe ich diese beiden Werke auf Ebay-Kleinanzeigen erworben

Heute hatte ich einen kleinen persönlichen Meilenstein in meinem Dasein als Softwareentwickler erlebt. Seit über 10 Jahren entwickle ich Software in allen möglichen Programmiersprachen, Frameworks und Plattformen. Heute habe ich meinen ersten funktionsfähigen ABAP Code selbstständig geschrieben. ABAP Entwicklung ist in vielerlei Hinsicht eine komplizierte Sache: ABAP Entwicklung erfordert nicht nur gute SAP Kenntnisse und ein Entwicklungssystem, sondern auch gute Kenntnisse über die Geschäftsprozesse. ABAP Code läuft oft auf kritischen Produktivsystemen und erfordert besondere technische Expertise von den Entwicklern und Testern. Auch die Art und Weise wie man entwickelt ist in vieler Hinsicht anders als alles, was ich bisher entwickelt habe.

ABAP Entwicklung weiterlesen

Nextcloud Teil 2

Vor über 3 Jahren habe ich mir eine private Nextcloud Instanz eingerichtet, die ich seit dem intensiv genutzt habe. Ich habe mehrere Accounts, die ich für unterschiedliche Zwecke und unterschiedliche Rechner genutzt habe. Auf meinem privaten Rechner konnte ich so auf meine privaten Bilder zugreifen, und auf meinem Arbeitsrechner diesen Zugang unterbinden.

Speicherplatz auf /dev/sda1 ist zu 96% voll.

In der Zwischenzeit habe ich den Server natürlich auch gewartet, immer schön Updates installiert und geschaut, dass alles weiterhin sicher und ordentlich ist. Leider hat sich ein Problem mit dem Speicherplatz ergeben. Meine 40GB Speicherplatz auf der Cloud Instanz sind voll geworden. Eigentlich müsste das einfach sein, Speicherplatz zu erhöhen. Schließlich ist handelt es sich um „Cloud“-Server.

Preise der Hetzner Cloud Server

An den Preisen sieht man, dass zwar wenig Speicherplatz relativ günstig ist (was ich auch genutzt habe), dass man aber sehr schnell zu höheren Preisen kommt, wenn man ein paar hundert GB Speicherplatz benötigt. Ich benötige eine Nextcloud mit mehreren TB Speicherplatz, um auch meine privaten Bilder, auf dem Smartphone, meine digitale Büchersammlung, meine alten Festplatten und USB Sticks, meine Videospiele-Roms vollständig backuppen zu können. Alleine meine private Nintendo Rom Sammlung ist ein paar hundert GB. Aus diesem Grund habe ich beschlossen, meine ganze Nextcloud auf einen dedizierten Server umzuziehen.

Nextcloud Teil 2 weiterlesen

Proxer Server „Manga 3“ Wiederherstellung

Serverstatus auf Proxer.de

Diese Woche ist einer unserer Proxer Manga-Server abgeraucht. Der Server hatte bereits ein paar Ausfallerscheinungen und ist am Ende komplett ausgefallen. Es war nicht mehr möglich, eine SSH Verbindung mit dem Server aufzubauen oder vom Webinterface des Hosters ein Neustart zu triggern. In diesem Beitrag möchte ich den Wiederherstellungsprozess erläutern.

Proxer Server „Manga 3“ Wiederherstellung weiterlesen

Datenbanken Prüfung für SoSe2022

Die Prüfungsphase naht und als Lehrbeauftragter (LB) heißt es, die nächste Prüfung vorzubereiten. Die Prüfung aufzubauen ist vermutlich die wichtigste Aufgabe dieser Tätigkeit. Eine Prüfung ist nicht nur ein Fragenkatalog. Mit jeder Prüfung wird auch definiert, welche Kenntnisse wichtig sind für die kommende Zeit. Denn das ist genau das, was die Studierenden und kommenden Studierenden durch Altklausuren lernen und aneignen. Die Bewertung der Prüfungen ist eine Art Qualitätssicherung für Fähigkeiten.

Abstraktionsansatz der Vorlesung, Folien: Prof. Küppers

Als LB bringt man dabei Erfahrungen aus der Wirtschaft in die Prüfung mit ein, damit die Studierenden wirklich das lernen, was ihnen später am Nützlichsten ist. In den angewandten Wissenschaften ist das essentiell. In diesem Beitrag möchte ich ein wenig darauf eingehen, wie die Vorlesung inhaltlich aufgebaut ist und wie die resultierende Punkteverteilung der Prüfung ist. Dieser Beitrag wird erst nach der Prüfung veröffentlicht.

Datenbanken Prüfung für SoSe2022 weiterlesen

KI Kunst (AI Art) mit Disco Diffusion

Mithilfe künstlicher neuronaler Netze (KNN) kann man so einiges machen. Einer der Anwendungsfälle ist die KI (Künstliche Intelligenz) Kunst. Damit man Kunst aus der KI erzeugen kann benötigt man ein Modell, was man mit Trainingsdaten aufbaut. Die Trainingsdaten umfassen idealerweise ein großes Portfolio an unterschiedlichsten Daten aus vielen verschiedenen Quellen, sodass auch die Menge der potenziellen Ergebnisse möglichst umfangreich ist.

Exploring Duck
Japanische Kirschblüten in einer dystopischen Umgebung
Leuchtturmszene

Man kann nun diesem trainierten Modell Eingabedaten (z.B. Text) geben, sodass aus diesen Eingabedaten eine Ausgabe (z.B. ein Bild) erzeugt wird. Man kann die Parameter so aufbauen, dass interessante Ergebnisse raus kommen. Da die Menge an möglichen Eingaben und Ausgaben unerschöpflich ist, und oftmals etwas kreatives raus kommt, bezeichnet man die Ergebnisse dieses Prozesses auch als Kunst. Ich habe vor Kurzem ein wenig mit dieser Art von Kunst befasst und möchte das Werkzeug „Disco Diffusion“ vorstellen.

KI Kunst (AI Art) mit Disco Diffusion weiterlesen

WordPress im Docker Container mit Nginx Proxy

Ich habe bereits unzählige WordPress Installationen durchgeführt. Datenbank Benutzer erstellen, WordPress herunterladen und installieren. Heute habe ich aber eine neue Infrastruktur gebraucht. Ich wollte mehrere WordPress Instanzen im Rahmen verschiedener Test und Entwicklungstätigkeiten nutzen und auch anderen Bereitstellen. Ich habe dabei drei Anforderungen:

  1. Die Instanzen sind isoliert.
  2. Die Instanzen lassen sich automatisiert aufsetzen und löschen.
  3. Die Instanzen sind öffentlich über ein Nginx Proxy zugänglich. Sie haben ihre eigenen Subdomains. Das Ganze wird als virtual host (vhost) umgesetzt.
Aufbau der Infrastruktur

Docker bedient zusammen mit Docker-Compose ein Teil dieser Anforderungen. Damit kann man Instanzen automatisiert erzeugen und löschen. Das Ganze befindet sich in einer isolierten Umgebung. Nginx Proxys erzeugen ist auch gut machbar. Aber die Kombination aus einem Nginx Proxy im Host-System und Docker Container kann manchmal nicht auf Anhieb funktionieren. Ich möchte in diesem Beitrag kurz meine Lösung erläutern.

WordPress im Docker Container mit Nginx Proxy weiterlesen