Wie The Zebra sichere Pipelines in Schwarz-Weiß erzielt hat
Möchtest du sehen, was GitLab Ultimate für dein Team tun kann?
The Zebra führte GitLab ein, um GitHub und Jenkins für die Quellcodeverwaltung, CI/CD und Sicherheit zu ersetzen.
„The Zebra“, eine Online-Vergleichsseite für Versicherungen, hat GitLab für SCM, CI/CD sowie SAST und DAST eingeführt.
Versicherung in Schwarz-Weiß
The Zebra wurde gegründet, um den Kund(inn)en eine vereinfachte Möglichkeit zu bieten, Versicherungsanbieter miteinander zu vergleichen. The Zebra wurde 2012 gegründet und ist ein Online-Vergleichsshop für Versicherungen, der Kfz-Versicherungsoptionen recherchiert und die besten verfügbaren Preise zeigt. The Zebra hat sein Portfolio kürzlich auf Versicherungen für Immobilieneigentümer(innen) und Mieter(innen) ausgeweitet.
Zu viele Plugins ohne irgendwelche Vorteile
The Zebra verwendete GitHub als Repository und Jenkins für Bereitstellungen. Zudem nutzten die Teams Terraform für die Bereitstellung auf AWS. Die Anzahl der Jenkins-Plugins verursachte einen überwältigenden Verwaltungsaufwand. Darüber hinaus führte die Vielfalt der Plugins zu Sicherheitslücken, da einige Tools nicht mehr unterstützt wurden oder zu anfällig waren, um sie in der Bereitstellungsumgebung zu aktualisieren.
„Unser größtes Problem bestand darin, dass wir Jenkins für unsere Bereitstellungen verwendeten, bevor wir zu GitLab wechselten. Wir haben viele Plugins integriert. Das System war so anfällig, dass niemand es anfassen wollte“, sagte Dan Bereczki, Sr. Software Manager. „Jeder Versuch, es zu ändern, machte es kaputt. Bereitstellungen mussten deshalb für einen halben Tag oder einen ganzen Tag ausgesetzt werden, während versucht wurde, das System zu reparieren oder es auf den neuesten Stand zu bringen.“
Die Teams wollten den bestehenden CI/CD-Prozess verbessern, aber das bedeutete das Hinzufügen von Plugins zu Jenkins, was den bestehenden Wartungsaufwand weiter erhöhte. The Zebra benötigte eine neue Lösung, die Tests und Sicherheit integriert und Bereitstellungen auf verschiedensten Plattformen ermöglicht.
Eine schnelle Migration ohne Plugins
The Zebra analysierte eine Vielzahl von Plattformen, um die vorhandenen Plugins zu ersetzen und den Verwaltungsstress zu verringern. Das Unternehmen führte GitLab ein, weil es ein erweitertes Repository bietet, ohne dass Plugins verwaltet werden müssen. Ein weiteres Verkaufsargument waren die CI/CD-Funktionen.
Darüber hinaus waren die Teams bestrebt, GitLab einzuführen, da es Funktionen bietet, über die andere Lösungen nicht verfügen, wie z. B. integrierte Sicherheit. „Unsere Teams erkannten, wie viel mehr Kontrolle sie über ihre Prozesse hatten und wie einfach der Umstieg war. Wir haben die Migration in weniger als drei Monaten abgeschlossen“, sagte Bereczki. Fünfundneunzig Prozent des Jenkins-Codes wurden in dieser Zeit migriert, und das Unternehmen hat sich seitdem vollständig von Jenkins und GitHub gelöst.
Alle sechs Anwendungsentwicklungsteams und sogar einige andere Teams außerhalb der Entwicklung nutzen GitLab. „Anstelle von ein oder zwei Personen, die die Feinheiten von Jenkins verstehen und Probleme beheben können, wissen jetzt alle, wie man mit der GitLab-Pipeline arbeitet“, erläuterte Bereczki. Die Teams nutzen nicht länger mehr drei Tools – GitHub, Codeship CI und Jenkins Deploy – sondern nur noch GitLab CI/CD, vollständig integriert und gänzlich automatisiert.
Eine Plattform, viele Lösungen
Mit GitLab kann sich The Zebra jetzt auf die kontinuierliche Bereitstellung konzentrieren, da Teams nach Belieben bereitstellen können, ohne auf andere Zeitpläne warten zu müssen. Alle Entwicklungsteams nehmen eine größere Rolle innerhalb des Bereitstellungsprozesses ein, da sie verstehen, wie die CI-Pipeline funktioniert, und sie damit arbeiten können. Und nicht nur das: Die Infrastruktur bildet nun keinen Engpass mehr für die Bereitstellung.
Der Workflow beginnt in der Regel mit einer Anfrage von der Marketingabteilung. Von dort aus wird es zu einem technischen Briefing, das in eine Reihe von Jira-Tickets aufgeteilt und dann dem entsprechenden Team zugewiesen wird. Als nächstes wird der Code generiert und gelangt in das GitLab-Repository. Anschließend verwendet das Team die GitLab-CI/CD-Pipeline, um den Code in der Entwicklungsumgebung bereitzustellen. Mittels Terraform wird Infrastructure as Code implementiert, um sicherzustellen, dass Konfigurationsänderungen während des gesamten Test- und Bereitstellungsprozesses beibehalten werden.
Teams verwenden Amazon EKS mit RDS. Das Routing des Datenverkehrs erfolgt zunächst über Cloudflare und anschließend über den internen elastischen Lastausgleich. Wenn Entwickler(innen) Dienste von The Zebra mit externen Diensten von Drittanbietern verbinden müssen, nutzen sie Amazon Virtual Private Cloud. „Wir möchten keine Systeme, die wie eine Blackbox agieren, von der niemand weiß, wie sie funktioniert. Wir lösen uns langsam davon“, sagte Bereczki.
GitLab hat funktionsübergreifende Beziehungen zwischen den Entwicklungsteams ermöglicht, da sie jetzt bis in die Produktion Eigentümer ihres Codes bleiben. Entwickler(innen) können jeden Schritt der Bereitstellung nachvollziehen, alle Probleme lösen und Änderungen vornehmen, ohne sich Gedanken über die Unterbrechung anderer Phasen des Workflows machen zu müssen.
GitLab SAST und DAST erleichtert die Einhaltung der SOC2-Typ-1-Zertifizierung. Aktuell befinden sich die Teams mitten in der SOC2-Typ-2-Zertifizierung. Das Unternehmen hat auch zusätzliche Tests und Sicherheitsmaßnahmen bereitgestellt, um das Risiko zu senken. „Die größte Auswirkung ist, dass wir eine ganze Reihe von Schwachstellen entdeckt haben, von denen wir nicht einmal wussten, dass sie existieren, und mit denen wir uns derzeit befassen. Wir beheben diese Probleme“, erklärte Bereczki. In vier Projekten wurden bisher alle identifizierten Criticals und Highs eliminiert. „Das Schöne daran ist, dass wir, da es jetzt Teil der Pipeline ist, nicht mehr hinterherhinken, wenn wir einen Penetrationstest planen oder wenn wir vierteljährliche oder halbjährliche Tests durchführen“, fügte Bereczki hinzu.
Alle Informationen und Personen, die an der Fallstudie beteiligt waren, waren zum Zeitpunkt der Veröffentlichung korrekt.