Mit AWS hat mytaxi eine Microservices-Architektur auf Docker-Containern konzipiert, die schnell und einfach skalierbar ist, um spezielle Nachfragespitzen an Tagen wie Silvester abzudecken. Das Unternehmen betreibt Europas führende Taxi App, die 10 Millionen Nutzer mit 45.000 Taxis in 40 Städten verbindet. Die gesamte Infrastruktur basiert auf AWS, wobei Services wie Amazon EC2 und Amazon ECS die Docker-Container von mytaxi unterstützen.
mytaxi ist Europas führende App für die Bestellung von Taxis und war die weltweit erste App ihrer Art, als sie 2009 eingeführt wurde. Die App verbindet 10 Millionen Nutzer mit 45.000 Taxis und erlaubt ihnen diese in über 40 Städten und 6 Ländern online oder durch die mytaxi Smartphone App zu buchen und zu bezahlen. Fahrgäste haben ferner die Option ihre Fahrer zu bewerten, was andern Nutzern die Möglichkeit gibt, die besten Taxis und Fahrer zu finden. Die App wurde ursprünglich von dem Start-up Intelligent Apps gelauncht, ist jedoch seit 2014 zu 100% Teil des multinationalen Automobilkonzerns Daimler.
Für mytaxi hat die Zuverlässigkeit oberste Priorität, denn oftmals reicht nur eine einzige schlechte Erfahrung, um Kunden an einen Wettbewerber zu verlieren. „Unser Service muss ohne Unterbrechung rund um die Uhr funktionieren”, erklärt Systemingenieur Sebastian Herzberg. „Wenn Kunden mitten in der Nacht unterwegs sind, sind sie auf die App angewiesen, um sie sicher nach Hause zu bringen—Ausfallzeiten können wir uns nicht leisten.“ Um eine derartige Servicekontinuität zu erzielen, benötigt das Unternehmen eine elastische Infrastruktur, die zu Zeiten geballter Nachfrage, wie beispielsweise an Silvester, enorm skalierbar ist. An solchen Tagen wird mytaxis Infrastruktur – mit einem 350 Prozent höherem Datenverkehr im Vergleich zu einem typischen Abend – wahrlich auf die Probe gestellt. „Besondere Ereignisse stellen uns vor eine besondere Herausforderung. Hochskalieren zu können, um diese Spitzen abzudecken ist extrem wichtig für unseren Ruf“, so Sebastian Herzberg.
„Mit unserer Anwendung, die nicht nur bedienerfreundlich für unsere Kunden ist, sondern sich auch leicht von unseren Entwicklern pflegen und verbessern lässt, wollen wir ein innovativer Vorreiter unserer Branche sein. Die Kosten spielen dabei auch eine wichtige Rolle, denn die Performance und das Preisleistungsverhältnis müssen einfach stimmen. Zudem ist es notwendig, dass wir von einem europäischen Rechenzentrum aus arbeiten, um kurze Latenzzeiten und die strengen Datenschutzkriterien der Muttergesellschaft Daimler zu wahren.“
Ursprünglich hatte sich mytaxi aufgrund des wachstumsbasierten Skalierungsmodells für AWS entschieden. Sebastian Herzberg: „Da wir nur für die Ressourcen bezahlen mussten, die wir auch benötigten und im Voraus auch keine mehreren hunderttausend Dollar investieren mussten, fiel unsere Wahl von Anfang an natürlich auf AWS.“ Mit dem Aufkommen neuer Technologien hat sich die Infrastruktur von mytaxi weiterentwickelt. Die jüngste Entwicklung ist die Migration zu einer Microservices-Architektur auf Docker-Containern.
mytaxi bedient im EU-Raum (Irland) mehrere Availability Zones (AZs) und nutzt Amazon Elastic Compute Cloud (Amazon EC2) Spot-Instances und den Amazon EC2 Container Service (Amazon ECS), um die Docker-Container zu unterstützen. „Da wir inzwischen Teil von Daimler sind, müssen wir äußerst strenge europäische Datenschutzkriterien einhalten“, so Sebastian Herzberg. „Mit anderen Worten: Es ist perfekt für uns, in der EU, in Irland, zu arbeiten. Wir betreiben rund 40 Amazon EC2 Instanzen, die allesamt Teil von verschiedenen Amazon ECS-Clustern sind. Unsere Hauptinfrastruktur ist in rund 50 Microservices aufgeteilt, wobei wir für jeden Service bis zu 10 Docker-Container nutzen.“ Mit Elastic Loading Balancing stellt mytaxi sicher, dass die Last zwischen den Servern verteilt ist, während Amazon CloudWatch dem Team hilft, die Lastverteilung zu überwachen.
Amazon Simple Storage Service (Amazon S3) wird als Ablage verwendet und die Datenbanken laufen auf Amazon Relational Database Service (Amazon RDS), was einfache Replikationen ermöglicht. Alle Microservices greifen auf Amazon Simple Queue Service (Amazon SQS) und Amazon Simple Notification Service (Amazon SNS) als Message Broker zu. Um dem Fahrgast eine genaue aktuelle Position seines Taxis in der App zu zeigen, setzt mytaxi neuerdings auch auf Amazons IoT Service.
Aus Sicherheitsgründen nutzt mytaxi eine Virtual Private Network-Verbindung zu den AWS-Ressourcen, die Teil der Amazon Virtual Private Cloud (Amazon VPC) sind. Zudem greift das Unternehmen auf den Business Support-Plan des AWS Supports zu, um schnelle und kompetente Antworten auf spezifische technische Fragen, oder Ratschläge hinsichtlich neuer Dienste, zu bekommen.
Dank der Migration auf eine Docker-Architektur und der Entwicklung der Infrastruktur in der AWS-Cloud, kann mytaxis vierköpfiges DevOps-Team sicherstellen, dass die Nutzer der App jederzeit einen zuverlässigen Service erhalten. „Die Kundenzufriedenheit ist das A und O“, konstatiert Sebastian Herzberg. „Unsere Nutzer erwarten einen beständigen Service, ansonsten werden sie sich einfach anderweitig umsehen. Mit AWS ist unsere Verfügbarkeit hervorragend. Dadurch, dass wir in mehreren AZs arbeiten, können wir unsere Verfügbarkeit und den Service auf einem hohen Niveau halten. Das Ergebnis: Ein gutes Kundenerlebnis und eine erholsame Nachtruhe für unser Team, da es nicht mitten in der Nacht geweckt wird, um Systemprobleme zu lösen.“
mytaxi hat die gesamte Live-Umgebung auf Spot-Instances migriert und erzielt dadurch hohe Einsparungen. „Unseren Schätzungen nach sind unsere Kosten um rund 40 Prozent gesunken, seitdem wir auf Amazon EC2 Spot-Instances umgestiegen sind“, lobt Sebastian Herzberg. Ein weitere Veränderung der Architektur kam durch die Migration zu Amazon ECS zustande. „Dies war der bedeutendste Schritt, den wir mit AWS getan haben“ so Sebastian Herzberg. „Wir konnten die Services voneinander isolieren, sodass sie sich nicht gegenseitig beeinträchtigen und auch weniger Ressourcen verbrauchen. Zudem lassen sie sich leicht skalieren: Wir laden einfach mehr Container hoch, wenn wir sie brauchen.“
Die mytaxi App erfährt weitgehend vorhersehbare tägliche und wöchentliche Spitzen. Zudem benötigt sie eine hohe Elastizität, um die Nachfrage bei besonderen Ereignissen bedienen zu können. Sebastian Herzberg spricht über eine typische Situation an einem Silvesterabend: „Kurz vor Mitternacht braucht jeder ein Taxi, um auf Parties zu kommen und nach Mitternacht will man wieder nach Hause. In den vergangenen Jahren konnten wir mit dem hierbei erzeugten, rund dreieinhalb mal so hohen Anfrageraten nicht Schritt halten. Im November 2015 haben wir unsere Docker-Container-Architektur auf Amazon ECS verschoben und im Dezember konnten wir den ersten Jahreswechsel feiern, an dem unser System die enormen Anfragen ohne Abstürze oder Störungen bewältigen konnte—eine Leistung, auf die wir extrem stolz waren, denn wir haben die bedeutendste Nacht in unserem Kalender ohne jegliche Ausfallzeiten gemeistert.“
Die Entwickler sparen Zeit und steigern gleichzeitig ihre Produktivität mit einer dreimal schnelleren Bereitstellung. Mit anderen Worten: Die Kundenerfahrung mit der mytaxi App ist hervorragend. „Mit der neuen Architektur können wir Dienste innerhalb von 10 Minuten deployen—dafür haben wir früher mindestens 30 Minuten gebraucht“, resümiert Sebastian Herzberg. „Mit unserer, auf AWS-basierten Microservices-Architektur können wir Nutzern neue Funktionen schneller als je zuvor bieten.“
Informieren Sie sich jetzt über die attraktiven Preis-Vorteile von Amazon EC2-Spot Instances und die Anwendungsmöglichkeiten von Microservices.