Comparaison des prix sur Managed Kubernetes (2020)

Note de traduction.: L'ingénieur DevOps américain Sid Palas, utilisant la récente annonce de Google Cloud comme point de départ, a comparé le coût du service Kubernetes géré (en différentes configurations) des principaux fournisseurs de cloud au monde. Un atout supplémentaire de son travail fut la publication d'un Jupyter Notebook, permettant (avec des connaissances minimales en Python) d'ajuster les calculs à ses besoins.

TL;DR: Azure et Digital Ocean ne facturent pas les ressources de calcul utilisées pour la couche de contrôle (control plane), ce qui les rend adaptés au déploiement de nombreux petits clusters. Pour le lancement d'un petit nombre de grands clusters, GKE est le meilleur choix. De plus, il est possible de réduire considérablement les coûts en utilisant des nœuds préemptibles / spot / à faible priorité ou en « s'abonnant » à l'utilisation prolongée des mêmes nœuds (cette option s'applique à toutes les plateformes).

Comparaison des prix sur Managed Kubernetes (2020)
Taille du cluster (nombre de travailleurs)

Informations générales

La récente annonce de Google Cloud concernant l'introduction d'une facturation de 10 cents par heure pour chaque cluster en GKE m'a incité à analyser les prix des principales offres dans le domaine de Kubernetes géré.

Comparaison des prix sur Managed Kubernetes (2020)
Cette annonce a beaucoup déçu certains…

Les protagonistes de l'article sont :

Répartition des coûts

Les coûts totaux d'utilisation de Kubernetes sur chacune de ces plateformes sont composés des éléments suivants :

  • Frais pour la gestion du cluster ;
  • Équilibrage de charge (pour Ingress) ;
  • Ressources de calcul (vCPU et mémoire) des travailleurs ;
  • Trafic Egress ;
  • Stockage persistant ;
  • Traitement des données par l'équilibreur de charge.

De plus, les fournisseurs de cloud offrent des réductions significatives si le client souhaite / peut utiliser des nœuds préemptibles, spot ou à faible priorité OU s'engage à utiliser les mêmes nœuds pendant 1 à 3 ans.

Il convient de souligner que, bien que le prix soit une bonne base pour comparer et évaluer les fournisseurs de services, d'autres facteurs doivent également être pris en compte :

  • Temps de fonctionnement (Service Level Agreement) ;
  • L'écosystème de cloud environnant ;
  • Versions K8s disponibles ;
  • Qualité de la documentation / des outils.

Cependant, ces facteurs dépassent le cadre de cet article / étude. Dans une note de blog de février de StackRox les facteurs non tarifaires pour EKS, AKS et GKE sont examinés en détail.

Bloc-notes Jupyter

Pour faciliter la recherche de la solution la plus avantageuse, j'ai développé le bloc-notes Jupyter, en utilisant plotly + ipywidgets. Il permet de comparer les offres des fournisseurs pour différentes tailles de clusters et gammes de services.

Vous pouvez vous entraîner avec la version en direct du bloc-notes sur Binder :

Comparaison des prix sur Managed Kubernetes (2020)
managed-kubernetes-price-exploration.ipynb sur mybinder.org

Faites-moi savoir si les calculs ou les tarifs de base sont incorrects (vous pouvez le faire par un problème ou une demande de tirage sur GitHub — voici le dépôt).

Conclusions

Malheureusement, il y a trop de nuances pour donner des recommandations plus concrètes que celles incluses dans le paragraphe TL;DR au début. Cependant, certaines conclusions peuvent tout de même être tirées :

  • Contrairement à GKE et EKS, AKS et Digital Ocean ne facturent pas les ressources de la couche de gestion. AKS et DO sont plus avantageux si l'architecture comprend de nombreux petits clusters (par exemple, un cluster par développeur ou client).
  • Des ressources informatiques légèrement moins chères de GKE le rendent plus avantageux à mesure que la taille des clusters augmente*.
  • L'utilisation de nœuds remplaçables ou l'attachement à long terme aux nœuds permet de réduire les coûts de plus de 50%. Remarque : Digital Ocean n'a pas de telles réductions.
  • Les frais pour le trafic sortant chez Google sont plus élevés, mais le facteur déterminant pour le calcul est le coût des ressources de calcul (sauf si votre cluster est une source de volumes importants de données sortantes).
  • Le choix des types de machines en fonction des besoins des charges de travail en CPU et mémoire permettra d'éviter des frais inutiles pour des ressources non utilisées.
  • Digital Ocean facture moins pour le vCPU et plus pour la mémoire par rapport aux autres plateformes — cela peut être un facteur décisif pour certains types de charges de travail.

* Remarque : l'analyse utilise des données pour des nœuds de calcul à usage général (general-purpose). Ce sont des instances n1 GCP Compute Engine, m5 AWS ec2, machines virtuelles D2v3 Azure et droplet DO avec CPU dédiés. D'autre part, des recherches peuvent également être menées parmi d'autres types de machines virtuelles (burstable, entry-level). À première vue, le coût des machines virtuelles dépend de manière linéaire du nombre de vCPU et de la quantité de mémoire, mais je ne suis pas sûr que cette hypothèse reste valide pour des rapports mémoire/CPU fortement non standards.

Dans l'article Le Guide Ultime des Coûts Kubernetes : AWS vs GCP vs Azure vs Digital Ocean, publiée en 2018, un cluster de référence avec 100 cœurs vCPU et 400 Go de mémoire a été utilisé. Pour comparaison, selon mes calculs, un tel cluster sur chacune de ces plateformes (pour les instances à la demande) coûterait la somme suivante :

  • AKS : 51465 USD/an
  • EKS : 43138 USD/an
  • GKE : 30870 USD/an
  • DO : 36131 USD/an

J'espère que cet article ainsi que le carnet de notes vous aideront à évaluer les principales offres de Kubernetes gérées et/ou à économiser sur l'infrastructure cloud en profitant des réductions et d'autres opportunités.

P.S. de l'auteur

Lisez aussi dans notre blog :

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster