inside-gepardec

Gott sei Dank hat der Essenswahnsinn ein Ende! :)

// 01-09-2020
learning friday bootcamp

learning friday bootcamp

Tag 1 – Donnerstag, 20.08

Für Langschläfer wie mich heißt es heute etwas früher aufstehen, denn um 8:00 Uhr ist Abfahrt zum 5×5 Bootcamp, in dem wir uns die Entwicklung in der Cloud mit CodeReady Workspaces (CRW) näher ansehen und das Setup für Hogarama-Entwicklung vereinfachen wollen. Ein Gepard ist leider ausgefallen und so sind wir nur 4 Geparden, die 5 Tage Hacken werden.

Einmal quer durch Wien vom 22. Bezirk zum sehr ruhig gelegenen Wienerwaldhof mitten in der grünen Lunge Wiens.

In den schönen Seminarraum mit riesigem Bildschirm gesellt sich bald ein fünfter Gepard (oder eine Gepardin?) zu uns, die in Felix einen Freund gefunden hat.

learning friday projekt

Den Vormittag verbringen wir mit Einlesen in die Doku. Danach geht es zum ausgiebigen (wirklich ausgiebigen!) Mittagessen. Den Nachmittag starten wir mit einer Runde EmptyEpsilon, in der unser Raumschiff, ausgestattet mit 4 Rookies auf der Brücke, schnell vernichtet wird.

Erfolgreicher sind wir beim Aufsetzen der Basisinstallation von CRW auf der gepardec Spielwiese von OpenShift auf Amazon AWS. Ein kleines Hindernis mit Zertifikaten (was sonst…) ist schnell überwunden.

Bald hat auch jeder seinen eigenen Workspace und wir finden uns langsam in dem System zurecht. Gegen Abend checken wir dann auch Hogarama aus und nach einem ausgiebigen (wirklich ausgiebigen!) Abendessen, einer Runde EmptyEpsilon bei der die Crew von Rookies nicht mehr so vernichtend geschlagen wird, schaffen wir es auch Hogarama im eigenen CodeReady Workspace zu kompilieren. Damit zufrieden schließen wir den ersten Tag ab.

Tag 2 – Freitag, 21.08

Heute geht es darum, Hogarama im eigenen Workspace zu installieren. Da sind zum einen eine Postgres-Datenbank, eine Mongo DB, ein AMQ Message Broker, andere nicht zwingend erforderliche Komponenten und vor allem aber auch ein JBoss Server auf dem ein großer Teil des eigenen Codes läuft. Wir starten mit einer Überlegung, wie man die Komponenten des JBoss installiert, sodass man einerseits bestehende Installationsmechanismen verwenden kann und andererseits auch den JBoss nahe am Workspace hat. Wir entscheiden uns den JBoss innerhalb des Workspaces im CodeReady Pod laufen zu lassen und die anderen Komponenten im selben OpenShift Projekt (Namespace) wie den CodeReady Workspace zu installieren. Und los geht es in zwei Gruppen. Installation der Komponenten und JBoss Umgebung. Und schon ist wieder Mittagessen, wie gehabt ausgiebig, sehr ausgiebig!

Am späteren Nachmittag stehen die wesentlichen Komponenten und wir können den JBoss im CRW konfigurieren. Es geht an die Integration der Teile, zusammenfügen eines sogenannten Devfiles, mithilfe dessen man anhand eines Links einen gesamten Workspace aufbauen kann (a.k.a. Der Kran). 

Coole Sache! Damit gehts zum Abendessen (wir wissen schon).

Nach dem Abendessen setzen wir uns in einer kleinen Hütte mit Feuerstelle zusammen, die Herbert und Felix mit ihrem Gewinn aus der Stackoverflow Challenge (wer hat den größten Punktezuwachs in einem halben Jahr) gesponsert haben. Die Hitze des Feuers wird mit Bier bekämpft, Musik verschiedenen Geschmacks, Six Dice Dice-Game, mehr wird an dieser Stelle nicht verraten. Over and Out.

learning friday projekt

Tag 3 – Samstag, 22.08

Nach einem zähen Start in den Tag (selbst verschuldet) wächst unser devfile stetig weiter und wir lernen besser mit der IDE im Browser umzugehen. (Zumindest 3 von 4 Teilnehmer) :-). Die Wespen helfen uns wach und konzentriert zu bleiben. 

Ein Teilnehmer hat eine eigene Taktik wach und konzentriert zu bleiben, indem er in der von CRW verwendeten Postgres Daten löscht und somit auch einen Workspace vernichtet. Aber das ist alles kein Problem, da mit einem Klick wieder ein neuer Workspace aufgebaut werden kann 🙂 (siehe “Der Kran” von gestern).

Für die Installation/Deinstallation von ActiveMQ, Postgres und MongoDB gibt es eigene Commands. JBoss kann ebenfalls über einen Command neu konfiguriert und neugestartet werden. Das Deployment unserer Applikationen hat natürlich auch einen eigenen Command bekommen.

Ein Problem mit der Hogarama GUI konnte jedoch nicht gelöst werden. Hier funktioniert die Integration mit dem Keycloak noch nicht. Aber wer braucht schon eine GUI, wenn man auch eine CLI verwenden kann? :). Über eine Launch Konfiguration, die ebenfalls im devfile eingetragen ist, kann jetzt jeder Testmessages an unsere ActiveMQ senden.

Das Einhängen eines Debuggers in den JBoss funktionierte problemlos und ist ebenfalls in einer Launch Konfiguration hinterlegt.

learning friday projekt

Ein Teilnehmer hat zum ersten Mal probiert mit seinem Handy im Desktopmode in CRW zu entwickeln. Nachdem das Problem mit der Auflösung am Fernseher gelöst wurde (einfach ein anderes HDMI Kabel verwenden) konnte auch am Handy entwickelt werden.

Nach einem intensiven Tag und 2 reichhaltigen Essen lassen wir den Abend mit einer Runde SuperTuxKart ausklingen.

Tag 4 – Sonntag, 23.08

Die gestrige Nacht war dem Aufholen von Schlafdefiziten gewidmet und so kommen alle ausgeschlafen zum Frühstück. Anschließend sammeln wir die offenen Probleme. Um unser Ziel, eine funktionsfähige Entwicklungsumgebung zu erreichen, sollten wir jedenfalls unser Problem mit Keycloak und CORS Headers lösen. Da das Problem nichts mit CodeReadyWorkspaces zu tun hat (tritt seit Kurzem auch in anderen Konstellationen auf) schalten wir Egor, unseren Telefonjoker, zu unserer Debugging-Session hinzu. Schließlich führt die Konfiguration unserer Applikation auf den AWS Keycloak und einigen zusätzlichen Konfigurationsänderungen zum Erfolg. 

Ab zum Mittagessen, bei dem es Philipp geschafft hat nach reichhaltigen drei Gängen noch eine Kardinalschnitte XXL zu vernaschen und wider aller Erwartungen nichts für Herbert übrig gelassen hat.

Der zweite offene Punkt war Support für Unit-Tests. Über Maven konnten wir zwar Tests starten, nicht aber aus der IDE. Dies konnten wir nur durch die Installation eines eigenen Images mit zusätzlich Plugins für die CRW Plugin Registry lösen.

Ein paar Abstriche hat die IDE im Gegensatz zu IntelliJ/Eclipse bzw. der Desktop Version Visual Studio Code noch. So funktioniert die Maven-Integration in der IDE und das Anzeigen der Git History leider noch nicht vollständig. Als Workaround verwenden wir einen Maven Container mit Commands, um Hogarama zu bauen. Für Command-Liebhaber ist das Anzeigen der Git History über Git Log ebenfalls verfügbar. Über zusätzliche Plugins versuchten wir diese Defizite zu umgehen, leider spielten diese nicht so mit der Web-IDE zusammen wie wir uns das erhofft hatten.

Letztendlich hatten wir dann aber doch eine Version konfiguriert, mit der man auf Knopfdruck mit der Weiterentwicklung von Hogarama beginnen kann. Die Trauer darüber, dass unsere Katzenfreundin uns heute nicht sehr viel Beachtung geschenkt hat – wir haben scheinbar den „Neuheitsfaktor“ verloren, oder sie war davon überzeugt, dass wir selbstständig mit unseren Problemen klarkommen – genossen Erhard und Felix noch ein paar Längen im Schwimmbad und erholten sich anschließend im Dampfbad mit Pfefferminzduft. 

Während die Einen den Wellnessbereich unter die Lupe nahmen, wurde in der Arbeitsbase der 81” Fernseher dazu genutzt das Champions-League Finale anzusehen. 

Tag 5 – Montag, 24.08

Der heutige Tag steht im Zeichen der Dokumentation. Beobachtet von verschiedenen Vierbeinern finden wir uns im Seminarraum ein und fassen die Erkenntnisse der letzten 5 Tage zusammen. Neben diesem Blog arbeiten wir auch an einer technischen Dokumentation unserer Erkenntnisse.

Beim Mittagessen geben wir nochmal alles und der Wienerwaldhof eine extra Kardinalschnitte für Philipp.

Gegen 15:00 heißt es dann Abschied nehmen, wir packen unsere Sachen und abgeht es direkt in eine Straßensperre. Unser 4×4 Geländewagenspezialist lässt sich davon nicht abschrecken und fährt trotzdem weiter, während der zweite Fahrer die Verkehrsschilder beachtet. Alle kommen sicher zu Hause an.

Fazit: CodeReady Workspaces sind eine interessante Alternative um dem Setup-Wahnsinn für gelegentliche Entwicklung an einem komplexen Cloud-Projekt zu entgehen. CRW bietet interessante Konzepte, benötigt aber noch etwas Feinschliff bis alles vorhanden ist, was man in einer Java-IDE erwartet.

Abschließendes Fazit: Gott sei Dank hat der Essenswahnsinn ein Ende! 🙂

P.S.: noch ein Geheimtipp für Linux User: Speichere schreibgeschützte Dateien in VI mit “:w!” solange das Verzeichnis an sich schreibbar ist. 

// Autor

Erhard, Herbert, Felix, Philipp