AdRoll gehört zu den weltweiten Marktführern im Bereich Retargeting mit mehr als 10 000 aktiven Werbekunden in über 100 Ländern. Das Unternehmen stellt plattformübergreifend eine Vielzahl von Quellen und Tools zur Darstellung von Produkten bereit, die Werbekampagnen basierend auf dem Navigationsverhalten eines Besuchers personalisieren. Das 2007 gegründete Unternehmen mit Sitz in San Francisco ist für die Anzeigenwerbung von Marken wie Salesforce, Tableau, Alex and Ani, Rickshaw Bags und Hipmunk verantwortlich.
Retargeting zielt darauf ab, aus Besuchern von Websites Kunden zu machen. Retargeting ist ein Umsatztreiber für das Online-Business weltweit und AdRoll ist eines der führenden Unternehmen in diesem Bereich – mit einem Wachstum von 15 000 Prozent im Jahr 2012. Um Anzeigen jedoch wirklich effektiv zu platzieren, braucht AdRoll Flexibilität, um seine Kapazitäten jederzeit erhöhen zu können, extrem schnelle Antwortzeiten, um Werbeanzeigen in Echtzeit zu ermöglichen, und eine automatische Abwicklung, die sicherstellt, dass das System schnell auf Werbemittelkontakte reagiert.
"Wir brauchen eine hohe Leistungsfähigkeit, aber wir brauchen noch mehr als das", erklärt Valentino Volonghi, CTO. "Wir brauchen Flexibilität und wir brauchen Software, die über mehrere Rechenzentren und Rechner hinweg skaliert werden kann, und nach Bedarf optimierbare Software. Unser operatives Geschäft in die Cloud zu verlegen, war wirklich unsere einzige Option."
Für den Aufbau seiner Echtzeit-Werbekontaktinfrastruktur musste AdRoll Daten für jeden Benutzer in vier verschiedenen Regionen synchronisieren, was Hunderten von Millionen von Benutzern und Zehntausenden von Schreibvorgängen pro Sekunde entsprach. Das Unternehmen muss nicht nur die gewaltige Aufgabe lösen, diese Daten in Echtzeit zu schreiben, sondern auch die Obergrenze von 100 Millisekunden für jede Werbekontaktanforderung berücksichtigen, sodass AdRoll starke Garantien für die Leseleistung braucht.
AdRoll begann mit Amazon Simple Storage Service (Amazon S3). Die Bereitstellung der AWS-Umgebung dauerte etwa zwei Wochen und AdRoll speichert nun 1,5 PB Daten in Amazon S3. Schon sehr bald erkannte AdRoll, dass AWS für mehr als die reine Speicherung nützlich sein kann, sodass das Unternehmen begann, weitere Systeme in die AWS Cloud zu verlagern. Heute laufen die zentralen Bereiche der AdRoll-Website auf 30 Amazon Elastic Compute Cloud(Amazon EC2)-Instances. Weitere Instances – zwischen 200 und 1 000, einschließlich Amazon EC2-Spot-Instances – werden für variable Kapazitäten genutzt. "Automatisierung ist in diesem Geschäft ein Schlüsselfaktor", sagt Volonghi. "Wenn eine dieser Instances ausfallen sollte, wird sie automatisch ersetzt, sodass sie ganz ohne menschliches Eingreifen weiterläuft."
Neben Speicher- und Datenverarbeitungslösungen benötigte AdRoll auch eine leistungsstarke Datenbanklösung, um die Latenz-Anforderung von 100 Millisekunden zu erfüllen. Nach der Evaluierung verschiedener Alternativen entschied sich das Unternehmen aufgrund der kurzen Latenz, des garantierten Durchsatzes und der schnellen Skalierbarkeit für DynamoDB.
DynamoDB ist ein NoSQL-Datenbankdienst mit garantiertem Durchsatz und einer Latenz im einstelligen Millisekundenbereich. Als voll verwalteter Service bietet Amazon DynamoDB automatische Drei-Wege-Replikation und nahtlose Durchsatz- und Speicherskalierung mit einer API und einer benutzerfreundlichen Managementkonsole.
DynamoDB-Tabellen verfügen über einen Primärschlüssel (Hash-Schlüssel oder Hash- und Bereichsschlüssel) und über Attribute. Das schemalose Design bedeutet, dass jedes Datenelement über eine unterschiedliche Anzahl von Attributen verfügen kann. Unterschiedliche Datentypen (Zeichenfolgen, Zahlen, Binärdaten sowie Sätze) erweitern die Möglichkeiten des Datenmodells.
AdRoll-Tabellen wurden so konzipiert, dass sie das Cookie als Hash-Schlüssel und die Profil-ID als Bereichsschlüssel mit dem Zeitstempel als Attribut verwenden.
Hash-Schlüssel | Bereichsschlüssel | Attribut |
Cookie (Benutzer-ID) | Profil | Zeitstempel |
"1234" | "Segment1" | "1378237387" |
"1234" | "Segment2" | "1378237417" |
AdRoll verwendet Hash- und Bereichs-Primärschlüssel für alle Tabellen. "Hash- und Bereichsschlüssel ermöglichen es uns, mehrere Elemente, die zu einem einzelnen oder zu verschiedenen Hash-Schlüssel gehören, mithilfe einer einzigen API, BatchWriteItem, zu ändern", erklärt Volonghi. "Sie gestatten es auch, die Daten sehr effizient abzufragen, indem die Ergebnisse von Lesevorgängen in die kleinste mögliche Nutzlast verdichtet werden. Dies spart sowohl Speicherplatz als auch Durchsatzkosten."
Zur optimalen Nutzung von DynamoDB entwickelte AdRoll seinen eigenen DynamoDB-Client. "Wir verwenden ihn auf Hunderten von Rechnern, um DynamoDB mit einer durchgängig kurzen Latenz in unserer gesamten Erlang-Infrastruktur abfragen zu können", sagt Volonghi. "Wir schreiben in die Datenbank, messen den Schreibdurchsatz und den Lesedurchsatz und erhalten die Ergebnisse, ohne in die Details eintauchen zu müssen." Das AdRoll-Team empfiehlt, Warnungen für die Erreichung einer Unter- und Obergrenze des Schreibdurchsatzes einzurichten, um zu erkennen, wann die Kapazität des Systems niedrig oder das System ausgefallen ist.
Durch die Verwendung von Amazon DynamoDB in Kombination mit Apache Storm kann AdRoll seine Daten weltweit in unter 50 Millisekunden replizieren. Dies sorgt für schnelle Reaktionszeiten bei Werbekontaktanforderungen und die Bereitstellung weiterer Werbemittel für Kunden – bei niedrigen Kosten.
AdRoll profitiert auch von der von AWS bereitgestellten Skalierbarkeit. "AWS bietet uns die Möglichkeit, den von Facebook, Google, Yahoo und anderen stark besuchten Websites kommenden Datenverkehr zu verarbeiten, sodass wir mehr als 50 Millionen Werbemittelkontakte täglich bereitstellen können", erklärt Volonghi. "Und außerdem ist es auch noch kosteneffizient – wir geben mehr für Snacks aus als für Amazon DynamoDB."
Die Verwendung von AWS hat es für AdRoll einfach gemacht, neue Kunden zu gewinnen. Wenn ein neuer Kunde hinzukommt, müssen die Rechner von AdRoll sofort in der Lage sein, den zusätzlichen Datenverkehr zu bewältigen. Bei herkömmlichen lokalen Infrastrukturen musste nach dem Gewinn neuer Kunden gewöhnlich ein Genehmigungsprozess durchlaufen werden, um neue Rechner bereitzustellen und sie zum Hadoop-Cluster hinzuzufügen, mehr Speicherplatz zu beschaffen usw. Dies konnte bis zu 90 Tage dauern. "Bei AWS müssen wir uns darum überhaupt nicht kümmern", sagt Volonghi. "Wenn die Grenzen unserer Kapazität fast erreicht sind, skalieren wir einfach automatisch ein paar neue Instances und fertig."
Das Unternehmen kann sein Geschäft schnell erweitern, indem es sich mit neuen Knoten verbinden kann, unabhängig davon, wo sie sich physisch befinden. Volonghi erklärt: "AWS verfügt in der Nähe aller Datenverkehrsknoten weltweit über Regionen, sodass wir beim Hinzukommen eines neuen Knotens diesen sofort nutzen können. Es ist so einfach wie das Umlegen eines Schalters, das einem ein neues Rechenzentrum öffnet, über das unsere Rechner den Datenverkehr bewältigen können. Danach können wir sofort Werbeanzeigen bereitstellen. Ganz problemlos."
Volonghi lobt die Skalierbarkeit von AWS und die nach Bedarf anpassbare Rechenkapazität, die AdRoll braucht, um sein Geschäft weiter auszubauen. "In einer Phase, in der unser Geschäft wirklich schnell gewachsen ist, hat es uns AWS ermöglicht, unsere Algorithmen zu skalieren und zu optimieren – und nicht benötigte Kapazitäten zu vermeiden. AWS spart uns Zeit und Geld. Wir brauchen kein größeres Rechenzentrum, wir müssen nicht mehr Techniker einstellen und wir müssen auch keine zusätzlichen Rechner kaufen, nur weil wir nach oben skalieren müssen."
Weitere Informationen zu DynamoDB finden Sie auf unserer Detailseite zu Amazon DynamoDB: http://aws.amazon.com/dynamodb/.