La mise à l’échelle des conteneurs ne se résume pas simplement à placer un proxy devant un service et à s’en aller. La mise à l’échelle ne se limite pas à la distribution. Dans le monde en constante évolution des conteneurs, cinq capacités distinctes sont nécessaires pour garantir la mise à l’échelle : les nouvelles tentatives, les disjoncteurs, la découverte, la distribution et la surveillance.
Dans cet article sur l’art de mettre à l’échelle les conteneurs, nous allons approfondir la découverte.
Les modèles d’échelle traditionnels ont une configuration relativement fixe . Les proxys d’équilibrage de charge utilisent un algorithme pour sélectionner une ressource à partir d’un pool de ressources assez statique. Bien que la sélection de la ressource (distribution) soit un événement en temps réel et puisse inclure la prise en compte de variables juste-à-temps telles que les temps de charge et de réponse, l'environnement global ne l'est pas. Les opérateurs ajoutent et suppriment des ressources en fonction de processus définis par l’entreprise qui régissent l’augmentation ou la diminution de la capacité.
Les modèles d’échelle modernes sont volatils et dynamiques par nature. Le principe d’échelle dans les systèmes modernes est basé sur le principe « automatique » de tout. L'auto-scale, un concept concrétisé par le cloud, impose l'idée d'étendre et de réduire les pools de ressources en fonction de la demande. Mais ce n'est qu'un demi-pas par rapport aux modèles traditionnels. Il existe toujours la notion d’un pool de ressources « de base » à partir duquel un algorithme d’équilibrage de charge effectue une sélection. Ce pool peut être élargi ou réduit de manière dynamique, mais il reste limité par le modèle assez traditionnel dans lequel il fonctionne.
Les conteneurs – et en particulier les environnements d’orchestration de conteneurs – sortent complètement de ce moule. Le concept de point de terminaison (l'entrée ) est l'un des rares éléments « fixes » de l'échelle basée sur les conteneurs, tout le reste, des règles de routage aux ressources qui composent son pool de support, étant considéré comme très variable. Théoriquement, les conteneurs ne peuvent vivre que quelques secondes. Dans la pratique, cependant, ils ont généralement tendance à vivre plusieurs jours. Par rapport aux modèles traditionnels où les ressources vivaient pendant des mois (et parfois des années), cette durée de vie exerce une pression sur les opérateurs qui ne peut être supportée sans automatisation.
La découverte est donc un élément essentiel pour la mise à l’échelle des conteneurs. Les proxys d'équilibrage de charge doivent pouvoir sélectionner une ressource dans un pool de ressources qui peut ou non être la même qu'il y a une minute. La plupart des environnements d’orchestration de conteneurs incluent alors un « registre » de ressources qui aide les proxys dans la découverte en temps réel des ressources pour garantir l’évolutivité.
Ce processus nécessite que les proxys soient non seulement intégrés dans l'écosystème d'orchestration de conteneurs, mais qu'ils parlent également la langue franche de ces environnements : des fichiers de configuration déclaratifs (fichiers de ressources) et des métadonnées sont utilisés dans les environnements d'orchestration de conteneurs pour permettre aux proxys d'identifier les ressources attachées aux services qu'ils mettent à l'échelle. Cela permet aux proxys d’ajuster automatiquement leurs « pools » de ressources en temps réel et d’éviter l’embarras de sélectionner une ressource qui a déjà été malheureusement fermée.
Sans découverte, il n’existe aucun moyen efficace pour un proxy d’équilibrage de charge de faire évoluer des applications et des services dans un environnement de conteneur. Aucun opérateur ne pourrait suivre le rythme des changements dans un tel environnement en utilisant des méthodes de configuration manuelles. Le simple suivi des ressources actives – et associées à un service donné – leur prendrait la majeure partie de leur temps, leur laissant peu de temps pour effectuer les modifications requises.
Discovery fournit les moyens par lesquels les composants d'un environnement d'orchestration de conteneurs peuvent fonctionner en temps réel et permet aux proxys d'équilibrage de charge de faire évoluer les applications et les services en s'assurant qu'ils disposent des informations dont ils ont besoin pour sélectionner des ressources à la demande.