Die Reise von Legacy nach Container

Reisen führt zur Ansammlung von Erfahrung, die das zukünftige Tun beeinflussen. Technologien tun dies auch. Mit der Zeit und den Erfahrungen ändern sich bei Technologien Prozesse, Bedürfnisse und Vorgehensweisen. Die Applikation EGI wurde nach 10 Jahren modernisiert und den neuen Bedürfnissen angepasst.

Was ist EGI?

Das Projekt Entsorgungsgenehmigung via Internet (EGI) vom Amt für Wasser und Abfall (AWA) der Bau- und Verkehrsdirektion (BVD) des Kantons Bern startete im Jahre 2010. EGI ist eine Webapplikation für die papierlose Abwicklung von Abfallentsorgungsgenehmigungen (von nicht normierten Abfällen) über das Internet. Der bisherige aufwändige papier-basierte Genehmigungsprozess wurde durch eine Web-Applikation ersetzt sowie beschleunigt und digitalisiert. Die Applikation wurde durch Mitarbeitende von Puzzle ITC entwickelt.

Abflug von Legacy

Die im Jahr 2010 gebaute Applikation wurde auf den damals “neusten” Technologien gebaut:

  • Grails 1.3.7
  • Java 1.6.0
  • Tomcat 6
  • MSSQL Server 2008
  • Windows Server 2003 mit Fileshare als Dateiablage

Die Applikation EGI wurde beim IT-Betreiber des Kantons klassisch auf einem Server aufgesetzt, installiert und betrieben. Dementsprechend war auch der Delivery-Prozess aufgesetzt:

  • Planung/Bestellung für Installation neuer Releases bei IT-Betreiber Kt. Bern und diversen weiteren Stellen
  • Build und Release durch Puzzle ITC (manuell)
  • Ablage Release auf Fileserver von Puzzle
  • Lieferung Release inkl. Installationsanleitung per Download an IT-Betreiber Kt. Bern
  • Setup, Installation und Betrieb der Applikation durch IT-Betreiber Kt. Bern
  • Support im Fehlerfall durch Puzzle ITC zusammen mit IT-Betreiber Kt. Bern

Problem

Der etwas staubige Prozess hat einige grundlegende Probleme: So sind beispielsweise der Ablauf und insbesondere die nötigen administrativen Schritte für einen neuen Release sehr umfangreich. Deshalb werden wenige Releases gemacht. Vom Zeitpunkt des Bedarfs für ein neues Feature oder neuen Release bis hin zur Produktion vergehen unter Umständen Monate.
Zudem sind die Entwickler und die Betreiber völlig unabhängige Stellen. Der Austausch beziehungsweise die Analyse von Problemen sind äusserst umständlich. Es vergeht viel Zeit mit Logfiles zustellen, Koordination und Austausch untereinander.

langsam

umständlich

arbeitsintensiv

Ankunft in Container

Im Jahr 2018 beschliesst die EGI Community (Mehr zur interessanten Community gibt es hier), dass die Applikation modernisiert wird. Dadurch, dass die Kosten durch die EGI Community Kantone aufgeteilt werden können, ist diese Modernisierung für die einzelnen Kantone problemlos finanzierbar. Die Modernisierung der Applikation EGI wird im Jahr 2018/2019 durch Puzzle ITC umgesetzt.

Nach der Modernisierung von EGI präsentiert sich der Techstack von EGI wie folgt:

  • Grails 3.3.9 (SpringBoot)
  • Java 8
  • Postgres 11
  • SpringBoot fat-jar auf fabric8/java-centos-openjdk8-jre Container
  • Fileshare auf Volume/PV

Im gleichen Schritt geht der Betrieb der Applikation vom bestehenden IT-Betreiber zu Puzzle ITC über. Dabei wird eine entsprechende CI/CD Pipeline (Continous Integration / Continous Delivery) eingerichtet. EGI wird somit auf der Container-Plattform von Puzzle (OpenShift) betrieben wird.

Für den Betrieb der Applikation stellen wir uns folgende Anforderungen:

  • Container Betrieb auf OpenShift-Plattform
  • Managed DB (Datenbank) inkl. Backup
  • Managed PV (Persistent Volume) inkl. Backup
  • Unterstützung von verschiedene Stages (dev, test, prod)
  • Automatisiertes Setup/Deployment für alle Stages
  • Stage Konfiguration als config-as-code
  • Monitoring aller Stages (Up/Down, SSL, Disk, CPU, …)
  • Periodisches Rebuild der Container-Images (Security-Updates)
  • Periodisches Re-Deployment der aktualisierten Container
  • Version der Software sowie des Container-Images sichtbar
  • Support für unterschiedliche Software-Versionen pro Stage
  • Einfaches / automatisches Deployment
  • Container-Image wird vor Einsatz geprüft.
  • Nur geprüfte Container-Images werden deployed
  • Gleiches Container-Image für alle Stages sofern gleicher Softwarestand

Stolz können wir berichten, dass sämtliche der oben aufgeführten Anforderungen umgesetzt wurden.

Gewinn

Dank der modernen Container-Lösung und der effizienten CI/CD Pipeline kann die DevOps Idee vollständig realisiert werden. Die Entwickler von EGI sind auch gleichzeitig die Betreiber von EGI! Dies verkürzt den Weg und die Zeit bei einem Fehlerfall massiv. Feedback aus der Produktion kommt direkt in die Entwicklung. Der Feedback-Loop ist gewährleistet.
Dank der vollautomatischen Pipeline kann eine Änderung der Software innerhalb von wenigen Minuten in Produktion ausgerollt werden. Grössere Änderung in der Applikation werden vom Kunden abgenommen, bevor diese in Produktion gehen. Der Prozess konnte von Monaten auf wenig Tage reduziert werden. Kurzfristige Fehlerkorrekturen oder Hot-Fixes können zeitnah deployed werden.

schnell und automatisiert

befriedigend einfach, direkter und kurzer Feedback-Loop

effizient dank DevOps

Angekommen: EGI erstrahlt in neuem Glanz. Aktualisiert und automatisiert, so dass sich die Community noch lange an der Applikation EGI erfreuen kann.

Siehe hierzu auch unser Angebot Application Migration and Modernization.

Kommentare sind geschlossen.