Settimana scorsa, come avviene ogni anno, si è tenuta l'annuale conferenza dedicata al mondo di Docker. Dal 17 (giornata di pre-conferenza di benvenuto) al 20 Aprile diverse sono state le conferenze e le novità presentate, ed abbiamo tenuto un occhio aperto a quello che sarà il futuro di questo mondo.
Diamo un occhiata ai cambiamente ed alle novità presentate durante i keynote:
Miglioramenti per gli sviluppatori
Docker, per quanti riguarda l'ambiente degli sviluppatori, è stato quel passo in avanti per ridurre la "frizione" presente tra il testare l'applicazione localmente e prepararla per l'esecuzione in produzione; l'universalità dei container fa si che lo sviluppatore possa generare il container con l'ultima build della sua applicazione e -virtualmente- quello stesso container può andare in esecuzione sul suo computer, nell'ambiente di test e QA, così come in produzione. Sono state quindi presentate alcune novità che dovranno rendere la vita degli sviluppatori più semplice, tra cui:
- MultiStage build: uno dei problemi che affligge l'ambiente dei container è che le immagine di partenza tendono a diventare molto grandi. In fase di sviluppo, lo sappiamo, spesso aggiungiamo al nostro ambiente librerie di logging, sistemi di tracing ed altre funzioni estremamente comode per scovare e migliorare problemi nel software, ma che in produzione appesantiscono l'immagine e basta. Con questa feature, con un unico Dockerfile, sarà possibile configurare più "stage" per la generazione delle immagini, con punti di partenza differenti, e fare in modo che questi copino selettivamente file da uno stage all'altro; la sintassi è più che semplice, basta aggiungere più volte il comando FROM:
FROM big-buildphase ... FROM tiny-runbase COPY --from=0 /artifact /run/app
- Desktop-to-Cloud: con la diffusione di Docker, sia in ambienti locali (Docker for Mac, Docker for Windows, etc..) che in ambienti cloud (AWS, Azure, Google Cloud Platform), è diventato necessario poter lavorare (e distribuire) i propri container anche su ambienti remoti. La feature Desktop-to-Cloud promette proprio questo, permettendo non solo di configurare -e creare- il proprio ambiente cloud direttamente dal desktop, ma anche far si di distribuire questa informazione tra tutti i membri del team.
Sicurezza avanzata in Swarm
Particolare attenzione è stata data all'introduzione di feature di sicurezza per i cluster SwarmKit. Sarà possibile includere nodi del cluster in maniera sicura (più che con il token random utilizzato nelle versioni precedenti), di avere la comunicazione tra i nodi su protocollo MTLS (basato sulla crittografia TLS), gestire la segmentazione dei cluster, reti di comunicazione criptate tra i container ed i secure secret (il sistema integrato in Docker per non utilizzare password in chiaro nei propri container) distribuiti. Insomma, pare si stia andando a consolidare la sicurezza sopra la semplicità storica di Swarm.
LinuxKit
Con la necessità e le richiesti di portare Docker sempre su più piattaforme (Mac, Windows, Azure, piattaforme cloud) si è presto manifestato un problema: la totalità di queste piattaforme non dispone di un substrato Linux che sia sicuro ed affidabile. Motivo per cui le varie attuali versioni di Docker per queste piattaforme non fanno altro che distribuire una macchina virtuale Linux ottimizzata per l'esecuzione di Docker su di esso. Visto oramai l'ampio spettro di utenti che utilizza questo "substrato Linux" (praticamente, tutti quelli che usano Docker su quelle piattaforme), è stato deciso di rendere open questo substrato, con il nome di LinuxKit. Ma di che cosa si tratta?
Fondamentalmente di una distribuzione Linux privata di tutto il non necessario all'esecuzione dei container; questo porta a:
- Superficie di attacco minima: la distribuzione non ha nulla che non serva per eseguire i container
- Servizi di sistema in sandbox: visto che può eseguire solo container, i vari servizi di sistema sono anch'essi dei container, e quindi separati a livello di kernel da tutti gli altri. Inoltre, tutto è opzionale.
- Infrastruttura immutabile: proprio grazie alla containerizzazione di tutto quanto, l'OS di per se è poco più che un kernel e, quindi, non è necessario modificarlo per renderlo specializzato, varieranno solo i container in esecuzione su di esso
- Patch e configurazioni ad-hoc: sempre grazie al minimalismo dello stesso, sono state create patch e configurazioni ad-hoc per questo sistema minimo
Il tutto in un sistema molto portabile, in grado di girare su Desktop, server, IoT, mainframe, su architetture Intel ed ARM, e sia su bare metal (hardware fisico) che su ambienti virtuali - ed ovviamente open source!
Informazioni più descrittive, oltre che nel repository di GitHub, le potete trovare nel post del blog Docker dedicato.
Progetto Moby
Che dire? Ci sembrava così importante che ne abbiamo già scritto un articolo!
E tutto questo, solo nella prima giornata. Nella seconda si è dato più spazio a far vedere come Docker è stato implementato da grossi player del settore, a partire da Visa (esatto, quella delle carte di credito), che ha descritto il loro viaggio per l'implementazione di Docker Enterprise Edition per l'esecuzione delle applicazioni critiche.
Anche Oracle ha preso parte alla conferenza, presentando il lavoro che ha fatto per rendere disponibili come immagini di container molte delle sue applicazioni, tra le quali lo stesso OracleDB!
Infine è stato presentanto MTA: Modernize your Traditional Apps program, un servizio creato da Docker mettendo insieme una serie di partnership con aziende quali Avanade, Cisco, HPE e Microsoft per offrire servizi di consulenza, ambienti enterprise Docker e infrastrutture cloud ibride al fine di "modernizzare" vecchie applicazioni .NET o Java e portarle nel mondo dei container, in 5 giorni o meno. Maggiori informazioni su MTA le trovate qui.
Tante tantissime novità quindi, vi lasciamo alla visione dei due Keynote che hanno aperto le giornate.
Leggi il contenuto originale su Mia mamma usa Linux!