Stabilitäts- und Performance-Schub durch verbesserte Skalierung
Wir freuen uns, einige Updates ankündigen zu können, an denen wir in den vergangenen Wochen gearbeitet haben. Diese Änderungen werden die Plattform hoffentlich weiter stabilisieren und noch schneller machen.
Legen wir los!
Das automatische Skalieren von Uploadern ist etwas schwieriger als bei Encodern, denn sobald ein
großer Schwung Uploads bei uns eintrifft, sind diese an bestimmte Maschinen gebunden. Das heißt,
dass jede Skalierung, die wir daraufhin vornehmen, keine Auswirkung auf die bereits laufenden
Uploads hat. Deshalb haben wir gelegentlich eine hohe I/O-Last beobachtet, wenn große Upload-Wellen
eintrafen, woraufhin viele Encoding-Drohnen hochskalierten und Eingabe und Ausgabe mit nur wenigen
Uploadern austauschten.
Wir haben nun 2 Uploader vom Typ c1.medium durch 3 vom Typ
m1.xlarge ersetzt. Das verschafft uns auf Anhieb den 6-fachen
I/O-Durchsatz von zuvor, und damit konnten wir diese Upload-Spitzen problemlos abfangen. Wir prüfen
außerdem weitere Strategien, um die I/O-Last auf unseren Uploader-Maschinen weiter zu senken, etwa
indem wir alle eingehenden Dateien sofort an Amazon S3 senden und die Drohnen sie stattdessen von
dort herunterladen lassen. Ebenso prüfen wir Wege, die Aufgaben der Uploader zu verteilen und
automatisch zu skalieren. Und wir behalten auch
diese SSD-Maschinen
genau im Auge. Wir halten Sie dazu auf dem Laufenden!
Wir haben unseren Autoscaler neu geschrieben. Diese neue und verbesserte Version kann nun eine Queue analysieren und entscheiden, wie viele Maschinen sie (parallel) starten muss, um sie zu bewältigen. Sie skaliert jetzt außerdem deutlich aggressiver. Das Ergebnis sind drastisch kürzere Queue-Zeiten. So hatten wir in den vergangenen anderthalb Wochen bei /image/resize keine Queue-Zeit von mehr als 5 Minuten oder bei /video/encode keine Queue-Zeit von mehr als 18 Minuten. Und diese eine Queue-Zeit von 18 Minuten kam nur zustande, weil zwei unserer größten Kunden ihre Video-Batch-Importe gleichzeitig durchführten, was zu einer Video-Queue von 130 GB führte. In diesem Zeitraum sind wir in weniger als 20 Minuten von 2 auf 39 Encoding-Maschinen mit Octa-Core-Prozessoren gesprungen.
Doch das ist noch nicht alles! Sie können die aktuellen Queue-Zeiten für die Größenänderung von Bildern und das Video-Encoding jetzt auch auf unserer Statusseite einsehen.
Darüber hinaus haben wir den Code neu geschrieben, der die Assembly-Liste/-Suche auf der Website steuert. Das Ergebnis ist ein deutlicher Performance-Zuwachs. Außerdem sollten Timeouts dadurch nicht mehr zu leeren Seiten führen können, ein Problem, das einige unserer Kunden gemeldet hatten. Und schließlich richten wir aufwendige (aber weniger kritische) Abfragen nun an Read-only-Slaves, damit der Produktivbetrieb nicht durch aufwendige Suchen, Analysen oder Reports beeinträchtigt wird.
Sagen Sie uns gerne, was Sie von all diesen Änderungen halten. Wir freuen uns sehr, Ihnen ein Produkt zu präsentieren, das immer stabiler und leistungsfähiger wird. Seien Sie versichert, dass wir noch viele weitere schöne Verbesserungen in petto haben, darunter auch einige neue Features! 😄
