Es gibt nichts Vergleichbares zu AWS
Maximilian Modl Gründer und Firmenchef

Das Unternehmen movinary mit Sitz in Berlin stellt eine in der Cloud gehostete Online-Plattform bereit, mit der Kunden aus ihren eigenen Fotos Videos erstellen und diese mit Text versehen können. Mit diesen Videos können Kunden ihre ganz persönlichen Geschichten über besondere Ereignisse wie Hochzeiten, Urlaube oder Geburtstage erzählen. Jedes Video kann sofort heruntergeladen werden, sodass Kunden das Video sofort nach der Erstellung kaufen können.

Gründer und Firmenchef Maximilian Modl sagt: "Während klassische Video-Tools sehr komplex sind, befolgt movinary die neuesten Leitlinien für Benutzerfreundlichkeit. Der Erstellungsprozess ist vollkommen intuitiv."

Zu Beginn sah sich movinary denselben Herausforderungen gegenüber wie viele andere Online-Services. Die jungen Unternehmer wollten ein skalierbares Geschäftsmodell, mit dem Potenzial, Kunden weltweit zu bedienen. Für dieses Modell waren ein einfach einzurichtender Server für die E-Commerce-Site (ein komplexes skalierendes Magento-System) und eine hohe Rechenleistung für den Video-Rendering-Prozess erforderlich.

Vor ihrer Entscheidung für AWS führte das movinary-Team Vergleiche mit firmeninternen Optionen und Cloud Hosting durch. "Wir wollten unseren Service so schnell und effizient wie möglich machen, um mit der Konkurrenz mitzuhalten", erklärte Modl. "Es war klar, dass wir die Cloud brauchten."

Das Unternehmen suchte auch nach einer Lösung, die es ihm gestatten würde, die gängigen Webtechnologien (wie JavaScript Ajax und Flash) zu nutzen, auf denen movinary aufsetzt.

Das movinary-Team wählte von Anfang an die Arbeit mit Amazon Web Services (AWS). Dazu brauchten sie:

  • Kompetenz in den gängigen Webtechnologien
  • Hohe Rechenleistung
  • Hohe Verfügbarkeit
  • Die Flexibilität für eine weltweite Expansion

Sicherheit, Datenschutz und eine einfache Konfiguration waren ebenfalls wichtige Überlegungen. Modl sagt: "Mit AWS können wir einen Service bereitstellen, mit dem Kunden ihre persönlichen Videos und Bilder sicher speichern können. Außerdem erfüllte AWS unsere Anforderungen in Bezug auf eine einfache Serverkonfiguration. Sowohl die Verbindung mit Amazon Relational Database Service (Amazon RDS), die Konfiguration von Amazon Elastic Load Balancing als auch der Skalierungsmechanismus passen perfekt zu unserem internen IT-Motto: klein beginnen, rasch skalieren."

Die Umsetzung des personalisierten Video-Renderings war ein wenig schwieriger. Das Rendering erfordert eine sehr hohe Rechenleistung und muss so schnell wie möglich sein.

AWS bot movinary einen entscheidenden Vorteil gegenüber anderen Cloud-Lösungen: die Verwendung gängiger Webtechnologien wie PHP, MySQL, Adobe AIR und Apache-Webserver. Diese Technologien sind für ihre Plattform unerlässlich. Außerdem konnte AWS die erforderliche Rechenleistung bereitstellen.

"Was die Skalierungsmöglichkeiten angeht, ist der Amazon Elastic Load Balancer einfach mit vordefinierten Metriken zu verwenden, wie der Rechenleistung", erläutert Modl. "Wenn der Load Balancer ausfällt, kann die Skalierung dennoch von Nichtfachleuten ausgeführt werden. Somit können wir Marketingkampagnen mit einem hohen zu erwartenden Datenaufkommen planen, ohne das Webentwicklungsteam zu beeinträchtigen.

"Die Amazon Elastic Compute Cloud (Amazon EC2) Reserved Instances sind sowohl für die Bewältigung des normalem Datenaufkommens als auch für Datenverkehrsspitzen optimal", fährt Modl fort. Durchschnittlich hat movinary pro Tag etwa 3 000 Besucher. In Spitzenzeiten (wie etwa beim Start von Marketingkampagnen) erstellen bis zu 20 000 Besucher gleichzeitig Videos auf movinary.

Die Verwendung von Windows-Instances mit der erforderlichen Rechenleistung zusammen mit ihrer personalisierten Video-Rendering-Engine funktionierte gut. "Unsere Entwickler haben über Secure Shell (SSH) volle Kontrolle über die Server", sagt Modl. "Die bestehende Infrastruktur und die Services sind einfach zu verwenden, sodass eine Konfiguration mit vordefinierten Images nur wenig Zeit in Anspruch nimmt."

Das movinary-Team verwendet Git für die Bereitstellung seines Codes auf dem Webserver. Das Team hat ein Image eines Linux-Servers erstellt, das als Apache-Webserver ausgeführt wird. Beim Boot-Prozess einer Instance wird jede Änderung aus dem Git-Repository automatisch übernommen. Wenn alles synchronisiert wurde, akzeptiert der Server HTTP-Anforderungen, sodass der für den Elastic Load Balancer verfügbar ist. Wenn der Server läuft wird das Repository automatisch alle fünf Minuten abgefragt, um Code-Änderungen zu übernehmen.

Der movinary-Service verwendet eine Reihe von AWS-Produkten, wie im folgenden Architekturdiagramm zu sehen ist.

Movinary Architecture Diagram 1

Abbildung 1: Aktuelle Webserverarchitektur von movinary

Movinary Architecture Diagram 2

Abbildung 2: Geplante Webserverarchitektur von movinary

movinary-3-arch-diagram

Abbildung 3: Cloud-Renderer-Architektur von movinary

Das movinary-Team verwendet drei Amazon EC2-Instances: eine für den Cloud-Renderer des Teams, eine für den Webserver und eine für eine Datenbank. Der Cloud-Renderer startet für jede Rendering-Anforderung eine Instance und fährt eine Instance herunter, wenn keine weiteren Rendering-Anforderungen mehr in der Warteschlange vorhanden sind. Der movinary-Webserver skaliert automatisch, gemessen anhand der Latenz, und die Datenbank skaliert mit Lese-Replikaten. Diese Methode ist für Webshops gut geeignet, wo weitaus mehr Leseanforderungen als Schreibanforderungen ausgeführt werden. Derzeit speichert movinary 67 GB an Bildern, PDF-Dateien und Videos im Amazon Simple Storage Service (Amazon S3) für die Benutzervideos, Bilder und Videovorlagen.

Im Folgenden finden Sie weitere Informationen, wie das movinary-Team die AWS-Services verwendet.

  • Amazon CloudWatch wird zur Skalierung von Web-Instances sowie zum Senden von Benachrichtigungen per E-Mail verwendet, wenn der Service nicht verfügbar ist.
  • Amazon RDS wird für Informationen für den Online-Shop eingesetzt.
  • Die movinary Cloud-Renderer-Engine (ein Service, der ein einzelnes Video mit den Fotos und Vorlagen erstellt, die in der Cloud gerendert werden) wird auf Windows-Rechnern ausgeführt und der Renderer selbst ist in Flash geschrieben.
  • Magento wird sowohl für die movinary-Website als auch für das E-Commerc-System (die Einkaufsanwendung)verwendet – wofür PHP und MySQL in der Infrastruktur des Unternehmens laufen müssen (Amazon EC2 und Amazon RDS).
  • GWT wird verwendet, um dem Benutzer eine reibungslose Serviceerfahrung beim Videoerstellungsprozess zu bieten.
  • Varnish Cache dient als Cachespeicher für die Website und zur Bereitstellung eines dynamischen Online-Services für Kunden.
  • Ein Apache Tomcat Server nimmt Anforderungen an den Cloud-Renderer an und überwacht sie.
  • Adobe AIR und Avidemux werden verwendet, um Kundenvideos am Back-End zu rendern.

Die Verwendung von AWS ermöglichte es dem movinary-Team, den Produktionsprozess innerhalb kurzer Zeit zu starten. "Wir haben auf lokalen Rechnern begonnen und waren überrascht, wie mühelos wir unseren Service in die AWS Cloud-Technologie einbinden konnten", betont Modl. "Vor allem die vordefinierten Amazon Machine Images (AMIs) und der Elastic Load Balancer haben uns geholfen, innerhalb eines einzigen Monats nach der lokalen Einrichtung in Produktion zu gehen."

Das Team konnte mit Amazon EC2 auch die Performance steigern. "Unser Back-End für die Videopersonalisierung setzt eine hohe Performance voraus", erklärt Modl, "und wir waren ausgesprochen erfreut zu sehen, dass die m1-medium Instances unsere Rechenleistungs- und RAM-Anforderungen genau erfüllten. Die Möglichkeit, den Festplattenspeicher für unsere Instance mit zwei Mausklicks zu steigern, spart uns eine Menge Zeit."

Zu Amazon RDS sagt Modl: "AWS verwaltet Backups und Updates. Außerdem wird die Infrastruktur halbautomatisch skaliert. Unser System generiert wesentlich mehr Lese- als Schreibanforderungen, was durch die von Amazon RDS bereitgestellte Skalierung unterstützt wird."

Das Hosten des Services in der Cloud war kosteneffizienter, da es movinary gestattet hat, zugewiesene Instances dynamisch ändern. Die Struktur ermöglicht eine äußerst anpassbare Lösung in einer skalierbaren Infrastruktur.

Das movinary-Team wertet prüft Amazon RDS und Amazon ElastiCache und verwendet möglicherweise demnächst Amazon Simple Queue Service (Amazon SQS) zur Verarbeitung seiner Rendering-Warteschlange.

Anderen Entwicklern, die die Verwendung von AWS in Betracht ziehen, empfiehlt movinary, mit der automatischen Skalierung basierend auf der CPU-Auslastung zu beginnen. "Nach der Sammlung zusätzlicher Metriken kann man die Skalierung verbessern, indem man andere Mess- und Skalierungstechniken einsetzt", erläutert Modl. Das Team musste einige Änderungen vornehmen, um die Amazon EC2-Instances einzurichten. Es stehen zahlreiche vorkonfigurierte Images zur Verfügung.

Das Team stellte auch fest, dass zahlreiche vorkonfigurierte Images für die Einrichtung der Amazon EC2-Instances verfügbar sind, die in ihrem Fall nur geringe Änderungen erforderten.

Wie Modl erklärt, stand die Entscheidung für AWS von Anfang an fest. "Es gibt nichts Vergleichbares zu AWS."

Weitere Informationen zu AWS und Webanwendungen finden Sie unter http://aws.amazon.com/web-mobile-social/.