Coinbase nutzt AWS Step Functions für die sichere und schnelle Bereitstellung auf AWS

600x400_Coinbase_Logo resize

Kryptowährungen bieten dezentralisierten Zugriff auf Geldmittel und ermöglichen bargeldähnliche Transaktionen, die ausschließlich vom Empfänger zurückgebucht werden können. Diese Eigenschaften sind ein Teil der zunehmenden Beliebtheit, der sich Kryptowährungen erfreuen – nicht nur unter gesetzestreuen Investoren, sondern auch unter bösartigen Anwendern, die mit wachsender Verbreitung dieser digitalen Zahlungsmittel immer mehr Motive und Gelegenheiten für den Diebstahl von Kryptowährung finden. Meldungen über gestohlene Kryptowährung im Internet Crime Complaint Center (IC3) der US-Sicherheitsbehörde FBI summierten sich 2018 auf 182 Millionen USD. Dies stellte einen Anstieg um 212 Prozent gegenüber dem Vorjahr und trotzdem vermutlich nur einen Bruchteil der tatsächlichen Kryptowährungsverluste dar, die weltweit durch Betrugsfälle stattfanden.

"Sich unbefugten Zugriff auf Kryptowährungsbörsen zu verschaffen ist zur beliebtesten Herausforderung für Hacker weltweit geworden", sagt Graham Jenson, Senior Infrastructure Engineer bei Coinbase, einer Handelsplattform für digitale Währung mit 30 Millionen Kunden weltweit und Transaktionen im Gesamtwert von 220 Milliarden USD. "Als eine der größten Börsen ist Coinbase eins der größten Ziele."

Coinbase möchte der zuverlässige, sichere und rechtliche Dreh- und Angelpunkt der Kryptowirtschaft werden und hat es sich deshalb zum Ziel gesetzt, in puncto Sicherheit, Compliance, Technologie, Kundenservice, Design und in weiteren Bereichen erstklassige Maßstäbe zu setzen. Aus diesem Grund setzt Coinbase seit 2015 auf Amazon Web Services (AWS) als primären Infrastrukturanbieter und hat kürzlich weitere AWS-Technologien integriert, um seine Prozesse zur Softwarebereitstellung zu verbessern.

Um Kunden vor Angriffen zu schützen, mussten die Coinbase-Entwickler in der Lage sein, Updates und neue Funktionen für alle Systeme des Unternehmens schnell, zuverlässig und sicher bereitzustellen, wobei einzelne Softwarebereitstellungen 20 Stunden oder länger dauern. Diese Prozesse sollten vereinfacht und optimiert werden. Dafür setzte Coinbase AWS Step Functions und AWS Lambda ein, um ein einheitliches, wiederverwendbares Framework zu erstellen, das das zuvor verwendete Ad-hoc-Portfolio aus Deployern ersetzen sollte. (AWS Lambda ist eine serverlose Plattform, die als Reaktion auf Ereignisse Code ausführt, und AWS Step Functions koordiniert verschiedene AWS-Services in serverlose Workflows.)

"Mit AWS Step Functions und AWS Lambda konnten wir unsere Rate erfolgreicher missionskritischer Bereitstellungen von 90 auf 97 Prozent erhöhen", so Jenson.

"Die Anzahl der Trouble-Tickets hat sich erheblich verringert. Das liegt an der Transparenz, die AWS Step Functions unseren Entwicklern bietet."

Graham Jenson, Senior Infrastructure Engineer, Coinbase

  • Über Coinbase
  • Vorteile
  • Genutzte AWS-Services
  • Über Coinbase
  • Coinbase ist eine Handelsplattform für digitale Währung mit Hauptsitz in San Francisco. Das Unternehmen hat 30 Millionen Kunden und Transaktionen im Wert von mehr als 220 Milliarden USD mit digitalen Währungen wie Bitcoin, Ethereum und Litecoin abgewickelt.

  • Vorteile
    • Rate erfolgreicher Bereitstellungen von 90 auf 97 % gesteigert
    • Dauer für das Hinzufügen neuer AWS-Konten von Tagen auf Sekunden verkürzt
    • Anzahl gelöster Support-Tickets erheblich reduziert
  • Genutzte AWS-Services

AWS Step Functions: "Die perfekte Lösung für meine Anforderungen"

Bei seiner Suche nach Möglichkeiten, um die Sicherheit von Coinbase weiter zu erhöhen, erkannte Jenson eine Chance, die automatisierten Bereitstellungspipelines des Unternehmens zu verbessern. "Wir hatten mehrere Deployer mit unterschiedlichen Schnittstellen und Komplexitäten", so Jenson. "Ich wollte ein einheitliches Framework, das uns die schnelle Entwicklung von Deployern ermöglicht, die Benutzereingaben validieren, Code-Releases sicher an AWS senden und die Arbeit unserer Entwickler nicht beeinträchtigen."

Bei der Recherche stieß Jenson auf AWS Step Functions. "Als ich mir die Dokumentation durchlas, war mir sofort klar, dass Step Functions die perfekte Lösung für meine Anforderungen war", so Jenson. "Step Functions kann bis zu ein Jahr lang denselben Status beibehalten, ist hoch skalierbar und erleichtert die Beschreibung der automatischen Bearbeitung und Wiederholung nach bestimmten Fehlern."

Die Wahl eines auf AWS Lambda und AWS Step Functions basierenden Frameworks zur Entwicklung einer neuen Deployer-Klasse – und die Verwendung von AWS Identity and Access Management (AWS IAM) und Amazon Simple Storage Service (Amazon S3) – ermöglichte Coinbase, die Implementierung nach einer kurzen anfänglichen Lernkurve zu beschleunigen. Der erste Deployer, den das Team von Jenson entwickelte, ein Open-Source-basierter AWS-Deployer namens Odin, verarbeitet die Beschreibung eines Projekt-Release und veröffentlicht sie mithilfe von Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling-Gruppen sicher und zuverlässig auf AWS.

"Es hat sechs Monate gedauert, das Konzept in die Produktion zu bringen – von der Idee über die Testimplementierung bis zur Migration von Odin in unsere Lösung", berichtet Jenson. "Da wir den Code und das Framework, auf dem Odin basiert, wiederverwenden können, gelangten die zwei nächsten Deployer jedoch in wenigen Wochen in die Produktion. Künftig wird der Vorgang immer schneller vonstatten gehen."

Vereinfachte Architektur mit Step Functions

Durch den neuen Ansatz konnte die Komplexität der Coinbase-Architektur erheblich reduziert werden, was wiederum die Transparenz für das Team von Jenson verbessert.

"Unsere bisherigen Deployer hatte unterschiedliche Web-Hooks, Callbacks, Amazon S3-Layouts, Buckets und AWS IAM-Rollen und nutzten verschiedene Kommunikations- und Abfrageverfahren. Das hat es uns erschwert, die nötigen Einblicke zu erlangen", so Jenson. "Jetzt basieren alle unsere Deployer auf derselben AWS Lambda- und AWS Step Functions-Grundlage, was den Betrieb und die Interaktion vereinheitlicht. Wir können den Verlauf des Datenflusses mit Step Functions beobachten, Fehler in bestimmten Pfaden ermitteln und Maßnahmen ergreifen, um sie zu beheben."

Diese Einfachheit beschleunigt das Hinzufügen von AWS-Konten und erhöht die Sicherheit. "Dank AWS Lambda und der Rollenzuweisung von AWS IAM können wir ein AWS-Konto mit einer einzigen AWS IAM-Rolle onboarden, statt eines ganzen Services mit einer individuellen Konfiguration", erläutert Jenson. "Mit AWS Lambda und AWS IAM konnten wir den Aufwand für das Hinzufügen neuer AWS-Konten von Tagen auf Sekunden verkürzen."

Außerdem erleichtert die neue Lösung die Nachvollziehbarkeit. "Wir können mehrere Konten mit einer einzigen Step Functions-Funktion aktivieren. Dadurch erhalten wir einen einzigen Prüfpfad für alle Bereitstellungen", so Jenson. "Das erleichtert uns, die Vorgänge in den Konten nachzuvollziehen, und gibt uns die Möglichkeit, neue Konten mit hoher Sicherheit zu aktivieren, ohne den Prüfpfad neu implementieren zu müssen."

Probleme können mit der Lösung von jedem Entwickler eigens behoben werden, sodass das Infrastrukturteam entlastet wird. "Die Anzahl der Trouble-Tickets aufgrund fehlgeschlagener Bereitstellungen hat sich erheblich verringert", sagt Jenson. "Das lässt sich auf die Transparenz zurückführen, die AWS Step Functions unseren Entwicklern bietet. So können sie Probleme eigenständig diagnostizieren und lösen."

Dank all dieser internen, technischen Vorteile kann die Sicherheit erhöht und die Bearbeitung von Kundenanfragen beschleunigt werden. "Mit Deployern, die mit AWS Step Functions und AWS Lambda erstellt wurden, können unsere Entwickler den Code sicher in die Produktion bringen", so Jenson. "Dadurch können wir häufiger neue Funktionen veröffentlichen, schneller auf Sicherheitsbedrohungen reagieren und unsere SLAs leichter einhalten. Das Ergebnis ist eine noch bessere Kundenerfahrung mit höherer Sicherheit."


Weitere Informationen

Weitere Informationen zu AWS Step Functions