Für diejenigen unter uns, die in der Welt des Cloud-Computing tätig sind, war das Aufregendste an der Google I/O 2012 nicht, dass Fallschirmspringer Glass trugen, und auch nicht, dass es ein neues Tablet gab. Die große Neuigkeit war, dass Google in den Bereich der Cloud-Infrastruktur-as-a-Service einsteigt, der derzeit von Amazon Web Services (AWS) dominiert wird. Konkret hat Google einen neuen Dienst namens Google Compute Engine eingeführt, der mit Amazon EC2 konkurrieren soll.
Das ist aufregend. Die Welt braucht einen weiteren robusten, leistungsfähigen und gut durchdachten Cloud-Service für virtuelle Maschinen. Mit Verlaub, Rackspace und andere haben hier lange Zeit nur einen einzigen Anbieter gehabt - EC2 ist mit Abstand der Marktführer. Google hat offensichtlich das Know-how und die Größe, um ein ernstzunehmender Konkurrent zu sein, wenn sie dabei bleiben.
Wie sieht es aus? Die ersten Berichte sind positiv. Google Compute Engine (GCE) ist gut konzipiert, gut ausgeführt und basiert auf einer Infrastruktur, die Google schon seit Jahren nutzt. Die Leistung ist gut, vor allem bei der Festplatten-E/A, den Boot-Zeiten und der Konsistenz, die in der Vergangenheit nicht gerade zu den Stärken von EC2 gehörten. Aber wie gut eignet sich GCE für die Cloud-Videotranscodierung? Wir haben einige vorläufige Ergebnisse, wobei wir zugeben, dass noch mehr Tests durchgeführt werden müssen. Im Folgenden finden Sie einige grundlegende Tests zur Videotranskodierung und Dateiübertragung mit der Zencoder-Software sowohl auf GCE als auch auf EC2.
Geschwindigkeit der Rohtranscodierung
Leistung hat für uns oberste Priorität, daher verwendet Zencoder die schnellsten Server, die wir finden können. Auf EC2 verwenden wir Cluster Compute-Instanzen, schnelle Dual-CPU-Maschinen in zwei Größen: 4XL und 8XL. Wir haben diese mit dem schnellsten GCE-Instanztyp verglichen, der derzeit ein Single-CPU-8-Core-Server ist.
Server | CPU |
---|---|
GCE 8-Kern | Intel Xeon (Sandy Bridge - wahrscheinlich E5-2670) - 8 Kerne @ 2.60GHz |
EC2 cc1.4xgroß | Zwei Intel Xeon X5570 - 8 Kerne bei 2,93 GHz/Kern |
EC2 cc2.8xlarge | Zwei Intel Xeon E5-2670 - 16 Kerne bei 2,60 GHz/Kern |
Diese Tests wurden mit einem H.264-Quellvideo mit den Auflösungen 640×360 und 1280×720 durchgeführt und von Zencoder mit denselben Einstellungen für die Transkodierung in einem Durchgang (H.264 Baseline-Profil, AAC, Transkodierung in einem Durchgang mit konstanter Qualität usw.) kodiert.
Server | Auflösung | Gleichzeitige Kodierung | Zeit (Sekunden) | Kosten pro Tausend |
---|---|---|---|---|
EC2 cc1.4xgroß | 640×360 | 6 | 15.87 | $0.96 |
EC2 cc2.8xlarge | 640×360 | 6 | 9.93 | $1.10 |
GCE 8-Kern | 640×360 | 6 | 21.05 | $1.13 |
GCE 8-Kern | 640×360 | 1 | 6.01 | $1.94 |
EC2 cc1.4xgroß | 640×360 | 1 | 5.96 | $2.15 |
EC2 cc1.4xgroß | 1280×720 | 6 | 48.58 | $2.92 |
EC2 cc2.8xlarge | 640×360 | 1 | 4.99 | $3.33 |
EC2 cc2.8xlarge | 1280×720 | 6 | 30.74 | $3.42 |
GCE 8-Kern | 1280×720 | 6 | 68.15 | $3.66 |
EC2 cc1.4xgroß | 1280×720 | 1 | 12.89 | $4.65 |
GCE 8-Kern | 1280×720 | 1 | 16.01 | $5.16 |
EC2 cc2.8xlarge | 1280×720 | 1 | 10.92 | $7.28 |
Mit den Standardeinstellungen von Zencoder sind beide EC2-Instanztypen schneller als GCE. Die Wirtschaftlichkeit liegt etwas näher beieinander, und es gibt keinen klaren Gewinner zwischen 4XL EC2-Instances und GCE. GCE ist also eine praktikable Option für die Transcodierung, bei der die Kosten eine höhere Priorität haben als die reine Geschwindigkeit, obwohl AWS-Kunden Reserved Instances und Spot Instances für weitere Kostensenkungen nutzen können. Wir haben festgestellt, dass die EC2-Instances mit 16 Kernen unter Last mit 6 gleichzeitigen Transcodierungen etwa doppelt so schnell waren wie die GCE-Instances mit 8 Kernen.
Angesichts der ähnlichen Taktraten, aber der halben Anzahl von Kernen, ist dies das, was man erwarten würde. Wenn Google jedoch ähnliche 16-Kern-Maschinen hinzufügt, könnten sie vergleichbare Transcodierungsgeschwindigkeiten haben.
Übertragungsgeschwindigkeiten
Bei der Transkodierung von Videos in der Cloud ist die Netzwerk-E/A fast so wichtig wie die CPU. Dies gilt insbesondere für Kunden, die mit hochbitratigen Inhalten arbeiten (Rundfunkanstalten, Studios und Kreative). Wie sind also die Übertragungsgeschwindigkeiten von GCE im Vergleich zu EC2? Um dies zu testen, haben wir vier Benchmark-Sets durchgeführt:
- Amazon S3 zu Amazon EC2
- Amazon S3 zu Google Compute Engine
- Google Cloud-Speicher für Amazon EC2
- Google Cloud Storage zu Google Compute Engine
Dazu haben wir dieselbe 1 GB große Videodatei getestet, die auf Google Cloud Storage (GCS) und auf Amazon S3 gespeichert war. Die Übertragung wurde über 10 HTTP-Verbindungen durchgeführt (Zencoder tut dies standardmäßig, um die Übertragungsgeschwindigkeiten zu optimieren, und es kann die Übertragung großer Dateien über HTTP erheblich beschleunigen).
Übertragungsgeschwindigkeit (Mbps) | Server-Bandbreite | |
---|---|---|
S3 bis GCE | 470.96 | 1 Gbit/s |
S3 zu EC2 c1.xlarge | 644.29 | 1 Gbit/s |
S3 zu EC2 cc2.8xlarge | 1458.32 | 10 Gbit/s |
GCS zu GCE | 202.60 | 1 Gbit/s |
GCS zu EC2 c1.xlarge | 378.28 | 1 Gbit/s |
GCS zu EC2 cc2.8xlarge | 641.34 | 10 Gbit/s |
Das ist interessant. Wir haben erwartet, dass die Übertragung von Amazon zu Amazon schnell ist, und das war sie auch. Aber wir haben auch erwartet, dass die Google-zu-Google-Übertragung schnell ist, was nicht der Fall war. Tatsächlich scheint es so zu sein, dass GCS langsamer ist als S3 und die GCE-Übertragung langsamer als EC2, so dass man, selbst wenn man Google für Berechnungen nutzt, besser dran ist, wenn man S3 für die Speicherung nutzt. Die Übertragung war 2,3 Mal schneller von S3 zu GCE als von GCS zu GCE.
Weitere Tests erforderlich
Betrachten Sie diese Ergebnisse als vorläufig. Es müssen weitere Tests durchgeführt werden, um mehr Variablen zu berücksichtigen.
- Unterschiede von Instanz zu Instanz. Dies gilt insbesondere für die Dateiübertragung, die je nach Netzwerkbedingungen und Instanzvariabilität stark variieren kann.
- Zusätzliche Anwendungen. Diese Benchmarks decken nur die Transkodierung ab, die ein CPU-gebundener Benchmark ist. Andere Anwendungen sind durch Festplatte, Speicher usw. begrenzt, und diese Tests sagen nichts anderes aus als Transcoding.
- Skalierbarkeit. Skalierbarkeit ist für jeden, der die Cloud für die Videotranskodierung nutzt, extrem wichtig. Es sind weitere Tests erforderlich, um herauszufinden, wie GCE im Vergleich zu EC2 bei einer enormen Skalierung - Zehntausende von Servern (oder mehr) - abschneidet. An welchem Punkt stoßen die Benutzer auf Kapazitätsprobleme? Leistungsprobleme? Design-Einschränkungen? Instabilität?
Zukunft der Cloud-Infrastruktur
Auch wenn EC2 in diesen ersten Tests gewinnt, sind wir von Google Compute Engine begeistert. Um ein ernsthafter Konkurrent für Hochleistungs-Transcoding zu sein, muss Google größere Instanzen mit schnelleren CPUs hinzufügen. Das Hinzufügen neuer Instanztypen ist jedoch einfach. Nichts hindert Google daran, dies zu tun. Die Schwierigkeit besteht darin, eine robuste, leistungsfähige, mit allen Funktionen ausgestattete und skalierbare Cloud-Plattform zu entwickeln, und das scheint Google gelungen zu sein. Wenn Google diesem Produkt und den Entwicklern langfristig verpflichtet ist, könnte die Welt der Cloud-Virtualisierung gerade einen zweiten legitimen Akteur bekommen haben.