7 meilleures alternatives Istio 2021
Istio est un service mesh, qui facilite la communication entre différents microservices dans une application.
Bien qu'Istio soit l'un des meilleurs maillages de services et l'un des rares que beaucoup connaissent, ce n'est pas le seul sur le marché. Au fur et à mesure que les maillages de services se généralisent, de plus en plus apparaissent comme des concurrents dignes d'Istio.
L'un des problèmes auxquels les gens sont confrontés lors de l'utilisation d'Istio est qu'il peut être assez complexe à configurer et qu'il n'est pas aussi rapide que certaines autres options. Lorsqu'il y a plus de demandes, la latence augmente ; dans la vraie vie, cela signifie que l'application devient plus lente pour l'utilisateur.
Il existe d'autres services maillés, y compris certains qui sont beaucoup plus rapides, comme le prouvent les tests. Aujourd'hui, nous allons explorer sept alternatives Istio.
Qu'est-ce qu'Istio ? Qu'est-ce qu'un service Mesh ?
Un service mesh facilite la gestion d'une application en comblant les écarts entre les différents microservices de l'application. Non seulement vous pouvez connecter les services à l'aide d'un maillage de services, mais vous pouvez les surveiller et les contrôler, ce qui vous donne une flexibilité sur votre application.
Vous n'aurez pas besoin de modifier le code dans l'application elle-même pour contrôler la façon dont les différents microservices de l'application partagent des données entre eux ou contrôlent les politiques d'accès - un maillage de services s'en charge.
Un service mesh fonctionne comme une couche d'infrastructure. En surveillant la façon dont différents microservices et parties d'une application interagissent les uns avec les autres à l'aide du maillage de services, vous pouvez détecter les défauts et les corriger, ce qui améliore les performances à long terme et réduit les temps d'arrêt.
Pour offrir une excellente expérience utilisateur, une application doit avoir ses parties communiquant directement les unes avec les autres et extrayant des informations.
Par exemple, Uber Eats doit examiner les différents restaurants actuellement ouverts, voir quelles options de menu sont actuellement disponibles, vérifier les délais de livraison et les prix estimés, vérifier les délais de livraison estimés mis à jour en fonction de l'endroit où se trouve le chauffeur, puis relayer toutes ces informations. à l'utilisateur.
En utilisant un service mesh comme Istio - et Istio est utilisé par de nombreuses entreprises de premier plan - vous pouvez améliorer l'expérience utilisateur et offrir un parcours utilisateur plus fluide et moins interrompu.
Non seulement cela, mais vous pouvez détecter les failles de sécurité et les corriger, en évitant les problèmes de cryptage ou d'autres fonctionnalités de sécurité sur la route.
Étant donné qu'il se superpose à l'infrastructure existante de l'application, il ne nécessite pas de temps système supplémentaire pour les développeurs ou vous ne devez pas coder tout ce qu'il accomplit dans les services eux-mêmes.
Service Mesh vs Microservices : quelle est la différence ?
Les microservices sont-ils identiques à un service mesh ? Les microservices ne remplissent-ils pas déjà l'objectif d'un maillage de services ?
Les microservices sont des services individuels au sein d'une application. Ils travaillent ensemble pour faire de l'application un tout.
En individualisant ces microservices et en les séparant les uns des autres, les développeurs peuvent travailler et améliorer l'un de ces microservices sans avoir à redéployer l'ensemble de l'application. Bien entendu, étant donné que les microservices doivent fonctionner ensemble, vous devrez rendre possible la communication entre eux.
Bien que vous puissiez coder cela dans les microservices sans utiliser de maillage de services, cela peut rapidement devenir compliqué. C'est là qu'un service mesh entre en jeu, car il sert de couche supplémentaire d'infrastructure pour permettre la communication.
Meilleures alternatives Istio
1. Linkerd


La meilleure alternative à Istio est Linkerd, un service mesh généralement connu pour être beaucoup plus rapide qu'Istio. A l'origine, Linkerd a été créé par Buoyant, qui continue de soutenir le projet.
Les deux tests exécutés par Linkerd et les tests exécutés par Kinvolk (maintenant partie de Microsoft) ont montré que Linkerd est sensiblement plus rapide qu'Istio.
Pour exécuter son test, Kinvolk visait à augmenter le taux de requêtes HTTP par seconde, en imitant à quoi ressemblerait une application sous contrainte pour voir les latences résultantes et déterminer comment l'expérience utilisateur serait affectée dans la vie réelle.
En utilisant un taux constant de requêtes par seconde et en le comparant au même RPS (requêtes par seconde) sans service mesh, Kinvolk a pu déterminer les performances du service mesh.
Il y a eu un léger problème dans le processus de test, en ce sens que la version d'origine d'Istio utilisée n'était pas optimisée pour les tests de performances. Même lorsqu'ils ont testé à nouveau en utilisant une nouvelle version d'Istio, ils ont constaté qu'elle imposait une limite de CPU ; ils ont ensuite supprimé cette limitation, afin qu'ils puissent être sûrs d'obtenir une comparaison précise entre Istio et Linkerd.
D'un autre côté, lorsqu'ils ont utilisé Linkerd pour le test, ils n'ont fait aucun réglage mais s'en sont plutôt tenus à la dernière version, telle quelle.


Voici les résultats du test :
- La latence a été considérablement augmentée lors de l'utilisation d'Istio par rapport à Linkerd. En d'autres termes, dans la vraie vie, Istio est plus lent et offre une expérience utilisateur moins optimale pour le client.
- Istio, les versions réglées et non réglées, ont utilisé beaucoup plus de mémoire et de processeur que Linkerd.
- Cependant, lorsque la charge était la plus élevée, les proxys de Linkerd utilisaient plus de CPU qu'Istio.


Pour voir tous les détails des tests, les références et les méthodes utilisées, et plus, lisez à ce sujet sur le blog de Kinvolk.
Plus tard, Linkerd lui-même a réexécuté ces tests avec quelques variantes. Par exemple, alors que les tests Kinvolk utilisaient un RPS de 500 à 600, les tests de Linkerd, qui utilisaient également une version en l'état de Linkerd, testaient une plage de RPS plus large : 20 RPS jusqu'à 2 000 RPS.


Les résultats étaient les mêmes : Linkerd a considérablement surpassé Istio, à la fois en termes de vitesse et de consommation CPU. Vous pouvez voir toutes les données des résultats ici.


La principale différence entre Istio et Linkerd, et celle qui conduit à cette différence dramatique, est qu'Istio utilise le proxy Envoy (nous en parlerons plus tard), bien qu'il s'agisse d'une version étendue, tandis qu'Istio utilise un proxy basé sur Rust.
Envoy est un excellent proxy, mais il est conçu à des fins générales et n'est pas spécifiquement conçu pour les services maillés. Linkerd, en utilisant Rust, a plutôt développé son propre "micro proxy" avec un cas d'utilisation de service mesh uniquement pour éviter les vulnérabilités qui peuvent découler de l'utilisation d'Envoy.
Linkerd appelle son proxy un "micro proxy" car, étant donné qu'il n'est pas conçu comme un proxy à usage général avec une flexibilité pour de nombreux cas d'utilisation, il est beaucoup moins complexe, permettant ainsi plus de vitesse.
Il convient également de mentionner Conduit, une fois que nous parlons de Linkerd.


Conduit était une version « allégée » de Linkerd développée par l'équipe Linkerd, conçue pour être une solution plus simple tout en permettant de bénéficier des avantages d'un service mesh : communication entre les microservices, observabilité, surveillance, etc.
À l'origine, Conduit était séparé de l'écosystème principal de Linkerd. Néanmoins, après que l'équipe Linkerd ait perfectionné Conduit au point de penser que cela pourrait être leur produit principal, ils ont utilisé Conduit comme base de leur nouvelle version de Linkerd.
Ainsi, Conduit et Linkerd sont désormais identiques, et il n'y a pas de référentiel ou de produit séparé ; vous pouvez consulter le référentiel Linkerd sur GitHub ici.
Comme je l'ai mentionné précédemment, Linkerd est la meilleure alternative Istio, donc si vous avez vu Conduit mentionné en ligne et que vous souhaitez l'essayer, vous devez maintenant utiliser Linkerd à la place.
2. Kubernetes


La prochaine alternative Istio sur notre liste est Kubernetes. Oui, ce n'est pas un service mesh, mais quand on parle de microservices, on ne peut pas continuer sans parler un peu de conteneurisation, qui va de pair avec les microservices.
Kubernetes vous permet de déployer et de gérer automatiquement des applications conteneurisées. Vous pouvez utiliser Kubernetes avec ou sans Istio ; vous n'avez pas besoin d'Istio pour l'utiliser.


Kubernetes se concentre davantage sur le déploiement et la mise à l'échelle des applications, par opposition à la partie communication. En communiquant avec le serveur d'API Kubernetes, les nœuds d'un cluster Kubernetes peuvent obtenir des informations sur tous les services du cluster.
L'une des raisons d'utiliser Kubernetes sans Istio est que l'utilisation d'Istio peut entraîner une latence accrue et utiliser plus de CPU par opposition à l'utilisation des fonctions intégrées dans Kubernetes. Cependant, tout dépend de la taille et de l'échelle de l'application et du nombre de pods.
3. Kong Mesh


Kong est la prochaine alternative Istio sur notre liste. Contrairement à Istio, il ne s'agit pas principalement d'un maillage de services mais d'une passerelle API et, selon votre situation et vos besoins, il peut s'agir d'un outil plus approprié à utiliser.
Néanmoins, Kong propose également un service mesh en tant que produit distinct, appelé Kong Mesh, qui est également basé sur Envoy. Kong Mesh est conçu pour fonctionner à la fois avec Kubernetes et les machines virtuelles, ce qui en fait l'un des meilleurs services mesh si vous utilisez les deux, mieux qu'Istio, qui a été principalement créé pour Kubernetes.


Par exemple, comme le montre cette étude de cas, MS3 a choisi Kong Mesh pour cette raison : sa prise en charge des machines virtuelles et de Kubernetes et la possibilité de migrer entre les deux, ainsi que ses hautes performances.
Avec prise en charge multicloud, multicluster et multiplateforme pour Kubernetes et les machines virtuelles, le service mesh de Kong découvre et se connecte automatiquement à d'autres services.
Alors, quelle est la différence entre Istio ou Kong Mesh et la passerelle API Kong ?
Alors qu'un service mesh comme Istio ne traitera que la communication entre les microservices de votre application, une passerelle API comme Kong peut aller au-delà et acheminer les appels d'API internes et externes.
Une passerelle API est un volet de données qui reçoit les demandes du client et renvoie ces demandes aux API.
Un service mesh comme Istio possède à la fois un volet de contrôle et un volet de données, mais une passerelle API comme Kong peut avoir le volet de contrôle intégré au plan de données.
Vous pouvez utiliser une passerelle API comme Kong avec un service mesh, ce qui est en fait meilleur pour la sécurité.
Le sujet du maillage de services par rapport à la passerelle API est très compliqué et technique. Beaucoup a été écrit sur les différences entre les deux et si vous avez besoin d'une passerelle API si vous utilisez un service mesh.
Bien qu'il existe un chevauchement des technologies, ainsi que des capacités telles que le routage du trafic, un maillage de services ne remplace pas la gestion des API. Ce billet de blog l'explique bien.
Si vous souhaitez approfondir le sujet, Kong lui-même propose un ebook complet consacré uniquement aux différences entre une passerelle API et un maillage de services.
4. Apigee


Apigee est un outil de gestion d'API et la prochaine alternative Istio sur notre liste. Après avoir été racheté par Google, il fait désormais partie de Google Cloud.
De la découverte des API au suivi et à l'analyse, la gestion de vos API n'a jamais été aussi simple qu'avec Apigee. Apigee sert également de proxy, isolant le front-end du back-end et vous permettant d'apporter des modifications à la base de données et d'autres modifications sans perturber la convivialité de l'application du côté du client.
Comme vous devrez être découvert par les développeurs si vous souhaitez qu'ils utilisent votre API pour des applications externes, Apigee vous permet de le faire et de contrôler différents niveaux d'accès et de fonctionnalités ; il vous permet de contrôler qui peut utiliser chaque niveau de votre service API et ce qu'il peut en faire.
Ce qui est cool, c'est que vous pouvez choisir entre Apigee et Apigee Hybrid. Alors qu'Apigee est une solution SaaS entièrement hébergée dans l'environnement d'Apigee, la solution hybride vous permet d'avoir le volet de gestion hébergé dans Apigee, mais le volet d'exécution hébergé dans un fournisseur de cloud de votre choix ou vos propres serveurs, gardant ainsi vos données dans un environnement.
Apigee diffère d'Istio en ce qu'Istio se concentre sur la gestion des microservices, tandis qu'Apigee vous aide à gérer vos API et à les mettre à la disposition des développeurs. Alors qu'Istio et d'autres services mesh se concentrent sur l'intercommunication au sein d'une application, Apigee et les API vous permettent de vous connecter à des applications externes créées par des tiers.
Néanmoins, après avoir acheté Apigee, l'équipe Google a collaboré avec l'équipe Istio pour intégrer la gestion des API dans Istio. Jusque-là, comme il n'y avait pas d'intégration formelle, vous deviez utiliser Apigee en dehors d'Istio et le connecter à votre maillage de services, votre maillage de services étant traité comme tout autre service cible.
Avec l'intégration native, vous pouvez désormais exposer un ou deux de vos microservices en tant qu'API. Sinon, si vous utilisez déjà Apigee, vous pouvez y créer un maillage de services et déplacer des microservices dans ce maillage, comme expliqué par Google.
5. Envoyé


La prochaine alternative Istio sur notre liste est Envoy. Il diffère d'Istio en ce sens qu'Istio utilise une version étendue du proxy Envoy, Envoy lui-même peut être utilisé pour créer d'autres maillages de services si vous ne souhaitez pas utiliser Istio pour une raison quelconque.
Bien qu'Envoy ne soit pas le seul proxy disponible, c'est l'une des meilleures options. Écrit en C++ et créé à l'origine chez Lyft (la société de covoiturage), il est facilement extensible, léger et facile à utiliser.
En soi, Envoy peut également être utilisé pour des services et applications individuels, sans service mesh comme Istio. Cependant, lorsque vous créez un maillage de services et utilisez Envoy comme proxy pour les side-cars et le proxy Edge, vous pourrez observer l'ensemble de votre réseau de services et résoudre les problèmes au fur et à mesure qu'ils surviennent.
Envoy est entièrement open source, ce qui en fait un bon choix pour travailler avec. Il a un faible encombrement et vous pouvez l'utiliser avec n'importe quel langage d'application.
Envoy est haute performance. Avec des fonctionnalités telles que les nouvelles tentatives automatiques et la limitation globale du débit, Envoy permet également un équilibrage de charge avancé.
6. Maillage d'applications AWS


Une autre bonne alternative à Istio est AWS App Mesh, qui est également un service mesh conçu pour améliorer la communication entre les services sur tous les types d'infrastructure informatique.
Si vous exécutez vos applications sur l'infrastructure Amazon, alors Amazon Web Services App Mesh est la meilleure alternative Istio pour vous. Comme Linkerd, il utilise le proxy Envoy.
Pour être plus précis, AWS App Mesh prend en charge l'infrastructure de calcul suivante :
- Amazon EC2
- Amazon ECS
- Amazon EKS
- AWS Fargate
- Kubernetes s'exécutant sur Amazon Web Services
- AWS Outposts pour les services exécutés sur site
AWS App Mesh connecte tous vos services, achemine le trafic entre eux et vous permet de surveiller et de contrôler le trafic sans mettre à jour le code de chaque service dans l'application et sans y intégrer ces règles. Vous pouvez définir l'accès d'authentification de sorte que seuls les services que vous autorisez se connectent les uns aux autres, et vous pouvez crypter tout le trafic réseau même lorsqu'ils se trouvent dans votre réseau privé.
De plus, AWS App Mesh s'intègre aux outils de surveillance et de traçage d'Amazon. Vous pouvez l'utiliser pour exporter vos données de surveillance vers le service de surveillance Amazon CloudWatch ou le système de traçage distribué AWS X-Ray.
En fait, vous pouvez exporter les données vers n'importe quel partenaire AWS pour la surveillance. Selon Amazon, ces partenaires d'Amazon Web Services incluent Datadog, Neuvector, Weaveworks, Aqua et bien d'autres.
Selon Vedcraft, AWS App Mesh est également un meilleur choix qu'Istio si vous disposez de services dans plusieurs langages de programmation et que vous en avez besoin pour communiquer entre eux.
De plus, Istio peut entraîner des coûts opérationnels plus élevés qu'AWS Service Mesh, et vous devrez faire face à des frais généraux opérationnels plus élevés à moins que vous n'utilisiez le service géré d'Istio. AWS App Mesh est un service entièrement géré, vous n'aurez donc pas besoin d'installer d'infrastructure de votre côté.
7. Consul


La dernière alternative Istio sur notre liste est Consul, un maillage de services multiplateforme. À l'aide de Consul, vous pouvez configurer un maillage de services entre plusieurs clusters et environnements tout en maintenant et en appliquant des politiques et des fonctionnalités de sécurité cohérentes pour le trafic réseau entre les services.
Vous pouvez observer vos métriques dans l'interface utilisateur de Consul ou exporter vos données vers une plate-forme de surveillance tierce pour vérifier les problèmes de santé.
Vous pouvez utiliser Consul pour les applications cloud ou celles exécutées sur site. Il peut également être utilisé pour les hybrides.
Il y a un certain nombre d'avantages à utiliser le service mesh Consul au lieu d'Istio. Par exemple, pour profiter pleinement d'Istio, vous devez déployer plusieurs services et un catalogue de services tiers est requis ; Consul inclut tout cela et annule le besoin de systèmes externes, bien que des systèmes externes puissent être utilisés pour augmenter le comportement.
Pour une comparaison plus approfondie d'Istio vs Consul et des avantages offerts par Consul par rapport à Istio, consultez le propre article de blog de Consul à ce sujet.
Consul, développé par Hashicorp, est globalement plus simple d'utilisation et moins complexe qu'Istio. De cette façon, il est similaire à Linkerd, ce qui en fait une excellente alternative Istio si vous connaissez déjà les produits Hashicorp.
De plus, selon Logz.io, Consul prend en charge certains backends de traçage tels que OpenTracing, DataDog et Honeycomb, contrairement à Istio.
Istio est-il le meilleur service Mesh ?
La scène du service mesh est encore assez récente. Il n'y a pas encore beaucoup d'alternatives à Istio sur le marché.
Bien qu'Istio soit peut-être le plus connu, avec Linkerd, il présente certains inconvénients, comme je l'ai expliqué tout au long de cet article. Par exemple, cela peut être assez complexe à mettre en place ; il utilise une version étendue d'un proxy à usage général par opposition à un micro proxy comme Linkerd.
Dans l'ensemble, Linkerd est la meilleure alternative à Istio, battant Istio haut la main en termes de facilité d'utilisation, de vitesse et d'utilisation du processeur. Néanmoins, il existe également d'autres excellentes alternatives - si vous aimez Amazon Web Services, AWS Service Mesh est le meilleur choix.
Les maillages de service comme Consul Connect ne sont pas bien connus, mais de plus en plus apparaissent avec le temps. Ils promettent une vitesse supplémentaire, et les projecteurs se détournent lentement d'Istio à mesure que de plus en plus de personnes prennent conscience des maillages de services et de ces alternatives Istio, même si Istio est toujours la norme de l'industrie.
Dans quelques années, ne soyez pas surpris si encore plus d'alternatives Istio émergent sur le marché alors que de plus en plus de gens commencent à chercher quelque chose de plus rapide et de moins complexe.
Si vous utilisez déjà Istio, cependant, le passage à un autre service mesh comme Linkerd peut être un processus un peu compliqué. Dans ce cas, vous devrez vous demander si cela en vaut la peine.
Conclusion : Quelle est la meilleure alternative à Istio ?
Linkerd est la meilleure alternative Istio.
Comme je l'ai démontré, et comme le prouvent les tests, il est beaucoup plus rapide qu'Istio, avec une latence réduite dans des situations réelles.





Laisser un commentaire