Mit Technologie gegen die Einsamkeit

Welches Kommunikationsmedium ist das Mittel der Wahl, wenn man Menschen unabhängig von Alter und technologischen Fähigkeiten erreichen will? Das Telefon. Es sollte daher ein Sprachdialogsystem (IVR, Interactive Voice Response) auf Basis von Twilio entwickelt werden. Das Projekt befand sich in einer gewissen Schieflage, als wir gebeten wurden zu übernehmen. Der entwickelte Code warf ständig Fehler zur Laufzeit, hatte keinerlei Tests und war auf einem überteuertem Webserver gehostet.

Zunächst sorgten wir für klar Schiff auf Ebene des Codes: Refactoring um die Schichten Web, Business Logik und Datenzugriff zu separieren und die Abhängigkeiten klar auszuweisen. Das ermöglichte uns, Unit Tests einzuführen. Diese konnten anschließend als Kriterium für eine neu aufgestellte CI/CD Pipeline verwendet werden.

Anschließend stellten wir die Systemarchitektur neu auf. Wurden Deployments bisher nach einem lokalen Build per RDP auf eine VM kopiert, so mündete unsere neue, git-getriebene Deployment-Pipeline nun auf Heroku. Die Datenbank, die bisher auf dem gleichen Server wie die IVR-Logik lief, wurde nun als separater Service behandelt und angebunden. Das Ergebnis: ASP.NET Core auf Docker spricht mit PostgreSQL.

Darüber hinaus haben wir eine separate Staging-Umgebung eingeführt, die ebenfalls von der Pipeline beliefert wird. Während des vorausgegangenen Refactorings wurde der Code konfigurierbar gemacht, so dass die Pipeline mehrere Umgebungen verwalten und steuern kann. Azure Application Insights wird nun mit Logs und Metriken beschrieben.

Letztlich haben wir uns gleich zu Beginn in kurzer Zeit der fehlenden Punkte der Twelve Factor App angenommen und konnten seitdem iterativ die Ziele des Businesses umsetzen: Einsame Menschen mittels Technologie zu verbinden.

Verwendete Technologien: Twilio, VueJS, ASP.NET Core, Heroku, Gitlab, PostgreSQL, Docker, XUnit