Lasciando la nuvola

Dec 23 2022
Si parla molto ora di come il cloud sia superato, e solo un modo costoso per inviare persone nello spazio davvero. Un post sul blog di David Heinemeir Hansson pubblicato qualche tempo fa su come pensa che il cloud sia in gran parte nuovi strati di vernice su cose vecchie e quindi vuole lasciarselo alle spalle immediatamente.

Si parla molto ora di come il cloud sia superato, e solo un modo costoso per inviare persone nello spazio davvero. Un post sul blog di David Heinemeir Hansson pubblicato qualche tempo fa su come pensa che il cloud sia in gran parte nuovi strati di vernice su cose vecchie e quindi vuole lasciarselo alle spalle immediatamente. Come professionista che ha trascorso del tempo dentro e fuori dal cloud con aziende grandi e piccole, questi sono i miei commenti.

Ho questa immagine creata da DALL-E-2

Ora David non è leggero. È l'uomo dietro a Basecamp che milioni di persone usano. È anche l'uomo dietro il framework Ruby on Rails ampiamente utilizzato da decine di milioni di persone. È un autore di bestseller. È persino un vero pilota di auto da corsa certificato. Non ho mai scritto un grande progetto open source e vado solo in bicicletta davanti agli ippodromi, quindi sia chiaro: sto sparando ai giganti. La mia unica difesa: ho fatto alcune di queste cose su tutti i tipi di scala. Sono nato una volta sulla nuvola, ho trascorso del tempo esclusivamente a terra e sono stato avanti e indietro un paio di volte e spero che questo mi dia una vista degna di essere vista.

L'argomentazione centrale di Davi, secondo cui non si dovrebbe affittare se si può acquistare, è corretta, ma solo in alcune circostanze. David stesso ne indica due; una nuova azienda senza ancora clienti o un'azienda consolidata con una crescita altamente volatile in cui afferma che il cloud è migliore. Tuttavia, la sua argomentazione è che questi sono gli UNICI due casi in cui il cloud è migliore, è dove penso che inciampi nella sua macchina da corsa.

Innanzitutto, diamo un po 'di background. David: bisogna capire il suo punto di vista. La società 37Signals è una piccola azienda: 7,9 milioni di dollari di entrate e circa 95 dipendenti. Ha circa 14 milioni di utenti al mese su circa 150.000 clienti a pagamento. È un'azienda redditizia e in costante crescita che non è finanziata da VC e, a differenza della maggior parte delle altre società tecnologiche, apprezza la lenta crescita redditizia rispetto al rapido ridimensionamento. Questo è qualcosa di cui hanno ripetutamente parlato: il loro ideale è il negozio di alimentari locale piuttosto che Slack o NetFlix.

Questo rende 37Signals piuttosto un valore anomalo. Per questo motivo ciò che funziona per loro non è sempre ciò che funziona per gli altri, quindi abbiamo bisogno di più sfumature.

Scalabilità senza il cloud

L'articolo afferma che Basecamp sta già eseguendo un servizio ampio e complesso, ma non è proprio corretto. Per quanto posso dedurre dal sito di Basecamp e da altre fonti su Google, l'azienda ha 8-10 milioni di visitatori al giorno e 130.000 account. Questo non è molto grande; anche la RBL Bank dove lavoro attualmente conta circa 7-8 milioni di visitatori al mese. Inoltre, Basecamp non ha transazioni in tempo reale, un'elaborazione back-end relativamente semplice e requisiti di sicurezza molto più semplici.

Lo stesso David afferma: “Abbiamo un modello di business che è incredibilmente compatibile con il possesso di hardware e l'eliminazione nel corso di molti anni. Traiettorie di crescita che sono per lo più prevedibili. Personale esperto che potrebbe anche impiegare il proprio talento operando con le nostre macchine”

Questa differenza è fondamentale. I carichi di Basecamp sono probabilmente gestiti da una manciata di server, rispetto agli oltre 3.000 server per RBL Bank che gestiscono oltre 40 linee di business. Esecuzione di un'operazione completa dell'infrastruttura con centinaia di rack e migliaia di server, per non parlare di stack di router e switch. E c'è tutto questo bisogno di supporto 24x7. Può una manciata di persone gestire questo?

Per la maggior parte dei CTO aziendali, la risposta è un immediato no. Di solito così tanto hardware significa. C'è il team del server con i suoi esperti Linux, il team della rete con i suoi esperti Cisco, il team dello storage con i suoi esperti EMC, il team della virtualizzazione con i suoi esperti VMWare, il team del database con gli esperti Oracle e così via. Tanti esperti, tanti supervisori, tanta complessità da affrontare.

Tuttavia, sono d'accordo con David; questa non è la realtà di oggi.

L'infrastruttura odierna, anche on premise, è solitamente già virtualizzata ed esistono strumenti maturi per gestire ogni aspetto in modo ampiamente automatizzato, quindi un piccolo team (non particolarmente esperto) può fare, con l'aiuto degli OEM, tutto ciò che prima richiedeva un esercito. Ricorda che c'è stato un tempo in cui una macchina Xerox richiedeva un operatore certificato: oggi un bambino può premere il pulsante e ottenere risposte perfette perché la tecnologia è progredita, le interfacce sono state semplificate e le parti mobili ridotte. Qualcosa di simile è accaduto a server e reti; la maggior parte dei CIO semplicemente non se ne è accorta. Tutte le semplici funzionalità di gestione integrata oggi disponibili nel cloud sono facilmente (e affidabili) disponibili anche on-premise.

Amazon e Google stessi hanno utilmente reso open source molti degli strumenti che utilizzano, oltre a VMWare, Nuntanix e Dell del mondo che hanno copiato e maturato. Gli hyperscalar oggi raggiungono rapporti tra server e persone dell'ordine di 10.000, il che significa che una persona gestisce 10.000 server. Su scala aziendale un po' più piccola, è ancora facilmente possibile gestire qualche migliaio di server con nient'altro che una squadra di cricket. Ricorda che non stiamo parlando di supportare il codice dell'applicazione (è lo stesso sforzo cloud o on-premise), ma piuttosto di gestire l'infrastruttura di rete di storage di elaborazione sottostante.

Non c'è magia. Una configurazione hardware semplificata e virtualizzata (tutto è dello stesso tipo), personale multi-qualificato ed eccellenti strumenti di gestione, tutti elementi che la maggior parte delle aziende ha a portata di mano se solo ci provassero. NSE lo fa in IFSC Gift City, Zerodha lo fa, le startup lo fanno ma le aziende affermate faticano a uscire dai paradigmi esistenti per farlo in questo modo.

C'è un avvertimento, però (e potrebbe essere grande). Il tuo stack hardware deve essere uniforme e relativamente nuovo affinché funzioni (che per inciso è davvero la realtà. La maggior parte degli strumenti e delle competenze diventa complicata o impossibile a meno che tu non ti sia impegnato in stack semplificati e modernizzati. Un po 'come Southwest Airlines che ha solo un tipo di aereo che è una parte fondamentale della strategia che Southwest usa per prendere letteralmente le nuvole.

Spiking senza il cloud

L'affermazione di David secondo cui le imprese sono stabili o volatili è troppo semplice. Qualsiasi entità aziendale complessa ha sempre più linee di attività e più prodotti, e quindi un mix di stabilità e volatilità. Le nuove imprese possono lanciarsi in piccole dimensioni e scalare rapidamente, o lanciarsi in grande e scalare ancora più velocemente, o avere una crescita costante su entrambe le scale. Inoltre, è difficile prevedere la spigolosità in futuro.

Basecamp ha il lusso sia di una crescita costante che della prevedibilità della futura spigolosità. Dopo anni nella stessa attività con lo stesso prodotto, è improbabile che si verifichino picchi imprevisti. Questo non è vero per le attività più complesse, dove i continui nuovi lanci e introduzioni rendono le cose più volatili. Anche qui, però, lo stesso David parla di quanto sia stato un vantaggio il cloud quando hanno lanciato Hey: 300.000 utenti in ore anziché i 30.000 previsti in mesi.

Questo può essere raggiunto senza il cloud? Qui la risposta è no (ma con alcune clausole di salvaguardia). La scalabilità on-premise per una singola azienda significa essenzialmente lasciare la capacità inattiva; non c'è altro modo per ottenere capacità su richiesta. Parte del carico può essere alleviato riassegnando dinamicamente le risorse dalle applicazioni inattive a quelle occupate (un'abilità che la maggior parte degli stack on-premise moderni ha oggi) ma la capacità on-premise è finita e alla fine relativamente limitata.

Quello che si può fare oggi è irrompere nel cloud. Anche le aziende tradizionali hanno iniziato a farlo in modi limitati, eseguendo lavori di gestione dei dati di massa sul cloud invece di acquistare l'hardware per farlo. Oracle e molti altri OEM di hardware forniscono un modo per espandersi nel cloud pagando man mano che si va oltre il carico principale in sede: RBL Bank ne ha fatto un grande uso durante i primi giorni dell'aggiornamento del core banking, quando molti lavori stavano prendendo molto più calcolo mentre l'ottimizzazione era attiva. Non tutte le applicazioni lo supportano, ma man mano che le applicazioni vengono inserite in contenitori, questa diventerà sempre più la norma.

Ovviamente se sei in modalità ipercrescita tutta questa capacità di scoppio non ti aiuterà; preferiresti rimanere sul cloud.

Nuovi strati lucidi di vernice

David passa molto tempo a parlare di come le persone vengono ingannate dalla magia di AWS. Ciò sembra contraddire il fatto che le aziende tecnologicamente molto sofisticate (come Capital One, Nasdaq, Slack o Netflix) continuino a essere nel cloud e continuino a impegnarsi in esso. Netflix spende oggi circa 12 milioni di dollari al mese e si è impegnato pubblicamente a triplicare il numero entro il 2025. Slack si è impegnato a spendere 400 milioni di dollari. È improbabile che queste aziende non abbiano fatto i conti o siano abbagliate da nuove mani di vernice.

Quindi cosa sa un Netflix che Basecamp no. Nulla in realtà, è solo una differenza di punti di vista. Qualunque cosa tu faccia sul cloud, puoi farlo on-premise e non è così difficile o ad alta intensità di persone come una volta, ma è più faticoso che farlo sul cloud. Basecamp dà la priorità al risparmio sui costi ed è disposto a mettere alcune persone in più nella gestione del servizio. Capital One, che è molto più grande e anche più complesso, probabilmente dà la priorità ad altre attività rispetto al risparmio sui costi del cloud; possono, ad esempio, scegliere di impiegare le persone nello sviluppo del prodotto piuttosto che nella gestione dell'infrastruttura. C'è anche una questione di scala: crescere fino a centinaia di migliaia di server e non sono più pochi strumenti open source e un po' di automazione.

E poi ci sono i servizi. Il cloud può offrire molti servizi completamente predigeriti; prendi semplicemente il servizio e non preoccuparti né dell'applicazione né dell'infrastruttura. Analisi, registrazione, database, back-end mobile, storage di oggetti, web serverless server, messaggistica sono tutti disponibili on tap, on demand e con estrema affidabilità. Certo, hanno un premio, ma anche le persone che possiedono auto e case affittano da Hertz e Marriott. Il trucco è usarlo in modo appropriato e saggio e sapere quando lasciare il noleggio.

Sommario

L'adozione del cloud è molte cose, incluso il costo. Le aziende che necessitano di agilità devono mantenere un piede nel cloud. Gestire problemi non fondamentali con competenze non fondamentali alla fine gonfia la forza lavoro di un'organizzazione. Cloud non è un proiettile d'argento: è una scelta più potente in un arsenale di armi. Il tempo in cui IAAS è l'obiettivo è ormai lontano. Passa al cloud solo se sei pronto per essere nativo del cloud: containerizzato, DevOps, ridimensionato orizzontalmente e così via.

Lezioni chiave:

  • Non mettere ciecamente le cose sul cloud. Considera continuamente - per ogni lancio di prodotto - se sei più Basecamp o più Netflix. Nuove applicazioni o applicazioni altamente volatili sono candidati ovvi, ma ce ne sono anche altri. E le cose cambiano, rivedilo periodicamente per vedere dove spostare cosa.
  • Sii meno preoccupato di non essere in grado di assumere o mantenere le competenze in sede. Non hai più bisogno di quegli eserciti esperti, quindi puoi addestrare tutta la tua forza lavoro in modo molto più ampio e più frequente. DevOps assorbe gran parte dei carichi di lavoro dei tuoi esperti (richiede un cambiamento culturale significativo).
  • Pulisci e semplifica il tuo stack. La maggior parte della complessità e dei costi on-premise deriva dall'acquisto di più varianti, fornitori e versioni.- Be Southwest
  • Spostati internamente per i bit più costosi: in AWS oggi è RDS (database Postgres gestiti), quindi suggerirei caldamente di allontanarsene. Sviluppa competenze interne per la gestione di Postgres e smettila di avere tanta paura dei database.
  • Il tempo in cui IAAS è l'obiettivo è ormai lontano. Passa al cloud solo se sei pronto per essere nativo del cloud: containerizzato, DevOps, scalato orizzontalmente ecc. Dove ha senso, sfrutta alcuni dei valori aggiuntivi che il cloud offre gratuitamente, come un monitoraggio molto migliore, scalabilità automatica Operazioni AI, controllo dei costi molto più preciso (Netflix ha fatto cose incredibili qui). Se non sei pronto a fare tutto questo, sostituisci il tuo CIO piuttosto che la tua infrastruttura.