Quando mi capita di parlare di DevOps, in qualche corso o davanti a una birra, cito sempre come esempio lampante Docker, insieme al suo creatore, Solomon Hykes, che presentò questa tecnologia nel 2013.
Il motivo è semplice. Docker era ed è la somma, il riassunto, la sintesi, dell’intera metodologia DevOps, poiché ne racchiude e racchiudeva i presupposti e ne incarna ed incarnava gli strumenti.
È opinabile, lo ammetto, ma riguardando la sua presentazione originale, qui di seguito, e trattandosi di un video di oltre dieci anni fa, appare chiaro come la lungimiranza della soluzione che venne creata era tale da non essere forse recepita fino in fondo nemmeno dai suoi creatori, tanto era rivoluzionaria:
Tutto questo per dire che, dopo aver letto il titolo dell’articolo From Docker to Dagger: Solomon Hykes on modernisation of the DevOps pipeline apparso su DevClass, mi sono messo sull’attenti.
È ora di una nuova svolta epocale?
Hykes negli ultimi cinque anni racconta di aver lavorato sull’efficienza delle pipeline:
it’s all shell scripts, then you have another layer on top which is Jenkins or GitHub Actions or CircleCI, it’s this amalgamation of scripts in YAML tied together with duct tape
ci sono tutti quegli script shell, poi c’è un altro livello a monte con Jenkins o GitHub Actions o CircleCI, con un agglomerato di script YAML tenuti insieme dal nastro isolante
L’analisi è spietata, ma efficace, poiché corrisponde alla realtà delle cose. Ed il parallelo con la genesi di Docker c’è tutto, poiché anche allora creare un container era fattibile, se si sapeva come creare un Namespace, associargli un CGroup e decomprimere nello spazio isolato un’alberatura con le cartelle e le librerie necessarie ad eseguire un processo.
Poi è arrivato Docker e quanto sopra è stato riassunto in un docker run
. Non si è più sentita infatti la frase “sul mio laptop funziona” pronunciata dagli sviluppatori ai sistemisti che vedevano andare in crash l’applicazione dopo il suo deploy, perché era nata la figura del DevOp.
Il principio qui non cambia, ed ha un nome, ossia Dagger (Hykes deve essere affezionato ai nomi di 6 caratteri che iniziano per “D” e finiscono per “er”), un DevOps Pipeline Engine il cui scopo vorrebbe essere quello di porsi al di sopra di tutti gli strumenti e funzionare da Platform open-source dedicata alle pipeline (qui la pagina GitHub del progetto).
Basata nativamente sui container, ogni parte di Dagger dovrebbe fornire una API che ne permetta il controllo attraverso un linguaggio di programmazione che può essere Go, Node.js o Python.
L’articolo con l’intervista fornisce uno snapshot del linguaggio:
Il quale, ad onor del vero, non da tutta questa impressione di chiarezza suggerita da Hykes. Ma siamo solo agli inizi. L’idea di Dagger è quella di inserirsi gradualmente negli ambienti per prendere in carico sempre più aspetti della pipeline.
Questo, purtroppo ed ovviamente, significa inserire complessità in processi che, già di loro, non sono propriamente comprensibili ai più.
Dice Hykes:
Whenever you add one more tool, you’re paying an extra price of complexity, there’s a tax. It’s up to us to demonstrate, we save you more trouble than you’ll add by taking on one more tool
Ogni volta che aggiungi uno o più tool stai pagando un prezzo aggiuntivo in termini di complessità, è una tassa. Sta a noi dimostrare che risolviamo molti più problemi di quanti ne avresti aggiungendo uno o più tool
E qui sta un po’ tutto il discorso. La complessità è, e deve rimanere, il nemico principale di chi lavora ad un mondo (informatico) migliore. Docker a suo tempo sconfisse la complessità: si doveva imparare un nuovo tool, vero, ma i benefici derivanti dal suo utilizzo hanno impattato in maniera positiva tutti i workload di promozione del codice.
Con Dagger sarà la stessa cosa? A vedere lo screenshot, sommariamente, verrebbe da dire di no, ma ricordo il terrore di avvicinarsi ad un container dopo aver sentito che era effimero. Una rondine del resto non fa primavera e Hykes sa il fatto suo, su questo non ci piove.
Vedremo qualcosa di rivoluzionario, come lo è stato Docker, o il rischio è qualcosa di molto simile a quanto previsto da Xkcd?
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Lascia un commento