La version 2.0 de HAProxy est publiée avec de nouvelles fonctionnalités,
telles que la prise en charge des environnements cloud
HAProxy Technologies a annoncé à la fin de la semaine dernière la disponibilité de la version 2.0 de HAProxy. L'entreprise a annoncé que cette version de HAProxy apporte de nombreuses nouvelles fonctionnalités essentielles pour les environnements cloud et les environnements conteneurisés, tout en conservant ses performances et sa fiabilité. Cette version améliore les fonctionnalités qui répondent aux conditions uniques des environnements de cloud et de conteneur. HAProxy 2.0 est une version LTS.
HAProxy est un logiciel gratuit et open source qui fournit un équilibreur de charge et un serveur proxy pour les applications TCP et HTTP qui répartissent les demandes sur plusieurs serveurs. Il est écrit en C et a la réputation d'être rapide et efficace. Il est publié pour la première fois en décembre 2001 sous la licence GNU/GPL v2. Même si, à la manière de Nginx, il n’est pas classé comme le serveur Web le plus utilisé par les sites les plus fréquentés au monde, HAProxy est utilisé par un certain nombre de sites Web de premier plan, notamment GoDaddy, GitHub, Bitbucket, Stack Overflow, Reddit, Speedtest.net, Tumblr, Twitter et Tuenti. Il est utilisé dans le produit OpsWorks d'Amazon Web Services.
Dans sa nouvelle mise à jour, HAProxy 2.0 ajoute un ensemble puissant de fonctionnalités ainsi que des fonctionnalités entièrement nouvelles qui améliorent encore sa prise en charge transparente de l'intégration dans les architectures modernes. Cela inclut les tentatives de couche 7, les métriques Prometheus, l’observation du trafic, l’extensibilité polyglotte et la prise en charge de gRPC. Parallèlement à cette version, HAProxy Technologies fournit également le contrôleur HAProxy Kubernetes Ingress et l'API HAProxy Data Plane qui fournit une API REST moderne pour la configuration et la gestion de HAProxy. Voyons de plus près les fonctionnalités présentes dans cette version 2.0 de HAProxy :
Filtrage et journalisation dans le cloud
Pour cette nouvelle fonctionnalité, HAProxy Technologies annonce que régler HAProxy pour des performances optimales est maintenant encore plus simple. Depuis la version 1.8, vous avez été en mesure de définir la directive « nbthread » pour permettre à HAProxy de fonctionner sur plusieurs threads, ce qui vous permet de mieux utiliser les machines dotées de processeurs multicœurs. À partir de la version 2.0, HAProxy le configure maintenant automatiquement pour vous. Il va immédiatement définir le nombre de threads de travail correspondant au nombre de cœurs de processeur disponibles de la machine. Cela signifie qu'HAProxy peut évoluer pour s'adapter à n'importe quel environnement avec moins de configuration manuelle.
Cela simplifie également la ligne « bind », car il n’est plus nécessaire de spécifier un paramètre « process ». Les connexions seront distribuées aux threads avec le moins de connexions actives. De plus, deux nouveaux paramètres de construction ont été ajoutés : « MAX_THREADS » et « MAX_PROCS » qui évitent d’allouer inutilement d’énormes structures. Cela peut être très utile sur les périphériques intégrés qui n'ont pas besoin de prendre en charge « MAX_THREADS = 64 ». La journalisation est maintenant plus facile à adapter aux environnements conteneurisés. Vous pouvez vous connecter directement à stdout et stderr ou simplement à un descripteur de fichier. Découvrez la syntaxe à utiliser dans la note de version de HAProxy 2.0 sur son site Web.
gRPC
HAProxy 2.0 fournit une prise en charge complète du framework RPC open source, gRPC . Il permet la diffusion bidirectionnelle des données, la détection des messages gRPC et la journalisation du trafic gRPC. Le protocole gRPC est une infrastructure RPC moderne et hautes performances pouvant fonctionner dans n'importe quel environnement. À l'aide des tampons de protocole, il est capable de sérialiser les messages dans un format binaire compact et potentiellement plus efficace que JSON. Pour commencer à utiliser gRPC dans HAProxy, il vous suffit de faire une configuration HTTP/2 de bout en bout standard. Les ACL standard s'appliquent et permettent une correspondance basée sur le chemin. En outre, deux nouveaux convertisseurs « protobuf et « ungrpc » ont été introduits pour vous permettre d'extraire les messages bruts de protocoles tampons.
Couche 7 tentatives
Réduire les temps d'arrêt implique souvent de mettre en place des mécanismes de prévoyance intelligents. Depuis sa création, HAProxy a pris en charge le réessaie d’une connexion TCP ayant échoué en incluant la directive « option redispatch ». Avec HAProxy 2.0, il peut également réessayer à partir d’un autre serveur de la couche 7 pour les demandes HTTP ayant échoué. La nouvelle directive de configuration, « retry-on » peut être utilisé dans un « defaults », « listen » ou la section « backend ». Le nombre de nouvelles tentatives peut être spécifié à l'aide de la directive « retries ». Il est important que vous sachiez comment votre application se comporte avec les tentatives de couche 7 activées.
Il faut faire preuve de prudence lors de nouvelles tentatives telles que les demandes POST. HAProxy 2.0 introduit également une nouvelle action « http-request » appelée « disable-l7-retry » qui vous permet de désactiver toute tentative de nouvelle tentative si la requête échoue pour une raison autre que l’échec de la connexion. Cela peut être utile, par exemple, pour vous assurer que les demandes POST ne sont pas retentées. Vous pouvez retrouver dans la note version de HAProxy 2.0 des exemples de configurations qui activent les tentatives de couche 7.
L’API Data Plane
Dans le paysage actuel du cloud, les services éphémères naissent et meurent rapidement, les déploiements ont lieu en permanence et la configuration doit être actualisée en permanence. La nouvelle API de plan de données fournit une API REST moderne permettant de configurer HAProxy à la volée. Vous pouvez maintenant ajouter et supprimer dynamiquement des frontaux, des backends et des serveurs. Vous pouvez créer des règles ACL, insérer des directives de routage HTTP, définir des liaisons IP et de port, etc. L'API met à jour le fichier de configuration selon les besoins, rechargeant le processus HAProxy si nécessaire.
HAProxy s'est révélé dynamique et extensible avec son support Lua intégré et son moteur de traitement de déchargement et de traitement en continu. La nouvelle API Data Plane accélère ce pas en fournissant une véritable gestion dynamique de la configuration. Le démon de l'API s'exécute en tant que processus sidecar, que HAProxy peut gérer à l'aide de la directive « program » du nouveau Process Manager. L'API HAProxy Data Plane prend en charge les transactions, ce qui permet d'appliquer plusieurs modifications simultanément. Cela vous donne la confiance ultime que les mises à jour sont atomiques.
Kubernetes Ingress Controller
Il existe depuis 2017 un contrôleur HAProxy Ingress pour Kubernetes. HAProxy Technologies a apporté des fonctionnalités telles que l’ajout de la découverte de services DNS. Le nouveau contrôleur d’ingénierie HAProxy Kubernetes fournit une entrée hautes performances pour vos applications hébergées sur Kubernetes. Il prend en charge le déchargement TLS, le routage de couche 7, la limitation de débit, la liste blanche et les meilleures performances pour lesquelles HAProxy est réputé. Les entrées peuvent être configurées via des ressources ConfigMap ou des annotations. Il est également possible de définir des secrets pour le stockage des certificats TLS.
HAProxy 2.0 apporte la prise en charge LTS pour les fonctionnalités susmentionnées, ainsi que pour les fonctionnalités qui ont été introduites ou améliorées au cours de la version 1.9. Il introduit également de nouveaux convertisseurs qui vous permettent de transformer des données dans HAProxy et sont généralement suivis après une extraction. Il ne s’agit là que d’un aperçu des nombreuses fonctionnalités introduites dans HAProxy 2.0.
Bien entendu, a indiqué HAProxy Technologies, l'un des ajouts les plus marquants dans HAProxy 2.0 est la nouvelle API Data Plane qui vous permet de configurer dynamiquement HAProxy à l'aide d'appels HTTP RESTful. Outre cela, l’entreprise a également annoncé qu’à part les nouvelles fonctionnalités incluses dans cette version, HAProxy 2.0 ouvre la voie à de nombreuses mises à jour passionnantes que, avec une nouvelle cadence de parution, vous verrez plus souvent. Avec ces nouvelles fonctionnalités, HAProxy parviendra-t-il à concurrencer Nginx.
Source : HAProxy Technologies
Et vous ?
Que pensez-vous des nouvelles fonctionnalités apportées à cette version de HAProxy ?
Comment le trouvez-vous par rapport aux autres serveurs web ?
Voir aussi
Nginx est maintenant le serveur Web le plus utilisé par les sites les plus fréquentés au monde devant Apache et Microsoft IIS, selon W3Tech
Serveurs Web : Nginx détient désormais un tiers des parts de marché tandis qu'Apache chute en dessous des 50 % d'après W3Tech
F5 acquiert NGINX pour faire le pont entre les NetOps et les DevOps et fournir aux clients des services applicatifs cohérents
Partager