26/01/2015

Docker Hub améliore ses performances

Devant la croissance élevée du nombre d’utilisateurs, Docker a subi il y a quelques semaines des baisses de performances soulignées par les utilisateurs. La société s’attelle depuis à améliorer la réponse en charge, la performance et la stabilité de la plateforme. De nombreuses améliorations ont été apportées via les mises à jour logicielles, c’est au tour de l’infrastructure matérielle d’être revue pour soutenir la croissance de Docker Hub, plateforme de gestion du cycle de vie des applications distribuées dans le nuage.

Retour sur les améliorations des derniers mois

Victime de son succès la plateforme Docker Hub a effectué de nombreux changements depuis plusieurs semaines pour faire face aux problèmes de performances rencontrés : le processus d’ouverture de session a été simplifié avec l’ajout d’indexes de base de données et l’optimisation des requêtes pour une exécution plus rapide, l’addition de caches pour éviter d’atteindre la base de données et la correction d’une anomalie permettant le verrouillage de la base dans de rares cas. Une amélioration portait aussi sur les « Workers » (gestionnaires de tâches) dont la gestion de queue par Redis a été remplacée par RabbitMQ et les serveur sont devenus dédiés. La recherche avait quant à elle était limitée tant au niveau du nombre des résultats affichés que par l’auto complétion. Enfin, l’infrastructure avait déjà subi une grande montée en puissance pour la production avec un triplement du nombre de serveurs et la multiplication par vingt de la capacité mémoire de la base de données.

Analyse Post Mortem

Ces améliorations ont été effectuées alors que des problèmes de performances ont été observés à la fin de l’année 2014. Après investigation, il s’est avéré que la cause principale était un nombre élevé de tentatives d’ouverture de session. Chaque tentative de dépôt ou de retrait sur le moteur Docker avec un répertoire privé engendrait un mécanisme ouverture de session.

Lors des derniers mois de nombreuses améliorations de sécurité ont été apportées à Docker Hub, dont la protection contre des tentatives de brute force. Cette protection ajoutée une charge supplémentaire qui n’impactait pas les performances lors d’un trafic moyen sur la plateforme, mais dégradait celles-ci en cas d’affluence. Cette dégradation impactait non seulement les retraits et dépôts sur les répertoires, mais aussi le site global de Docker Hub.

L’équipe a donc commencé à repenser l’architecture des systèmes d’autorisations afin d’isoler les transactions des dépôts du reste des activités. Un audit global du système a été mis en place et la liste des recommandations est aujourd’hui en cours d’application.

Les Améliorations en cours

Des améliorations sont donc en cours mais l’équipe Docker annonce que la quantité de travail requiert une planification importante qui permettra une amélioration continue du service à chaque nouvelle mise à jour. Les tâches prioritaires annoncées par l’équipe sont :

  • Accélérer les performances de l’API
  • Diviser les services de grande taille en plus petits services pour permettre une montée en charge plus aisée
  • Remplacer la librairie de prévention contre les attaques Brute de Force par une protection plus performante
  • Ajouter plus de métriques pour l’API et le contrôle externe pour prédire au mieux les problèmes de performances

Source : blog.docker.com

Actualités