smava auf dem Weg in die Cloud

Wie kreuzwerker bei der Infrastruktur-Migration zu AWS unterstützen konnte.
16.08.2021

smava macht Kredite für Verbraucher transparent, fair und günstig. Als eines der größten deutschen Fintech-Unternehmen mit Sitz in Berlin beschäftigt smava rund 600 Mitarbeiter aus mehr als 40 Nationen. smava wird von einem erfahrenen Management aus dem Finanz- und Technologie-Bereich geleitet. Renommierte Investoren wie Vitruvian Partners, Verdane Capital, Runa Capital und Earlybird haben bisher insgesamt 159 Millionen US-Dollar in smava investiert.

Das Projekt

Smava GmbH ist eine Online-Kreditvergleichs-Plattform. Sie ermöglicht es Kunden, verschiedene Kredit- und Darlehenskonditionen zu vergleichen und dann Verträge über ihre Plattform abzuschließen. smava betreibt die meisten Produktionsdienste in einer hybriden Umgebung, bestehend aus einem Rechenzentrum und mehreren AWS-Accounts. Um eine sichere produktionsfähige Migrationsumgebung und eine Multi-Account-Strategie bereitstellen zu können, die auch mit den Best Practices von AWS übereinstimmt, unterstützte kreuzwerker smava bei der Erstellung einer AWS Landing Zone-Umgebung. Dabei berücksichtigten wir die wichtigen Aspekte Sicherheit, Compliance und Governance in der Cloud. Außerdem migrierte kreuzwerker eine cloudnative Microservices-basierte Anwendung von smava in die neue Umgebung.

Die Lösung

Der erste Schritt bestand darin, die bestehende Infrastruktur zu analysieren. Also nahmen wir an internen Workshops und Telefonkonferenzen teil. Zusätzlich arbeiteten wir uns in die Dokumentationen ein. Als Nächstes begannen wir mit der Struktur der AWS-Konten, der Netzwerkeinrichtung, der Softwarearchitektur, dem Betriebsmodul und den CI/CD-Tools.

Um die AWS-Multi-Account-Umgebung von smava an die bewährten AWS-Muster anzupassen, die Einrichtung von Multi-Account-Services zu automatisieren und präventive und nachforschende Sicherheitskontrollen zu implementieren, entwarf kreuzwerker die Struktur der Landing Zone-Lösung mit AWS Control Tower in der bestehenden AWS-Organisation von smava.

smava hat durch die Unterstützung von kreuzwerker/AWS sein Cloud Engineering Know-how stark ausgebaut und kann nun seine Cloud Infrastruktur wie auch das Design eigenständig weiterentwickeln. Michael Alers – Vice President Platform - smava GmbH

In der Designphase nutzte kreuzwerker eine Re-Platforming-Migrationsstrategie, um die Microservice-orientierten Anwendungen von smava auf AWS zu migrieren. Wir wendeten einige Cloud-Optimierungen an, und zwar ohne die Kernarchitektur der Anwendung zu verändern. Außerdem wurde ein Defense-in-Depth-Ansatz angewendet, um alle verfügbaren Sicherheitsmechanismen in den verschiedenen Schichten der Anwendung zu nutzen.

Im nächsten Schritt implementierte kreuzwerker die vorgeschlagene Landing-Zone-Lösung durch die Einführung von AWS Control Tower, AWS Security Hub und AWS GuardDuty. Damit stehen folgende Schlüsselfunktionen zur Verfügung:


  • Skalierbare Verwaltung einer Umgebung mit mehreren Konten mithilfe von AWS Organization
  • Zentralisiertes Identitätsmanagement mit AWS SSO und föderierten Zugriff auf die AWS-Konten mit AWS SSO und OKTA
  • Zentralisierte CloudTrail- und AWS Config-Protokollierung in Amazon S3.
  • Vorkonfigurierte präventive Guardrails.
  • Delegierung der Verwaltung von AWS Security Hub und AWS GuardDuty für alle Mitgliedskonten an das AWS-Managementkonto.
  • AWS Security Hub und AWS GuardDuty sind in allen AWS-Mitgliederkonten aktiviert.
    -Bereitstellung der Infrastruktur als Code mit wiederverwendbaren Modulen von Terraform.

Jede Aktivität wird als Unterprojekt dargestellt, das auf seine Pipeline abgestimmt ist, wobei Jenkins für CI/CD und das Bitbucket-Repository als Versionskontrolle verwendet und Terraform-Skripte in mehrfache Abbilder, bzw. Zustände aufgeteilt werden. Dieses Setup ermöglicht smava die Verwaltung einer kleinen sich schnell ändernden Teilmenge der Infrastruktur-Ressourcen, die nur begrenzte Berechtigungen erfordern. Das hat keine Auswirkungen auf andere Teile der Infrastruktur.
Darüber hinaus kann smava alle Terraform-Zustände aller verlinkten Accounts von einer zentralen Stelle aus steuern.

Als Microservices-basierte cloudnative Anwendung nutzte kreuzwerker AWS Managed Services - die man verwenden kann, ohne sich um die zugrunde liegende Infrastruktur-Administration kümmern zu müssen - um die smava-Anwendung in AWS unter Verwendung der folgenden Ressourcen bereitzustellen:


  • AWS Fargate zum Hosting von Docker-basierten Backend- und Frontend-Microservices
  • AWS Aurora für die Datenschicht
  • ECS Service Discovery & Route53 für die Erkennung von Microservices
  • Interner Application Load Balancer vor dem Frontend-Microservice
  • AWS API Gateway mit VPC Private Link und AWS WAF Integration, um diesen Service sicher nach außen darzustellen

Wesentlich war für uns von Anfang an eng mit dem smava-Team zusammenzuarbeiten, damit smava alles souverän in Eigenregie weiterführen kann. Als Projektleitung standen dem Ganzen gemeinsam ein Manager von smava und von kreuzwerker voran. Die beiden haben eng mit dem
Betriebsteam zusammengearbeitet. So konnten alle Beteiligten unkompliziert und schnell in sämtliche Richtungen kommunizieren.

Der Effekt: Das Team war fähig schnell Prioritäten für neue kritischere Aufgaben zu setzen. Darüber hinaus hatte kreuzwerker von Anfang an die volle Unterstützung der Geschäftsleitung. Ein entscheidender Faktor - gerade zum Ende des Projekts - um schnell voranzukommen und Hindernisse aus dem Weg zu räumen, damit das Projekt pünktlich und innerhalb des Budgetrahmens zum Erfolg werden konnte.

kreuzwerker teilte sein Wissen mit dem smava-Team in Workshops, täglichen Stand-ups, offenen Diskussionsrunden, Screen-Sharing-Sitzungen und in Telefon-Konferenzen oder Einzelgesprächen. Alle Analyse- und Design-Arbeitsschritte sind im Confluence Team Workspace von smava dokumentiert. Der Code und die Dokumentation wurden im smava Git Repository geführt. Im Lauf des Projekts übernahm das smava-Team mehr und mehr Aufgaben.
Unsere Ingenieure konnten dem smava-Betriebsteam Vertrauen in Best Practices bei AWS Multi-Account Setups vermitteln, indem sie Vorschläge, Erklärungen und Implementierungen vorlegten - ohne die bestehenden Produktions-Workloads in einer Brownfield-Umgebung zu beeinträchtigen.

Die Vorteile

smava verfügt nun über eine produktionsreife, gesicherte, konforme Multi-Account-Umgebung mit der Möglichkeit präventive Schutzmaßnahmen zu definieren. Und die können auf jedem Account innerhalb der AWS-Organisation von smava umgesetzt werden. Darüber hinaus ist smavas Microservices-basierte cloudnative Anwendung auf AWS migriert. Das smava-Team kann sie als Pilotanwendung für zukünftige Migrationen nutzen.

Fazit

kreuzwerker und smava haben gemeinsam viele technische Herausforderungen angenommen und Lösungen geschaffen, darunter die Übernahme der AWS Landing Zone mit AWS Control Tower in smavas bestehender AWS-Organisation, das Abrufen von Docker-Images aus smavas Private Repository und die Zentralisierung des Netzwerkverkehrs in gemeinsam genutzten AWS-Konten.

Das Team von smava kann nun seine bestehenden AWS-Konten registrieren und in die neue Umgebung verschieben. So kann es mit der Migration anderer Anwendungen in die AWS-Cloud fortfahren.