Meilleure mise à l’échelle : stabilité et performances accrues
Nous sommes ravis d’annoncer quelques mises à jour sur lesquelles nous travaillons depuis quelques semaines. Ces changements devraient permettre de stabiliser davantage la plateforme et de la rendre encore plus rapide.
Entrons dans le vif du sujet !
L’autoscaling des machines de téléversement est un peu plus difficile que celui des encodeurs, car
une fois qu’un gros volume de téléversements nous arrive, ceux-ci restent liés à certaines machines.
Autrement dit, toute mise à l’échelle que nous effectuons en réaction n’a aucun effet sur les
téléversements déjà en cours. Pour cette raison, nous avons parfois constaté une forte demande en
I/O lors de grandes vagues de téléversements, après lesquelles de nombreux drones d’encodage
montaient en charge et échangeaient des fichiers d’entrée et de sortie avec un petit nombre de
machines de téléversement.
Nous avons désormais remplacé 2 machines de téléversement c1.medium par 3
m1.xlarge. D’emblée, cela nous offre un débit d’I/O 6 fois
supérieur à celui d’avant, ce qui a très bien fonctionné pour absorber ces pics de téléversement
sans le moindre problème. Nous envisageons aussi d’autres stratégies pour réduire encore les I/O sur
nos machines de téléversement, par exemple envoyer immédiatement tous les fichiers entrants vers
Amazon S3 et laisser plutôt les drones les y télécharger. Nous étudions également des moyens de
répartir les responsabilités de téléversement et d’en automatiser la mise à l’échelle. Et nous
gardons aussi un œil attentif sur
ces machines SSD.
Nous vous tiendrons au courant !
Nous avons réécrit notre Autoscaler. Cette nouvelle version améliorée est désormais capable d’analyser une file d’attente et de décider combien de machines elle doit lancer (en parallèle) pour la résorber. Elle effectue aussi la mise à l’échelle de façon beaucoup plus agressive. Résultat : une baisse drastique des temps d’attente. Par exemple, au cours de la dernière semaine et demie, nous n’avons connu aucun temps d’attente supérieur à 5 minutes dans la file /image/resize, ni supérieur à 18 minutes dans la file /video/encode. Et ce temps d’attente de 18 minutes ne s’est produit que parce que deux de nos plus gros clients ont lancé leurs imports de vidéos par lots au même moment, ce qui a créé une file vidéo de 130 GB. Pendant cette période, nous sommes passés de 2 à 39 machines d’encodage à huit cœurs en moins de 20 minutes.
Mais ce n’est pas tout ! Vous pouvez désormais consulter les temps d’attente actuels pour le redimensionnement d’images et l’encodage vidéo sur notre page de statut.
Par ailleurs, nous avons aussi réécrit le code qui gère la liste et la recherche des Assemblies sur le site web. Résultat : un gain de performances considérable. Cela signifie aussi que les délais d’expiration ne devraient plus pouvoir produire des pages vides, un problème que certains de nos clients nous avaient signalé. Enfin, nous dirigeons désormais les requêtes lourdes (mais moins critiques) vers des serveurs esclaves en lecture seule, afin que la production ne soit pas affectée par des recherches, analyses ou rapports lourds.
Dites-nous ce que vous pensez de tous ces changements. Nous sommes ravis de vous présenter un produit toujours plus stable et performant. Soyez assurés que nous vous réservons encore de nombreuses améliorations, dont quelques nouvelles fonctionnalités ! 😄
