Mega flex delle cose che fa e di tutto le cose che vengono fatte dalla prof. Ma molto interessante actually.
Come materiale abbiamo dispense su Moodle e poi forse forse ci viene consigliato un testo che potrebbe essere interessante per andare a vedere qualche materiale.
Che cosa facciamo in pratica?? Praticamente toto cloud e 1 cfu su edge computing. Si parlerà anche a grandi linee dei setup tipici delle strutture IT e di come tutto ciò si relazioni con il cloud. In pratica: parliamo dei data center.
Poi c’è anche il tema di come le aziende ora si rivolgano al cloud e che tipologia di esigenze abbiano e che vantaggi/svantaggi contraggono. Sicuramente come beneficio generale è che non dobbiamo andare a comprare hardware e non dobbiamo fare manutenzione di alcun tipo praticamente. Il concetto è che posso distogliere la mia attenzione dalla gestione della infrastruttura e gestire unicamente il software. C’è anche un discorso di elastic sizing: se dobbiamo andare a mettere su un sistema da solo per fare un e-commerce devo considerare un fantastiglione di variabili, mentre invece se riesco a fare offloading di problemi infrastrutturali verso i servizi cloud è meglio. Praticamente mi concentro solamente sul portale e come attirare i clienti. Poi pago degli affitti giganti per degli anni e mi impicco. E’ carino poi perché posso partire da poche risorse cloud e poi posso ingigantirle alla bisogna essenzialmente.
Il focus viene riportato unicamente sul software. Un altro vantaggio è avere data center sparsi in giro per il mondo e questo mi permette di avere una distribuzione migliore della latenza tra i vari utenti!
C’è differenza tra sviluppare in cloud e sviluppare in locale? In teoria potrebbe anche non esserci perché in cloud ho i container, le vm e posso andare ad avere letteralmente gli ambienti. Questa cosa di avere in locale e portare in cloud proprio perché voglio sfruttare i vantaggi di avere un sistema più che sia accessibile da tutti → lift and shift.
Se faccio questa operazione potenzialmente perdo tanti benefici del cloud perché sono più scalabili ed efficiente, sto praticamente mettendo una applicazione in rete ad ignoranza. Una cosa su cui ci focalizzeremo è come deve cambiare il modello di programmazione software quando devo andare a sviluppare in cloud. Adesso addirittura si sviluppa già praticamente cloud native. Devo andare a smembrare tutto in micro servizi e fare tutto quanto in cloud.
Cosa interessante è usare sistemi multicloud perché così posso avere servizi erogati da tanti data center. Come faccio a gestire dispatching geografico? Come posso farlo in maniera intelligente andando a distribuire bene il carico? L’obiettivo è ridurre la latenza avendo i server più vicini tra di loro. Tutto in maniera trasparente.
AWS è molto interessante come piattaforma e che usiamo. Praticamente questa è l’applicazione più usata, è uscita per prima e fatta meglio al momento. Useremo AWS academy per andare a creare una applicazione di prova.
Andremo a vedere anche docker e kubernets sempre per il discorso di fare una applicazione in micro servizi, dentro dei container e poi orchestrare questi container per avere il risultato finale. Abbiamo anche uno sconto per la certificazione AWS se volessimo farla.
Collaboriamo Soluzione Futura che lavorano tantissimo il cloud e per un paio di lezione vengono a fare un caso di studio reale. Sempre questo su AWS.
Cloud privato, come viene chiesto spesso dalle banche, non è esattamente il setup tipico di cloud, per cui possiamo andare a fare una discriminante.
Faccio computation edge di informazioni e poi mando la roba interessante in cloud. Non mando tutto quanto in cloud a caso perché è veramente inutile.
Quando a vado a fare questo genere di operazioni devo andare anche a valutare la distribuzione del carico, che algoritmi usare per andare a risolvere problemi di bilanciamento del carico e anche placement.
Vedremo anche un simulatore di rete di grande scale: Omnet++, per testare una soluzione su grande scala.
Ognuno di noi fa un progetto individuale e poi presentazione + domande di teoria. Il progetto è sviluppare un app con pipeline CI/CD. Questo su piattaforma locale (GIT/Docker) oppure su piattaforma cloud (AWS).
CI/CD vuol dire continuous integration e continuous development. Per cui se devo fare una modifica stoppo tutto, faccio modifiche e poi via (per altro situazione molto molto comune ancora oggi).
Idea: usare il progetto di tech web e poi lo andiamo a dockerizzare!!!