Docker

Le défi

Comment faire pour réaliser une recherche haute performance sur une base de données en expansion constante sans surcharger les ressources opérationnelles ?

La solution

Il suffit d'utiliser Elastic Cloud, le service Elasticsearch hébergé et géré par Elastic, pour fournir une expérience de recherche et de découverte totalement disponible, transparente et évolutive à la communauté Docker en forte croissance.

FAITS MARQUANTS DE L'ETUDE DE CAS

Défi

  • Adapter une application de recherche à des volumes de données toujours croissants, de manière simple et économique
  • Garantir une excellente expérience de recherche et de découverte
  • Gérer les difficultés opérationnelles

Solution

  • Utiliser Elasticsearch pour fournir plus rapidement de meilleurs résultats de recherche
  • Choisir un service d'hébergement garantissant une expérience de recherche stable et constante
  • Réduire les coûts de fonctionnement opérationnel en déléguant à Elastic Cloud l'infrastructure Elasticsearch

Docker, Inc. est la société à l'origine de la plateforme open source Docker. C'est également le sponsor principal de l'écosystème Docker. Utilisée par des dizaines de milliers d’entreprises telles que Baidu, BBC, eBay, Goldman Sachs, ING, Spotify et Yelp, la solution Docker est une plateforme libre et ouverte pour applications distribuées. Elle permet aux développeurs et aux administrateurs informatiques d'élaborer, de livrer et de faire tourner les applications n'importe où.

La communauté Docker produit rapidement et en masse des conteneurs pour toutes sortes d'applications, des répartiteurs de charge aux bases de données, en passant par les services de chronométrage et de pointage. Ces blocs de construction, faciles à déployer et à organiser, offrent des avantages considérables en termes de sécurité, de performances et de fonctionnement.

« Elasticsearch nous donne davantage de flexibilité par rapport aux requêtes que nous devons effectuer, et nous permet de spécifier comment nous pouvons booster les champs, trier et calculer la pertinence des documents. »

Ken Cochrane, responsable ingénierie

Le problème : le dépassement des capacités d'un SGBDR

La bibliothèque de conteneurs Docker doit pouvoir facilement se découvrir, et au vu de la quantité de conteneurs, il a été décidé que la recherche serait la meilleure expérience utilisateur pour cette fonctionnalité. Une première implémentation de recherche sur SGBDR conventionnel n'a pas permis de donner les résultats escomptés par Docker en termes de performances et de qualité. Comme l'a souligné Ken Cochrane, développeur chez Docker, « auparavant, nous utilisions la base de données, mais les possibilités étaient très restreintes. La charge pesant sur la base de données ne faisait qu'augmenter, ralentissant les processus à mesure que nous ajoutions des données. »

Après avoir pris la décision de quitter son SGBDR, Docker a procédé à l'évaluation d'Elasticsearch et d'autres technologies de recherche. Son choix s'est porté sur Elasticsearch comme plateforme de nouvelle génération.

Une fois la décision de migrer vers Elasticsearch prise, la société s'est ensuite penchée sur la question du travail à fournir au niveau opérationnel. La gestion d'une base de données distribuée comme Elasticsearch présente quelques petites difficultés en termes d'exploitation, comme le fait de maintenir un quorum viable, de garantir la bonne configuration des réplications haute disponibilité ou d'archiver/gérer les sauvegardes. Étant donné ces difficultés (entre autres), la décision fut prise de déléguer l'infrastructure Elasticsearch à un fournisseur intégralement hébergé.

La solution : isoler les problèmes principaux

Docker a utilisé plusieurs critères pour évaluer les options disponibles pour une solution Elasticsearch hébergée. Selon John Costa, développeur chez Docker, « nous avons étudié quelques autres fournisseurs Elasticseach hébergés. Nous avons tenu compte de l'emplacement, du nombre d'index (développement, pré-production, production), des ressources (mémoire), des options haute disponibilité et du coût. La solution Elastic Cloud s'est avérée être la meilleure. »

La performance régulière et la fiabilité sont essentielles pour Docker, ce qui fait des clusters dédiés Elasticsearch d’Elastic Cloud la solution idéale pour deux raisons. Tout d'abord, le modèle d'hébergement d’Elastic Cloud, basé sur des clusters dédiés avec mémoire et processeur réservés, donne la garantie que les performances de l'application seraient constantes. De plus, les options haute disponibilité d’Elastic Cloud donnaient à Docker une garantie supplémentaire: même en cas de panne intégrale au niveau du datacenter, la base de données de recherche reste accessible.

Précisons également que les critères d'allocation d'index de Docker correspondent bien à l'architecture d’Elastic Cloud. Étant donné que chaque client Elastic Cloud se voit attribuer un cluster Elasticsearch dédié sans restriction d'utilisation, chacun est donc libre d'allouer les index à sa convenance.

« Après avoir évalué plusieurs fournisseurs, nous avons déterminé qu’Elastic Cloud répondrait à nos besoins en termes de tolérance aux erreurs, de réactivité de l'assistance et de facilité d'utilisation. »

John Costa, ingénieur logiciel sénior

« L'attention portée par Elastic Cloud au niveau service client et sa réactivité ont aidé à garantir une implémentation réussie chez Docker. Le service d’assistance est très réactif... pour moi, c'est parfait! »

Roberto Hashioka, ingénieur logiciel

Les avantages : passage en production

Le fait de passer à Elasticsearch en production a permis d'obtenir les gains de performance recherchés par Docker. Les charges portant sur le SGBDR de production ont considérablement diminué, et le temps de latence ainsi que le débit des recherches se sont considérablement améliorés. De plus, la qualité de ses résultats de recherche de Docker a elle aussi pu être améliorée grâce aux fonctionnalités Elasticsearch de boost de champs et de requêtes de type function score, afin de promouvoir les résultats les plus populaires et les plus pertinents.

Les tâches de déploiement de l'index Docker sur Elastic Cloud ont été rapides et faciles. Comme l'a souligné John Costa, de Docker, « le passage en production a été facile, car il nous a suffi pour cela de renseigner une carte de crédit pour le paiement, puis de saisir les paramètres de production. Nous avions quelques questions au sujet de l'indexation, des paramètres de mémoire et des paramètres de fiabilité. L'équipe d'assistance d’Elastic Cloud s'est montrée très prompte à fournir des réponses détaillées. »

Grâce à sa nouvelle infrastructure, l’entreprise Docker est à même de fournir plus rapidement de meilleurs résultats de recherche. Cela signifie une utilisation plus facile pour les développeurs qui se servent de la plateforme Docker. Ceci est crucial pour Docker : un outil conçu pour fournir de meilleures performances de manière plus pratique doit également bénéficier d'un service d'assistance doté de ces caractéristiques. Finalement, Elasticsearch s'est avéré être un outil puissant pour cette entreprise, l'aidant ainsi à réaliser un aspect essentiel de sa mission de base : fournir une extraordinaire expérience aux développeurs.