FinOps - La guida completa per l'ottimizzazione dei costi

Una delle motivazioni principali per l'utilizzo del cloud è la flessibilità e il risparmio sui costi. Il problema è che senza una gestione e una supervisione continue, il budget del cloud può crescere fino a dimensioni che eliminano la redditività.
Un recente studio sul costo dell'uso del cloud ha dimostrato che le aziende pagano in media il 35% in più sui servizi cloud di quanto dovrebbero realmente. Un totale di oltre $ 60 miliardi viene sprecato in servizi cloud che non sono in uso
In questo articolo, condividerò le mie conclusioni di un recente processo di ottimizzazione dei costi del cloud che ho gestito e esaminerò una serie di modi e strumenti per ridurre significativamente i costi del cloud del 30-50%, senza sacrificare le prestazioni. I consigli in questo articolo sono validi per tutti i fornitori di cloud se non diversamente specificato.
Strumenti per la gestione dei costi del cloud
Prima di iniziare è importante comprendere la composizione dei costi. In ogni cloud sono disponibili strumenti di gestione dei costi che mostrano una diversa segmentazione dei costi per tipo di servizio. Questi strumenti possono rilevare automaticamente i server sottoutilizzati e consigliare la riduzione delle dimensioni o spegnerli.
- Multi-cloud: VMware CloudHealh
- Azure: consulente di costo, Cloudyn
- AWS: advisor fidato, gestione dei costi
- GCP: gestione dei costi
Parte 1 - Costi del server
Di solito, i server sono il componente più grande del costo complessivo, quindi inizieremo con strategie di riduzione dei costi dei server, quindi esamineremo i modi per ridurre le spese di archiviazione e di rete e infine esamineremo alcune opzioni aziendali per ottenere sconti significativi sulla spesa cloud.
Spegni i server
Risparmio stimato - 15% del costo totale del server
- Disattiva i server che non vengono utilizzati.
- Dimensionamento: regola le dimensioni del server in base alla quantità e al carico di utilizzo.
- Limitare le autorizzazioni utente per creare nuovi server.
Istanze riservate
Risparmio stimato: 50% del costo dei server a lungo termine
Le istanze riservate (RI) possono ridurre significativamente i costi del server, a condizione che si impegni a un contratto a lungo termine. Di solito, un impegno per un anno darà uno sconto del 40%, mentre un impegno per tre anni fornirà uno sconto del 60%.
Se vuoi ancora smettere di usare un server a cui ti sei impegnato, ci sono diversi modi per uscire dall'impegno del RI:
- Sostituisci l'impegno con un diverso tipo di server
- Annullare il RI e pagare una multa d'uscita
Da un calcolo che ho fatto per Azure, è più vantaggioso impegnarsi a 3 anni con uno sconto del 60% e annullare dopo un anno (pagando una penalità del 12%) piuttosto che impegnarsi in un anno con un risparmio del 40%.
https://azure.microsoft.com/en-us/pricing/details/virtual-machine-scale-sets
https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/
https://cloud.google.com/compute/pricing
Istanze Spot
Risparmio stimato - 70% dei costi del server che non sono "mission-critical"
I server Spot o server a bassa priorità sono più economici del 70–90% rispetto ai server normali con la stessa potenza! Inoltre, oggi lo sconto è più o meno fisso (e non dipende da un processo di asta praticato in passato).
Il problema è che questi server hanno una bassa priorità, quindi corri il rischio che si spengano improvvisamente senza preavviso.
Esistono tuttavia diversi modi per affrontare questo inconveniente:
- Esecuzione di servizi senza stato che non sono critici; se si chiudono, è sempre possibile riaccenderli (il disco non viene eliminato).
- Lavorare con le code; se un server si chiude, l'attività rimarrà in una coda e attenderà un altro server.
- Utilizzare le regole di ridimensionamento automatico per gestire automaticamente un determinato conteggio delle istanze.
- Un'interessante azienda chiamata Spotinst aiuta a ridurre i costi usando Spot. Sono in grado di identificare i server spot che stanno per chiudere e sostituirli con altri server spot praticamente senza tempi di inattività. Da una mia richiesta, sembra che il loro supporto per Azure sia ancora incompleto (il servizio k8s gestito da Azure non è completamente supportato), AWS ha un supporto migliore.
Architetture Serverless \ Autoscaling
Risparmio stimato: 90% del costo dei server costantemente aperti ai tempi di caricamento
I nostri sistemi devono resistere a carichi pesanti, ma non vi è alcun motivo per mantenere tutti i server in funzione durante periodi di bassa richiesta.
Il ridimensionamento automatico garantisce che il numero di server verrà ridimensionato automaticamente in base al carico misurato.
Le funzioni senza server vengono eseguite solo su richiesta senza la necessità di server permanenti.
La corretta architettura è uno degli elementi essenziali di un cloud efficace ma va oltre lo scopo di questo articolo. Per i modelli di architettura e cloud design, in generale, vedere fantastici modelli di progettazione.
Nei sistemi gestiti da Kubernetes, l'allocazione delle risorse è generalmente più efficiente ed economica.
Dev \ Test
Risparmio stimato - 50% del costo dei server a bassa quota
Una gran parte dei nostri server appartiene ad ambienti di sviluppo, test e pre-produzione.
In Azure, ci sono sconti su ambienti di sviluppo / test (non conosco un programma parallelo in altri cloud).
In molti casi, lavoriamo su dev / test envir attivo solo durante il giorno, quindi questi server possono essere chiusi di notte e nei fine settimana, risparmiando oltre il 50% del costo. Esistono strumenti per arrestare automaticamente i server in base alla pianificazione:

Parlmycloud — - I server si accendono solo nelle slot verdi.
Parte 2 - Archiviazione e rete
Archiviazione
Risparmio stimato - 20% dei costi di archiviazione
Ecco le prime 5 categorie di archiviazione cloud ordinate da economiche a costose (e da lente a veloci):
- Archiviazione - AWS Glacier
- Memoria oggetti - S3 \ Blob
- Archiviazione file - Librerie di rete che possono essere mappate su più server
- Blocca dischi di memoria SSD
- Archiviazione del database - SQL, MongoDB ...
All'interno di ciascuna categoria di archiviazione, esistono diversi livelli di prezzo a seconda della velocità e della ridondanza.
I dati non elaborati possono essere archiviati in una categoria di archiviazione economica, ma i metadati, utilizzati per query frequenti, sono meglio conservati in una categoria di archiviazione costosa.
L'archiviazione è la forma di archiviazione più economica ma non è pratica per i lavori in corso a causa dei tempi di recupero lenti. La memorizzazione degli oggetti è la categoria di archiviazione più economica successiva, quindi questa è la scelta di archiviazione preferita per la maggior parte dei dati.
È necessario impostare un criterio "Ciclo di vita dell'archiviazione" che consenta di impostare regole per lo spostamento automatico di vecchi file in categorie di archiviazione più economiche. (Disponibile in AWS e in anteprima in Azure)
Network
Risparmio stimato - 20% del costo del traffico di rete
Il traffico di rete è costituito dal traffico interno (all'interno della rete) e dal traffico esterno tra il server e i clienti.
Per il traffico interno raccomando:
- Consentire ai processi di operare all'interno della stessa area geografica, se possibile.
- Utilizzando solo indirizzi interni.
Per capire come ridurre il traffico esterno ho parlato con John Graham-Cumming, CTO di Cloudflare, che ha sottolineato i vantaggi in termini di costi di rete di Cloudflare *:
- Protezione DDOS - DDOS può sostenere costi di rete.
- CDN: i file vengono scaricati dai server Cloudflare più vicini alla posizione del client (senza costi di rete aggiuntivi).
- Bandwidth alliance — costi di rete cloud più convenienti per il trasferimento di dati tra i membri dell'alleanza.
- Cloudflare workers — esegue la logica di richiesta javascript nell'endpoint di Cloudflare prima che la richiesta raggiunga la mia rete.
- Compressione Brotli - migliore di gzip.
*Ciò non implica che Cloudflare sia l'unico fornitore in questo dominio.
Parte 3 - Sconti aziendali
I fornitori di servizi cloud e i loro partner hanno molti programmi in grado di offrire sconti significativi. I grandi clienti possono anche contrattare direttamente con i fornitori di cloud per gli sconti.
Partner cloud
Risparmio stimato - 5-10% di sconto sul costo totale + consulenza
Non vi è alcun sostituto per la consultazione di un esperto architetto del cloud. Tutti i principali fornitori di servizi cloud hanno partner che forniscono servizi di consulenza. Lavorare con loro può offrire una serie di vantaggi.
Per esempio:
- Sconti sul costo totale del cloud
- Supporto per malfunzionamenti
- Consulenza architettonica
- Strumenti per la gestione dei costi
- Termini di pagamento flessibili
https://partner.microsoft.com/
https://aws.amazon.com/partners/
https://cloud.google.com/partners/
Programmi di avvio
Risparmio stimato: credito che può raggiungere decine di migliaia di dollari o più
Tutte le società cloud hanno piani che possono favorire le start-up.
I vantaggi possono includere:
- credito per l'utilizzo del cloud
- servizi di consulenza
- promozione aziendale / acceleratore
https://startups.microsoft.com/en-us/
https://aws.amazon.com/startups/
https://cloud.google.com/developers/startups/
Programmi di livello gratuiti
Risparmio stimato - primo anno gratuito per server di piccole dimensioni
Tutti i fornitori di cloud hanno piani di livelli gratuiti. Questi programmi consentono l'uso gratuito dei servizi più economici per un anno o per un numero fisso di utilizzi. Di solito non esiste un limite al numero di account di livello gratuito che è possibile creare.
https://azure.microsoft.com/en-us/free
https://cloud.google.com/free/
Questo è tutto!
- Gli argomenti sopra menzionati riflettono solo la mia opinione professionale. Non ho alcuna affiliazione con nessuno dei servizi menzionati nell'articolo.