Sviluppo remoto su AWS: da Cloud9 a VS Code
20 Novembre 2024 - 2 min. read
Alessio Gandini
Cloud-native Development Line Manager
Non avrei mai pensato che mi sarebbe mancata così tanto la mia annuale trasferta americana per il re:Invent. Ormai era diventata per me una vera e propria tradizione; non ne ho saltato uno per otto anni consecutivi, fin dalla prima edizione nell’ormai lontano 2012, tanto che, se non ho fatto male i conti, Las Vegas è la città che ho visitato più volte nella mia vita. (Sì, suona decisamente strano…)
Quest’anno niente pub crawl, niente gadget (forse…), niente Partner Expo (a mio parere uno dei momenti più interessanti della conferenza, dove si ha modo di curiosare tra gli stand di centinaia di aziende diverse che ruotano attorno all’ecosistema AWS, e di interagire direttamente con loro), niente passeggiate su e giù per la Strip - meglio dire vere e proprie corse - nella speranza di non arrivare in ritardo alla ennesima sessione della giornata :-)
Ma soprattutto niente incontri di persona - come sempre meglio se davanti a una birra - con i miei amici del gruppo degli AWS Ambassadors, con gli altri organizzatori di tutte le community AWS sparse in giro per il mondo, con le persone di AWS d’oltreoceano con cui normalmente interagisco solo via e-mail, e - so che può sembrare strano, ma è così - anche con alcuni amici italiani del mondo AWS che è spesso più facile incontrare a Las Vegas che a casa! Tutti incontri per me sempre fonte di grande ispirazione.
In questo momento storico così difficile, rinunciare a un evento in presenza, per quanto bello e unico nel suo genere, è certamente l’ultimo dei problemi; detto questo speriamo si possa tornare presto a vivere la magia del re:Invent nella sua interezza, di persona e, ovviamente, in sicurezza.
In generale la modalità “full-online” di questa edizione 2020, con centinaia di sessioni visibili in streaming direttamente dal portale ufficiale dell’evento, ha fornito un’esperienza molto diversa rispetto a quella cui eravamo abituati, forse anche per la scelta organizzativa di AWS di “spalmare” l’evento (normalmente concentrato in 5 giorni) su tre settimane,con ben quattro keynote.
Infatti oltre ai due “classici” keynote di Andy Jassy e Werner Vogels, le novità di quest’anno sono state la “promozione” a keynote del “Monday Night” di Peter Desantis e l’introduzione di un keynote dedicato al Machine Learning, tenuto da Swami Sivasubramanian (detto anche Swami ctrl+v) con parecchie “incursioni” da parte della vecchia conoscenza Matt Wood. La scelta di dedicare un intero keynote al tema del Machine Learning racconta da sé’, più di ogni altra considerazione, la direzione principale intrapresa da AWS da un paio d’anni a questa parte e certamente quale sia il bacino di utenti e servizi cui il colosso di Seattle guarda con più attenzione per spingere ulteriormente sull’innovazione nel prossimo futuro. (nonostante, è bene ricordarlo, la stragrande maggioranza del fatturato di AWS derivi ancora principalmente da EC2 e in generale da servizi di tipo IaaS… roba che in Silicon Valley puzza di vecchio almeno dal 2015)
Personalmente ho fatto un po’ di fatica a seguire la conferenza in questo nuovo formato, vuoi perchè tenere alti l’entusiasmo e l’attenzione per tre settimane di fila non è facile, specie se non ci si trova in un posto fisico insieme ad altri 60.000 nerd appositamente per l’evento, ma lo si segue dalla scrivania o dal divano, vuoi perchè non c’era il fuso orario a fare da scudo “naturale” alle distrazioni della quotidianità lavorativa, vuoi perchè - lo confesso - quest’anno è subentrata ancora più forte la sindrome del “tanto lo guardo dopo con calma registrato su YouTube” (e puntualmente ritrovo nei miei bookmark link a sessioni del re:Invent di tre anni fa che non trovo mai il tempo di guardare…)
Il re:Invent online è stata però anche l’occasione di fare nuove esperienze, come le sessioni in diretta Zoom dove io e alcuni altri esponenti storici della community italiana AWS abbiamo commentato in italiano (cercando di ispirarci, un po’ goffamente, alle telecronache calcistiche alternative della Gialappa’s) tutti e quattro i Keynote. L’iniziativa ha avuto un buon successo, nonostante fosse la primissima esperienza di questo tipo: parecchie persone hanno scelto di seguire i Keynote in nostra compagnia invece che sul portale ufficiale dell’evento e devo dire che è stato molto divertente. Chissà che non lo ripeteremo in futuro…
Quest’anno al re:Invent sono stati annunciati quasi 150 tra nuovi servizi o feature di servizi esistenti e, con tre settimane di tempo a disposizione, il web si è popolato in ogni dove di riassunti più o meno esaustivi di tutto quello che è stato lanciato. Io invece mi concentrerò su qualche riflessione sugli annunci che mi hanno colpito e interessato di più - non necessariamente i più “popolari” - e su quanto rappresentano per l’evoluzione del mondo AWS nel prossimo futuro.
Io nasco come uomo di infrastruttura e, nonostante sia ritenuto ormai uno dei temi meno “sexy” del Cloud rispetto a cose più “cool” come serverless, machine learning o IoT, il “ferro” resta uno degli argomenti che più mi affascina, quindi partiamo proprio da qui.
L’approccio al Cloud ibrido di AWS (molto ben descritto da Andy Jassy in questa intervista) è differente rispetto a quello dei competitor: con Outpost l’hardware locale (fornito in comodato d’uso da AWS stessa) diventa una vera e propria commodity e tutto il valore si sposta sul control plane di AWS (console, CLI, API) con cui si va a gestire l’infrastruttura on-premise come un caso particolare (special AZ) della propria infrastruttura Cloud. Questa filosofia viene rafforzata dal lancio dei nuovi Outpost “small form factor” da 1 e 2 unità rack (subito simpaticamente ribattezzati “OutPostini” :-) ) che, per questioni di dimensioni e di pricing (anche se su questo non abbiamo ancora indicazioni specifiche) dovrebbero prestarsi molto bene a penetrare in contesti ibridi molto più variegati (Andy Jassy nel keynote parlava come esempio anche di installazioni in ristoranti!). Quindi non più il Cloud come estensione del datacenter locale, bensì un computing di prossimità (ben rappresentato anche dalle nuove Local Zones annunciate e dalle installazioni Wavelenght, tutte basate sulla tecnologia Outpost) come edge case di un’infrastruttura Cloud-first, il tutto con il control plane di AWS - il vero valore aggiunto e differenziante - come collante. Game, set and match.
Sempre sul fronte infrastrutturale sono rimasto piacevolmente colpito dall’annuncio delle istanze EC2 Mac for MacOS. Tecnologicamente non c’è nulla di rivoluzionario - anche se sarei molto curioso di capire i dettagli dell’interfacciamento tra il Nitro System e il Mac Mini che avviene interamente tramite Thunderbolt 3 senza apparentemente modificare l’hardware (e il firmware?) del Mac: per questioni di licenza MacOS non si può virtualizzare su hardware non Apple (e a quanto pare nemmeno AWS è stata in grado di far fare ad Apple un’eccezione) e quindi il servizio è poco più di una “colocation” di Mac Mini, gestita tramite la console di AWS. Il servizio, che abbiamo provato, è peraltro un po’ “acerbo” e risente di alcuni limiti intrinseci; la licenza di MacOS Big Sur (anche se EC2 Mac montano ancora Catalina) prevede la possibilità di fare renting per non meno di 24 ore di seguito, il che rende il pricing attuale poco compatibile con la maggior parte dei casi d’uso, tipicamente di tipo “spot”. Detto ciò, la possibilità di utilizzare sistemi Apple su AWS apre comunque a un sacco di possibilità per gli sviluppatori iOS/MacOS, che fino ad oggi erano costretti ad integrare manualmente le pipeline di CI/CD per poter buildare e notarizzare le applicazioni su un hardware fisico. Un gap importante in termini di completezza dell’ecosistema di sviluppo, che inizia finalmente ad essere colmato. Speriamo di vedere presto una integrazione seamless con CodeBuild.
Sempre in ambito infrastruttura, degna di nota un’evoluzione complessiva del sottosistema storage, grazie alla quale sono stati annunciati i volumi EBS di nuova generazione (gp3) e aumenti di performance estremamente significativi per i volumi EBS di tipo io2, mossa che cerca di colmare il gap prestazionale con storage SAN-based di fascia alta, per applicazioni critiche dal punto di vista dell’I/O (ovviamente in contesti enterprise)
Sono stato invece sorpreso negativamente dal mancato annuncio di “Graviton 3”. Mi spiego meglio: Graviton 2 è una CPU molto interessante e sta iniziando adesso ad esprimere tutto il suo potenziale. Tuttavia, vista l’incredibile velocità di evoluzione dell’architettura ARM rispetto alla sua controparte x86, rispetto alla quale sta diventando un’alternativa credibile per un numero sempre crescente di workload, unita alla grande expertise di Amazon nel design di silicio proprietario (grazie alla controllata Annapurna Labs), mi sarei aspettato uno step evolutivo ulteriore. Probabilmente il grosso del lavoro su custom silicon quest’anno è stato fatto su Trainium, il chip dedicato al training di modelli di machine learning.
Machine Learning che l’ha fatta da padrone, insieme al mondo IoT, con una valanga di annunci. In particolare mi ha colpito l’interazione di questi due mondi con gli annunci di Amazon Monitron e Amazon Lookout for Equipment con cui AWS strizza pesantemente l’occhio al mondo manufacturing e a tutti i progetti “Industry 4.0”, cercando di rendere semplici e accessibili la predictive maintenance e la anomaly detection.
Il Machine Learning è stato anche il filo conduttore di evoluzioni e feature di altri servizi, ad esempio in ambito database con Amazon Redshift ML (anche per Redhift stesso sono state annunciate davvero un sacco di novità e miglioramenti!), o in ambito DevOps con Amazon DevOps Guru che promette di migliorare l’affidabilità delle infrastrutture attraverso operations assistite dal Machine Learning. Che è un po’ un meccanismo duale a quello del paradigma MLOps, quindi come lo chiamiamo, “Ops ML”? (disclaimer: nessun esperto di SEO è stato maltrattato per scrivere questa frase)
Grandi annunci anche su Lambda, come il billing con granularità al millisecondo, funzioni molto più “carrozzate” (fino a 10GB di memoria e 6 vCPU) e la possibilità di deployare container Docker direttamente dentro le Lambda function! Tutte feature che rimuovono una serie di limiti della piattaforma serverless rispetto a quelle di computing “serverfull”, rendendola maggiormente adatta per specifici workload (ad esempio - guardacaso - machine learning), ma che soprattutto mi fanno essere estremamente curioso a proposito di quanti danni potrà fare un loro cattivo utilizzo ;-)
Un cenno finale a due (dei pochissimi) servizi annunciati durante il Keynote di Werner Vogels, AWS Fault Injection Simulator che introduce quello che sarà verosimilmente il primo di una lunga serie di servizi gestiti per l’implementazione del Chaos Engineering - concetto portato agli onori delle cronache da Netflix nell’ultimo decennio - e AWS CloudShell, un servizio semplice ma incredibilmente utile. Molto atteso, anche perchè i competitor ce l’avevano già da diverso tempo (e anche con lo stesso nome!) Ma non lo diremo a Werner ;-)
Ci sarebbero decine di altri annunci interessanti da commentare e su cui fare considerazioni… ma per questo 2020 (per fortuna) è davvero tutto. Vi aspettiamo nel 2021 sul nostro blog #Proud2beCloud e - speriamo - anche di persona per chiacchierare di Cloud davanti a un caffè.
Buon Natale a tutti!