Fallstudie: Zillow Case

2015

Täglich verwenden mehrere zehn Millionen Käufer, Verkäufer, Mieter und Vermieter sowie Makler und Immobilienverwalter die Zillow-Website, um Haus- und Wohnungsannoncen zu durchsuchen, Hypotheken zu erwerben und Informationen zu 110 Millionen Häusern in der gesamten USA zu erhalten. Die beliebte Website befindet sich im Besitz der Zillow Group, die online über ein Portfolio mit den größten Immobilienmarken verfügt. Zusätzlich zu Zillow betreibt die Zillow Group auch Trulia, HotPads und StreetEasy.

Python-Tutorial starten
kr_quotemark

Durch die Umstellung auf AWS müssen wir uns keine Gedanken mehr über Cache-Überlastungen oder Kapazitätsprobleme machen. Wir haben die Skalierbarkeit und die Leistung, die wir benötigen, um qualitativ hochwertige Immobilienbilder bereitzustellen, was für die Zillow-Benutzererfahrung von entscheidender Bedeutung ist."

Feroze Daud
Senior Software Sevelopment Engineer, Zillow Group

Die Herausforderung

Zillow verarbeitet täglich mehr als 3 Millionen neue Bilder, darunter Annoncenfotos, Profilfotos für Kreditgeber und Makler und Hausprojektbilder auf der Zillow Digs-Website. "In Zeiten hoher Auslastung erhalten wir pro Sekunde 17 000 Bildanfragen von Desktop- und mobilen Clients", sagt Nick Michal, Unix Systems Engineering Manager der Zillow Group.

Als Zillow immer beliebter wurde und Makler mit dem Veröffentlichen hochauflösender Bilder in ihren Annoncen begannen, konnte das veraltete Bildsystem des Unternehmens den Bedarf nicht mehr decken. Das System befand sich in gehosteten Rechenzentren. Bilder wurden aus einer einzigen Warteschlange heruntergeladen, auf einem Netzwerkspeichergerät (NAS) im pyramidenartigen TIFF-Format gespeichert und einem Netzwerk zur Bereitstellung von Inhalten (Content Delivery Network, CDN) über einen lokalen Squid-Service bereitgestellt. "Das war teuer und wir waren auf eine hohe Cache-Trefferrate seitens des CDN angewiesen. Andernfalls konnten wir Bilder nicht effektiv verarbeiten. Wir befanden uns tagtäglich an der Kapazitätsgrenze", erläutert Michal.

Zillow hatte außerdem unter Problemen mit der Bildverarbeitungsleistung zu leiden, da einige Bilder manuell hochgeladen wurden, während andere aus Massen-Feeds stammten, die heruntergeladen werden mussten. Die Geschwindigkeit, mit der neue Bilder aus den Massen-Feeds kamen, war häufig unvorhersehbar, und einige Bildquellen ließen eine viel höhere Downloadgeschwindigkeit mit mehr gleichzeitigen Downloads als andere Quellen zu. Ein langsames oder problematisches Bild am Anfang der Warteschange konnte also den Download anderer Bilder verhindern. "Auf Zillow können wir uns keine Bandbreitenprobleme erlauben, denn wenn Benutzer die Website besuchen und ein Bild fehlt, sehen sie sich die entsprechende Annonce gar nicht erst an", so Feroze Daud, Senior Software Development Engineer der Zillow Group. "Für Benutzer ist das sehr frustrierend."

Außerdem war das Tool, das Zillow zum Verarbeiten der Bilder für das Speichern im pyramidenartigen TIFF-Format verwendete, veraltet und nicht problemlos erweiterbar. "Verbesserungen der Bildqualität, zum Beispiel durch Entfernen fester Farbgrenzen, waren nicht einfach zu realisieren", erklärt Daud. Notfallwiederherstellung war ein weiteres großes Problem. "Es gab ein Risiko, da alles in einem einzigen Rechenzentrum gehostet wurde", betont Michal.

Gründe für Amazon Web Services

Um die Herausforderungen hinsichtlich Skalierbarkeit, Leistung und Notfallwiederherstellung des Bildsystems zu bewältigen, entschied sich Zillow für die Umstellung auf eine Cloud-basierte Infrastruktur. "Unter Berücksichtigung der Gesamtkosten und der einfachen Verwaltung macht die Cloud tatsächlich Sinn", erläutert Michal. Nach der Auswertung verschiedener Cloud-Technologien entschied sich Zillow für Amazon Web Services (AWS). "AWS bietet schon seit langem Cloud-Lösungen und ist in diesem Bereich führend", so Michal. "Außerdem verwendeten einige der Unternehmen, die wir gekauft hatten, bereits AWS."

Das Unternehmen migrierte das Bild-Hosting und die Bildverteilung von einer physischen Einrichtung mithilfe von Amazon Elastic Compute Cloud-Instances (Amazon EC2) und Amazon Simple Storage Service (Amazon S3) für das Speichern von Bildobjekten zu AWS. Derzeit speichert Zillow fast 100 TB Daten in Amazon S3, darunter 300 Millionen Bilder und mehr als 1 Milliarde Objekte. "In einem herkömmlichen Dateisystem ist es kaum möglich, Milliarden von Objekten zu zählen", erläutert Michal. "Wir müssten diese Objekte auf mehrere Dateisysteme aufteilen, was ein Verwaltungsalbtraum wäre. Die Skalierbarkeit von Amazon S3 erschien uns die richtige Technologie zu sein."

Außerdem begann Zillow mit der Verwendung von AWS Elastic Beanstalk, einem Service für das Bereitstellen und Skalieren von Web-Anwendungen und -Services. Die Entwickler laden ihren Code zu Elastic Beanstalk hoch, das dann automatisch die Bereitstellung übernimmt – von der Kapazitätsbereitstellung, Lastverteilung und Auto Scaling bis zur Statusüberwachung der Anwendung. Das Unternehmen verwendet eine Elastic Beanstalk-Worker-Umgebung für die Ausführung einer Python-Imaging-Bibliothek mit benutzerdefiniertem Code. "Da wir Daten auf zufällige Weise aufnehmen und dabei Feeds ausführen, die mit einem Mal jede Menge Arbeit in das System abladen, müssen wir unsere Bildkonvertierungs-Suite hochskalieren", sagt Daud. "AWS Elastic Beanstalk ist die einfachste Methode dafür – im Gegensatz zu einer Reihe statischer Instanzen oder dem Versuch, unsere eigene Konfiguration für das Auto Scaling zu schreiben."

Danach verschob die Organisationen den Großteil der CDN-Verarbeitungslast von Akamai zu Amazon CloudFront, einem Web-Service für die Bereitstellung von Inhalten, der die Zillow-Website-Inhalte weiter an Benutzer verteilt. "AWS CloudFront ist deutlich günstiger als Akamai und lässt sich problemlos in Amazon S3 integrieren", erläutert Michal. Zillow verwendet darüber hinaus Amazon CloudWatch zum Überwachen einiger seiner Cloud-Ressourcen.

Zillow verwendet einen Downloadserver (DLS) im Rechenzentrum zum Verwalten von Bild-Downloadanfragen aus Annoncen-Feeds und eine Amazon Elastic Beanstalk-REST-API als Front-End-Service in der Cloud für den DLS. Dieser Service verschiebt alle Downloadanfragen in einen Feed-basierten Amazon Simple Queue Service (Amazon SQS)-Nachrichtenwarteschlangen-Service. "Mit SQS haben wir ein Warteschlangensystem, ohne die Infrastruktur selbst unterstützen zu müssen", so Michal.

Ein gedrosselter Downloader steuert die Geschwindigkeit und Gleichzeitigkeit, mit der Zillow Bilder für die einzelnen Feed-Quellen herunterlädt, sodass das Unternehmen Bildanbieter nutzen kann, die schnelle Downloads unterstützen, und gleichzeitig keine Anbieter überfordert, die diese nicht unterstützen. Wenn der Bilddownload erfolgreich ist, schreibt Zillow das Originalbild zur Bildverarbeitung in Amazon S3.

Für die Bildverarbeitung verwendet Zillow die in S3 gespeicherten Originalbilder und bearbeitet sie mit verschiedenen Bildqualitätsmethoden, während für jedes Bild ein Satz mit Standardgrößen generiert wird. Alle Bilder werden außerhalb von Amazon S3 bereitgestellt und in Amazon CloudFront zwischengespeichert. Das Unternehmen stellt durchschnittlich 15 000 Bilder pro Sekunde bereit.

Die Vorteile

Mithilfe von AWS kann Zillow möglichen Käufern und Mietern, Immobilienmaklern und anderen Websitebesuchern eine bessere Benutzererfahrung bieten. "Durch die Umstellung auf AWS müssen wir uns keine Gedanken mehr über Cache-Überlastungen oder Kapazitätsprobleme machen. "Wir haben die Skalierbarkeit und die Leistung, die wir benötigen, um qualitativ hochwertige Immobilienbilder bereitzustellen, was für die Zillow-Benutzererfahrung von entscheidender Bedeutung ist", erläutert Daud. Zillow kann das Herunterladen und Verarbeiten von Bildern skalieren, um unterschiedliche Mengen an täglich eingehenden Bildern zu bewältigen. Und da Bilddownloads aus den einzelnen Feed-Quellen jetzt unabhängig erfolgen, kann Zillow Quellen nutzen, die hohe Bandbreiten und parallele Downloads unterstützen, während gleichzeitig eine Drosselung für solche Quellen erfolgt, die dies nicht unterstützen. Außerdem gewährt Amazon S3 dem Unternehmen einen fast unbegrenzten Objektspeicher, sodass zum Erhöhen der Kapazität keine Server oder Festplatten mehr bestellt und installiert werden müssen.

Mithilfe von Amazon CloudFront und Amazon S3 kann sich Zillow auf die Leistung seines Bildsystems verlassen. "Wir haben viel mehr Bandbreite als zuvor, darum denken wir gar nicht darüber nach", sagt Michal. "Und wir machen uns definitiv keine Sorgen, dass S3 die Kapazität ausgehen könnte."

Zillow hat durch die Migration des Bildverarbeitungs- und -bereitstellungssystems zu AWS außerdem die Betriebskosten gesenkt. "Mit Amazon CloudFront bezahlen wir monatlich weniger als die Hälfte, als wir zuvor für unser CDN bezahlt haben", betont Michal. "Wir müssen kein Geld mehr für umfangreiche Upgrades von NAS-Geräten ausgeben."

Das Unternehmen hat mithilfe von Amazon S3 und Amazon CloudFront die Verfügbarkeit seines Bildsystems verbessert. "Mit S3 werden Objekte dreimal in einer Region repliziert. Falls also wirklich eine Availability Zone ausfallen sollte, könnte der Datenverkehr weiterhin ohne Entwicklungsaufwand unsererseits den Benutzern bereitgestellt werden", erläutert Michal.

Auch die Notfallwiederherstellung wurde verbessert. "Wir profitieren definitiv von der geografischen Verteilung von AWS", sagt Michal. "Es gibt in diesen Regionen mehrere AWS-Regionen und Availability Zones, sodass wir nicht nur dynamische Inhalte in der Nähe der Benutzer generieren, sondern auch unsere Notfallwiederherstellungsfunktionen verbessern können."

Zillow ist jetzt bei der Reaktion auf Skalierbarkeitsanforderungen flexibler. "Ich kann jederzeit Amazon EC2-Instances einrichten, um eine umfangreiche Änderung der Anwendungsversion durchzuführen, oder ich kann mit nur wenigen Klicks eine neue Amazon CloudFront-Verteilung erstellen", erklärt Daud. "Im Endeffekt wurde unser Betrieb durch AWS beschleunigt."

Außerdem hat die Organisation bessere Einblicke in die Systemleistung. "Es gab einige Verzögerungen bei der Bildverarbeitung, und die ersten Versionen unserer Cloud-Apps stellten nicht genug Metriken bereit, sodass wir nicht erkennen konnten, welche Komponente der Pipeline die Verzögerung verursachte", erläutert Michal. "Nachdem wir mithilfe von Amazon CloudWatch die Überwachung von Latenzen begonnen hatten, waren die Ursachen für uns viel deutlicher, sodass wir entsprechende Maßnahmen zur Behebung ergreifen konnten."

Zillow wird weiterhin nach zusätzlichen Möglichkeiten zum Verlagern von Services in die Cloud suchen. "Bei unserer Migration zu AWS war CloudFront noch relativ neu, und wir dachten, wir gehen ein Risiko ein", so Michal. "Es hat sich aber bewährt. Zukünftig werden wir für neue Projekte und Services AWS in Betracht ziehen. Unsere Erfahrung mit AWS hat uns überzeugt."


Über Zillow

Täglich verwenden mehrere zehn Millionen Käufer, Verkäufer, Mieter und Vermieter sowie Makler und Immobilienverwalter die Zillow-Website, um Haus- und Wohnungsannoncen zu durchsuchen, Hypotheken zu erwerben und Informationen zu 110 Millionen Häusern in der gesamten USA zu erhalten.

Vorteile von AWS

  • Mehr als 50 % monatliche Ersparnis
  • Verbesserte Verfügbarkeit und Skalierbarkeit
  • Besserer Einblick in die Systemleistung

Genutzte AWS-Services

Amazon EC2

Der Web-Service Amazon Elastic Compute Cloud (Amazon EC2) stellt sichere, skalierbare Rechenkapazitäten in der Cloud bereit. Der Service ist darauf ausgelegt, Cloud Computing für Entwickler zu erleichtern.

Weitere Informationen »

Amazon CloudWatch

Amazon CloudWatch ist ein Dienst zur transparenten Überwachung und Beobachtung für DevOps-Techniker, Entwickler, Site Reliability Engineers (SRE) und IT-Manager.

Weitere Informationen »

Amazon S3

Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet.

Weitere Informationen »

Amazon SQS

Amazon Simple Queue Service (SQS) ist ein vollständig verwalteter Nachrichtenwarteschlangen-Service, der das Entkoppeln und Skalieren von Microservices, verteilten Systemen und serverlosen Anwendungen ermöglicht.

Weitere Informationen »

Elastic Beanstalk

AWS Elastic Beanstalk ist ein benutzerfreundlicher Service zum Bereitstellen und Skalieren von Webanwendungen und -Services, die mit Java, .NET, PHP, Node.js, Python, Ruby, Go und Docker auf vertrauten Servern wie Apache, Nginx, Passenger und IIS entwickelt werden.

Weitere Informationen »

Amazon CloudFront

Amazon CloudFront ist ein schneller Content Delivery-Service (CDN), der Daten, Videos, Anwendungen und APIs sicher, mit niedriger Latenz, hoher Übertragungsgeschwindigkeit und innerhalb einer entwicklerfreundlichen Umgebung an Kunden auf der ganzen Welt liefert.

Weitere Informationen »


Erste Schritte

Unternehmen aller Größen und Branchen nutzen AWS, um erfolgreicher zu sein. Kontaktieren Sie unsere Experten und begeben Sie sich noch heute auf Ihre eigene AWS Cloud-Reise.