Confronto dei costi per Managed Kubernetes (2020)

Nota del traduttore.: L'ingegnere DevOps americano Sid Palas, utilizzando l'annuncio recente di Google Cloud , ha effettuato un confronto dei costi del servizio Managed Kubernetes (in diverse configurazioni) offerto dai principali provider cloud del mondo. Un ulteriore vantaggio del suo lavoro è stata la pubblicazione del relativo Jupyter Notebook, che consente (con una minima conoscenza di Python) di adattare i calcoli effettuati alle proprie esigenze.

TL;DR: Azure e Digital Ocean non addebitano costi per le risorse di calcolo utilizzate per il layer di controllo (control plane), il che li rende una scelta appropriata per il deployment di molte piccole istanze. Per avviare un numero ridotto di grandi cluster, GKE è la scelta migliore. Inoltre, è possibile ridurre significativamente i costi utilizzando nodi spot/evictable/low-priority o «abbonandosi» all'uso prolungato degli stessi nodi (questo vale per tutte le piattaforme).

Confronto dei costi per Managed Kubernetes (2020)
Dimensione del cluster (numero di worker)

Panoramica

L'annuncio recente di Google Cloud sull'inizio dell'addebito di 10 centesimi all'ora per ogni cluster in GKE mi ha spinto ad analizzare i prezzi delle principali offerte nel settore del Kubernetes gestito (managed).

Confronto dei costi per Managed Kubernetes (2020)
Questo annuncio ha sconvolto molti...

I protagonisti dell'articolo sono:

Suddivisione dei costi

I costi generali per l'utilizzo di Kubernetes su ciascuna di queste piattaforme sono composti dai seguenti elementi:

  • Commissione per la gestione del cluster;
  • Bilanciamento del carico (per Ingress);
  • Risorse computazionali (vCPU e memoria) dei worker;
  • Traffico in uscita;
  • Storage persistente;
  • Elaborazione dei dati dal bilanciatore di carico.

Inoltre, i fornitori di cloud offrono significativi sconti se il cliente è disposto/puo utilizzare nodi preemptible, spot o nodi a bassa priorità, OPPURE si impegna a utilizzare gli stessi nodi per un periodo di 1-3 anni.

Vale la pena sottolineare che, sebbene il costo rappresenti una base utile per confrontare e valutare i fornitori di servizi, è necessario considerare anche altri fattori:

  • Uptime (Service Level Agreement);
  • L'ecosistema cloud circostante;
  • Le versioni disponibili di K8s;
  • La qualità della documentazione/strumentazione.

Tuttavia, questi fattori esulano dallo scopo di questo articolo/ricerca. In nella nota di febbraio del blog StackRox vengono esaminati in dettaglio i fattori non legati al prezzo per EKS, AKS e GKE.

Notebook Jupyter

Per semplificare la ricerca della soluzione più vantaggiosa, ho sviluppato il notebook Jupyter, utilizzando plotly + ipywidgets. Consente di confrontare le offerte dei fornitori per diverse dimensioni di cluster e set di servizi.

Puoi esercitarti con la versione live del notebook in Binder:

Confronto dei costi per Managed Kubernetes (2020)
managed-kubernetes-price-exploration.ipynb su mybinder.org

Fami sapere se i calcoli o le stime iniziali sono errati (puoi farlo tramite un issue o un pull request su GitHub — ecco il repository).

Conclusioni

Purtroppo, ci sono troppe sfumature per fornire raccomandazioni più specifiche rispetto a quelle incluse nel paragrafo TL;DR all'inizio. Tuttavia, alcune conclusioni possono comunque essere fatte:

  • A differenza di GKE e EKS, AKS e Digital Ocean non addebitano i costi per le risorse dello strato di gestione. AKS e DO sono più vantaggiosi se l'architettura include molti piccoli cluster (ad esempio, uno per ogni sviluppatore o ogni cliente).
  • Le risorse di calcolo leggermente più economiche di GKE lo rendono più vantaggioso all'aumentare delle dimensioni dei cluster*.
  • L'utilizzo di nodi sostituibili o l'assegnazione a lungo termine di nodi consente di ridurre i costi di oltre il 50%. Nota: Digital Ocean non offre queste scontistiche.
  • Le spese per il traffico in uscita su Google sono superiori, tuttavia, il fattore determinante nel calcolo è il costo delle risorse di calcolo (a meno che il tuo cluster non sia sorgente di un volume significativo di dati in uscita).
  • La scelta dei tipi di macchine in base alle esigenze delle workload in termini di CPU e memoria permette di evitare spese inutili per risorse non richieste.
  • Digital Ocean addebita meno per vCPU e di più per la memoria rispetto ad altre piattaforme - questo può diventare un fattore decisivo per alcuni tipi di workload di calcolo.

* Nota: nell'analisi vengono utilizzati dati per nodi di calcolo generali (general-purpose). Si tratta di istanze n1 GCP Compute Engine, m5 AWS ec2, macchine virtuali D2v3 Azure e droplet DO con CPU dedicate. Allo stesso modo, è possibile condurre ricerche su altri tipi di macchine virtuali (burstable, entry-level). A prima vista, il costo delle macchine virtuali dipende linearmente dal numero di vCPU e dalla quantità di memoria, tuttavia non sono sicuro che questa assunzione rimarrà valida per rapporti memoria/CPU molto non standard.

Nell'articolo La Guida Definitiva ai Costi di Kubernetes: AWS vs GCP vs Azure vs Digital Ocean, pubblicato nel 2018, è stato utilizzato un cluster di riferimento con 100 core vCPU e 400 Gb di memoria. A titolo di confronto, secondo i miei calcoli, un simile cluster su ciascuna di queste piattaforme (per istanze on-demand) costerebbe la seguente cifra:

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

Spero che l'articolo e il bloc-notes vi aiuteranno a valutare le principali offerte di Kubernetes gestito e/o a risparmiare sull'infrastruttura cloud sfruttando sconti e altre opportunità.

P.S. dal traduttore

Leggete anche nel nostro blog:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster