Gitlab + Pipelines = <3

Gitlab CI Migration bei doctorly
10.11.2022

doctorly entwickelt und vertreibt ein cloudbasiertes SaaS-Tool für die Verwaltung von Arztpraxen. Es bietet alle Funktionen, die für den Betrieb einer Arztpraxis in Deutschland erforderlich sind, inklusive einer übersichtlichen, intuitiven Benutzeroberfläche. Diese leitet das Praxispersonal sicher durch den gesamten Verwaltungsprozess – Krankenakten, Rezepte, Diagnosen, Leistungen, Abrechnungen usw. – und bleibt dabei GDPR-, KBV- sowie Gematik-konform. Hinter doctorly steht ein internationales Team aus Remote- und Vor-Ort-Ingenieur:innen, Ärzt:innen, Technologieexpert:innen und Produktdesigner:innen mit Büros in Berlin und Kapstadt.

Das Projekt

doctorly entwickelt und vertreibt ein cloudbasiertes SaaS-Tool für die Verwaltung von Arztpraxen. Es bietet alle Funktionen, die für den Betrieb einer Arztpraxis in Deutschland erforderlich sind, inklusive einer übersichtlichen, intuitiven Benutzeroberfläche. Diese leitet das Praxispersonal sicher durch den gesamten Verwaltungsprozess – Krankenakten, Rezepte, Diagnosen, Leistungen, Abrechnungen usw. – und bleibt dabei GDPR-, KBV- sowie Gematik-konform. Hinter doctorly steht ein internationales Team aus Remote- und Vor-Ort-Ingenieur:innen, Ärzt:innen, Technologieexpert:innen und Produktdesigner:innen mit Büros in Berlin und Kapstadt.

doctorly nutzte Azure DevOps für CI/CD einschließlich automatisierter Tests, wollte aber die Vorteile von GitLab nutzen, unter anderem die integrierte CVE- und Lizenzprüfung. Zwar wären die Teams von doctorly durchaus in der Lage gewesen, die Migration allein durchzuführen, allerdings hätte der damit verbundene Zeitaufwand die Entwicklung neuer Funktionen behindert. Deshalb entschied sich doctorly dafür, die Hilfe von kreuzwerker in Anspruch zu nehmen, um die Migration zeitnah durchzuführen, ohne ihre regulären Sprint-Ziele einschränken zu müssen.

Die Lösung

Zunächst analysierte kreuzwerker das aktuelle Set-up der Azure DevOps-Pipelines durch gemeinsame Workshops, Meetings und Telefonate mit den Ingenieur:innen von doctorly. Wir bekamen Zugang zum aktuellen Set-up, zu Dokumentationen und Pipelines.

Anschließend untersuchten wir die Azure DevOps-Pipelines: Arbeitsabläufe, Bedingungen und Ergebnisse. Wir präsentierten unseren Vorschlag und nach einer finalen inhaltlichen Abstimmung begannen wir mit der Migration von Azure DevOps-Pipelines auf die GitLab CI-Plattform. Um aktuelle Workflows nicht zu beeinträchtigen, verwendeten wir ein gespiegeltes Repository auf der GitLab-Plattform und führten die Implementierung dort durch.

Unter anderem implementierte kreuzwerker neue Pipelines für:

  • .NET- und Node.js-Builds, Tests und Publishing-Prozesse
  • Docker-Image-Builds und Pushs zu separaten Registries
  • QA Post-Build und regelmäßige nächtliche Tests inkl. Veröffentlichung der Ergebnisse

Da Azure DevOps und GitLab CI-Lösungen in bestimmten Szenarien unterschiedlich sind (UI-Unterschiede, Berichtserstellung etc.), wurden verschiedene Optionen mit doctorly diskutiert, um die beste Lösung zu finden.

kreuzwerker lieferte den Vorschlag einer effektiven CI/CD-Lösung mit GitLab CI. Alle Variablen und Secrets wurden von GitLab verwaltet und entsprechend dem ausgelösten Szenario an die Pipelines übergeben.

Als Bonus implementierte kreuzwerker die Option, den Entwickler:innen bestimmte automatisch generierte Umgebungen auf einfache Weise als Rollback oder Re-Deployment zugänglich zu machen. Darüber hinaus nahmen wir die grafische Darstellung von .NET-Tests in den Reporting-Bereich auf.

Schließlich übergab das kreuzwerker-Team die neue Lösung samt Dokumentation an das DevOps-Team von doctorly. kreuzwerker organisierte zudem eine Demo-Session für das Entwicklungs- und Management-Team von doctorly, um sicherzustellen, dass die Anwendung des neuen GitLab-Tools reibungslos verläuft.

Über den gesamten Projektverlauf arbeiteten kreuzwerker und das doctorly-Team eng zusammen, um innerhalb des vereinbarten Budgets und Zeitrahmens eine adequate Lösung für die definierten Anforderungen zu finden.

Benefits

doctorly verfügt nun über eine einsatzbereite, flexible, sichere, skalierbare und moderne CI/CD-Lösung, die alle Bedürfnisse abdeckt.

Die wichtigsten Benefits der implementierten Lösung sind:

  1. schnellere Build-Performance (im Vergleich zu Azure DevOps)
  2. geringere Komplexität – vereinfachte Pipelines für Codeerstellung, Tests, API- und E2E-Tests
  3. geringere Latenzzeiten – Pipelines laufen schneller und zuverlässiger und sind einfacher zu verwalten
  4. gesteigerte Produktivität – Teams können Codeänderungen einfacher bereitstellen und zuverlässigere Versionen erstellen
  5. verbesserte Testberichte – Überprüfung und schnelle Korrektur von Problemen möglich
  6. Transparenz – Slack und andere Integrationen verbessern Reports des Pipeline-Status
  7. geringe Ausfallzeiten – Re-Deployment und Rollback von Umgebungen gewährleisten hohe Auslastung
  8. umfassendes Feedback – automatisierte nächtliche QA-Tests liefern Daten zu bereitgestellten Umgebungen

Darüber hinaus konnte doctorly weitere Build-Tools (z. B. Vercel) sowie CVE- und Lizenz-Scanning integrieren, die Auto-DevOps-Funktion aktivieren und Pipeline-Funktionen mit GitLab weiter ausbauen.

Ergebnis

kreuzwerker und doctorly konnten gemeinsam viele Probleme lösen, wobei es sich nicht nur um technische Herausforderungen handelte: Bestimmung der Anforderungen, Migrationsprozess, Design der neuen Pipeline, Implementierung der neuen Plattform, Onboarding.

Als Ergebnis der erfolgreichen Migration nutzt doctorly GitLab CI als voll integrierte CI/CD-Plattform, um die Codequalität zu steigern und konsistente Releases schneller und einfacher zu erstellen.

Neben der Zeitersparnis während der Build- und Deployment-Phasen steigert der Wechsel der CI/CD-Lösung auch die Kosteneffizienz.