In che modo il progetto di IBM per la trasformazione del settore sfrutta l'intelligenza artificiale, il 5G e la collaborazione
Le applicazioni stanno proliferando, la complessità del cloud sta esplodendo e Kubernetes sta prevalendo come base per l'implementazione delle applicazioni nel cloud. Sembra un'attività di ottimizzazione matura per l'apprendimento automatico, e StormForge sta agendo di conseguenza.
Il cloud è diventato lo standard de facto per l'implementazione delle applicazioni. Kubernetes è diventato lo standard de facto per l'implementazione delle applicazioni. L'ottimizzazione ottimale delle applicazioni distribuite su Kubernetes è un obiettivo mobile e ciò significa che le applicazioni potrebbero avere prestazioni insufficienti o spese eccessive. Questo problema potrebbe essere in qualche modo risolto utilizzando l'automazione?
Questa è una domanda molto ragionevole da porre, una domanda che anche altri si sono posti. Poiché Kubernetes si evolve e diventa più complesso a ogni iterazione e le opzioni per l'implementazione sul cloud stanno proliferando, l'ottimizzazione dell'implementazione e del funzionamento delle applicazioni sta diventando sempre più difficile. Questa è la cattiva notizia.
La buona notizia è che ora abbiamo raggiunto un punto in cui Kubernetes è in circolazione da un po' di tempo e tonnellate di applicazioni lo hanno utilizzato per tutta la sua vita. Ciò significa che c'è un corpo di conoscenze e, soprattutto, di dati, che è stato accumulato. Ciò significa, a sua volta, che dovrebbe essere possibile utilizzare l'apprendimento automatico per ottimizzare la distribuzione delle applicazioni su Kubernetes.
StormForge lo fa dal 2016. Finora, hanno preso di mira gli ambienti di pre-distribuzione. A partire da oggi, stanno prendendo di mira anche Kubernetes in produzione. Abbiamo incontrato il CEO e fondatore Matt Provo per discutere dei dettagli dell'offerta di StormForge.
Ottimizzazione di Kubernetes con l'apprendimento automatico
Quando Provo ha fondato StormForge nel 2016 dopo un lungo periodo come product manager presso Apple, l'obiettivo era ottimizzare il modo in cui l'elettricità viene consumata nelle grandi apparecchiature HVAC e di produzione, utilizzando l'apprendimento automatico. L'azienda utilizzava Docker per le sue implementazioni e a un certo punto alla fine del 2018 è passata a Kubernetes. È stato allora che hanno trovato il caso d'uso perfetto per la loro competenza principale, come ha detto Provo.
Un pivot, un'acquisizione, 68 milioni di dollari di finanziamenti e molti clienti dopo, StormForge annuncia oggi Optimize Live, l'ultima estensione della sua piattaforma. La piattaforma utilizza l'apprendimento automatico per migliorare in modo intelligente e automatico le prestazioni delle applicazioni e l'efficienza dei costi negli ambienti di produzione Cloud Native.
La prima cosa da notare è che la piattaforma di StormForge lo aveva già fatto per ambienti di pre-produzione e non di produzione. L'idea è che gli utenti specifichino i parametri per i quali desiderano ottimizzare, come l'utilizzo della CPU o della memoria.
Quindi StormForge avvia diverse versioni dell'applicazione e torna alle opzioni di configurazione dell'utente per distribuire l'applicazione. StormForge afferma che ciò si traduce in genere in un risparmio sui costi compreso tra il 40% e il 60% e in un aumento delle prestazioni compreso tra il 30% e il 50%.
È importante notare, tuttavia, che si tratta di un problema di ottimizzazione multi-obiettivo. Ciò significa che mentre i modelli di apprendimento automatico di StormForge cercheranno di trovare soluzioni che trovino un equilibrio tra i diversi obiettivi prefissati, in genere non sarà possibile ottimizzarli tutti contemporaneamente.
Più parametri devono essere ottimizzati, più difficile è il problema. In genere gli utenti forniscono fino a 10 parametri. Ciò che StormForge vede, ha detto Provo, è un continuum costi-prestazioni.
Negli ambienti di produzione, il processo è simile, ma con alcune importanti differenze. StormForge lo chiama il lato di osservazione della piattaforma. Vengono utilizzati dati di telemetria e osservabilità, tramite integrazioni con soluzioni APM (Application Performance Monitoring) come Prometheus e Datadog.
Optimize Live fornisce quindi raccomandazioni quasi in tempo reale e gli utenti possono scegliere di applicarle manualmente o di utilizzare ciò che Provo ha chiamato "imposta e dimentica". Cioè, lascia che la piattaforma scelga di applicare tali raccomandazioni, purché vengano soddisfatte determinate soglie definite dall'utente:
"L'obiettivo è quello di fornire una flessibilità sufficiente e un'esperienza utente che consenta allo sviluppatore stesso di specificare le cose che gli interessano. Questi sono gli obiettivi entro i quali ho bisogno di rimanere. Ed ecco i miei obiettivi. E da quel momento in poi, l'apprendimento automatico entra in gioco e prende il sopravvento. Forniremo decine, se non centinaia, di opzioni di configurazione che soddisfano o superano questi obiettivi", ha detto Provo.
La linea sottile con Kubernetes in produzione
C'è una linea molto sottile tra l'apprendimento e l'osservazione dai dati di produzione e la messa a punto in tempo reale nella produzione, ha aggiunto Provo. Quando si oltrepassa quella linea, il livello di rischio è ingestibile e insostenibile, e gli utenti di StormForge non lo vorrebbero: questa è stata la loro risposta inequivocabile. Ciò che viene presentato agli utenti è la possibilità di scegliere dove si trova la loro tolleranza al rischio e con cosa si sentono a proprio agio dal punto di vista dell'automazione.
In pre-produzione, le diverse opzioni di configurazione per le applicazioni vengono testate sotto carico tramite un software creato a tale scopo. Gli utenti possono portare la propria soluzione di test delle prestazioni, con cui StormForge si integrerà, o utilizzare la soluzione di test delle prestazioni di StormForge, che è stata introdotta attraverso un'acquisizione.
L'ottimizzazione del deployment delle applicazioni su Kubernetes è un obiettivo multi-obiettivo Immagine: StormForge
Storicamente, questo è stato il più grande input di dati di StormForge per il suo apprendimento automatico, ha affermato Provo. Dare il via, tuttavia, non è stato facile. StormForge era ricca di talento, ma povera di dati, come diceva Provo.
Al fine di avviare il suo apprendimento automatico, StormForge ha offerto ai suoi primi grandi clienti ottimi affari, in cambio del diritto di utilizzare i dati dei loro casi d'uso. Ha funzionato bene e StormForge ha ora costruito la sua IP attorno all'apprendimento automatico per problemi di ottimizzazione multi-obiettivo.
Più specificamente, sull'ottimizzazione di Kubernetes. Come ha notato Provo, le basi sono lì e tutto ciò che serve per mettere a punto ogni caso d'uso specifico e ogni nuovo parametro sono pochi minuti, senza bisogno di ulteriori modifiche manuali.
C'è un po' di apprendimento da imparare, ma nel complesso StormForge lo vede come una buona cosa. Più scenari e situazioni la piattaforma può incontrare, migliori possono essere le prestazioni.
Nello scenario di produzione, StormForge è in un certo senso in competizione con Kubernetes stesso. Kubernetes dispone di funzionalità di auto-scaling, bot verticalmente e orizzontalmente, con VPA (Vertical Pod Autoscaler) e HPA (Horizontal Pod Autoscaler).
StormForge lavora con il VPA e sta pianificando di lavorare anche con l'HPA, per consentire quello che Provo ha chiamato scalabilità intelligente bidirezionale. StormForge misura l'ottimizzazione e il valore fornito rispetto a ciò che il VPA e l'HPA raccomandano per l'utente all'interno di un ambiente Kubernetes.
Anche nello scenario di produzione, ha detto Provo, stanno vedendo risparmi sui costi. Non proprio così alto come le opzioni di pre-produzione, ma in genere si ottiene comunque un risparmio sui costi compreso tra il 20% e il 30% di miglioramento delle prestazioni.
Provo e StormForge si spingono fino a offrire una garanzia di riduzione dei rifiuti nel cloud. StormForge garantisce una riduzione minima del 30% dei costi delle risorse delle applicazioni cloud Kubernetes. Se i risparmi non corrispondono al 30% promesso, Provo pagherà la differenza per la bolletta del cloud per 1 mese (fino a $50.000/cliente) e donerà l'importo equivalente a un ente di beneficenza ecologico di tua scelta.
Quando gli è stato chiesto, Provo ha detto che non doveva onorare quell'impegno nemmeno una volta fino ad oggi. Man mano che sempre più persone si spostano verso il cloud e vengono consumate più risorse, esiste una connessione diretta con i rifiuti del cloud, che è anche correlato all'impronta di carbonio, ha aggiunto. Provo vede StormForge come un forte lato orientato alla missione.
