FaaS - Fuffa as a Service [Prima parte]

Qualche tempo fa qualcuno mi ha segnalato questa pagina:
http://www.massimobarbieri.it/it/Tecnichese/
In pratica si tratta di un sofisticato generatore di supercazzole in gergo tecnico, basato su solide basi teoriche (guardate anche l'altro esempio di utilizzo di TinyGrammar, ne vale la pena).
Dopo aver fatto diversi click sul pulsante "Genera altro tecnichese" ho constatato (con le lacrime agli occhi per le risate) che il tool è robusto ed affidabile :-P
Il contagio si è rapidamente sparso tra i colleghi, scatenando la facile ironia di chi faceva notare quanto le frasi generate fossero praticamente indistinguibili da alcuni discorsi sentiti durante serissime riunioni di lavoro.
A questo punto, siccome non so se sono più nerd o più cazzaro, mi sono accorto che Barbieri (grazie Massimo) ha pubblicato su GitHub la sua libreria con licenza GPL e che sarebbe stato facile modificare il dizionario della grammatica per renderlo ancora più affine al mio ambito aziendale (nomi di prodotti, team di sviluppo, tecnologie specifiche, etc).
In pochi minuti clono il progetto, compilo la console app e modifico il file di esempio della grammatica; il risultato è irresistibile: serpeggia anche l'idea di sostituire analisti e project manager con questo strumento economico e funzionale.
Tutto si sarebbe esaurito così se non fosse che negli ultimi mesi mi sto interessando di cloud computing; più di una volta, essendo un newbie, i discorsi degli esperti e la documentazione tecnica consultata mi sono sembrati delle incomprensibili supercazzole.
La mia sottile e perfida rivalsa sarebbe stata questa: avrei implementato un generatore di fuffa full cloud, stateless, serverless, intrinsecamente scalabile e cross platform, fruibile da web e da mobile app tramite una API REST.
Qua si serve solo migliore tecnologia mio pappa diceva (questa è un po' di nicchia, ma sta uscendo Ready Player One e citare gli anni '80 va di moda).
Nella prima puntata (si, perché ho altre idee in serbo) vediamo cosa si può fare su Azure e più in generale con l'ecosistema Micro$oft.
Per cominciare al giorno d'oggi NON puoi considerarti un moderno developer se non scrivi microservizi, preferibilmente su architettura serverless, su Azure mamma M$ ci mette a disposizione Azure Functions.
Dopo aver dato un'occhiata alle prime pagine della doc mi sembra che si possa creare in modo semplice una function che risponda a chiamate HTTP, bene, ci siamo.
Con una googlata trovo anche questo articolo che spiega passo passo come referenziare un assembly nella mia function: ottimo! Così riciclo la libreria TinyGrammar as is  per ridurre notevolmente il time to market (notate la sapiente commistione di nerdese con alcune espressioni che possano compiacere l'eventuale project manager fuffoso).
A questo punto per fare il figo dovrei mettere i file di testo delle grammatiche su uno storage account e leggerlo dalla function, ma io sono pigro e quindi ficco dentro tutto il testo in una bella stringa :-P
Risultato funzionante (da notare la finezza che ritorno HTTP 200 anche se va in errore):

Sono serverless, stateless e useless, mi sento sulla cresta dell'onda.
Arrivati qua ci si potrebbe accontentare di puntare all'URL della nostra function per ottenere fuffa randomica sul nostro browser, ma come si fa a presentare un progetto senza UI? La user experience non è per nulla soddisfacente e non si dimostra di essere full stack!
Il primo esperimento è stato creare un sito statico sempre hostato su uno storage account di Azure, con una fetch() che richiama il nostro servizio il gioco è fatto e dimostro di avere notevoli competenze Javascript :-P
Ma se al giorno d'oggi non fornisci un'app mobile che sviluppatore sei? Probabilmente il mercato dell'industry 4.0 non ti si fila nemmeno.
Per fortuna ho anche un'account di Office 365 e avevo giocherellato con Microsoft Flow, che il client mobile già ce l'ha.
L'adozione di Flow non si deve certo alla mia innata pigrizia (nooo!) ma alla pervicace intenzione di non indulgere in dannosi anti-pattern, come il famigerato NIH.
Vabbè, insomma questo era pronto e con 4 click è venuto fuori questo gioiellino: Fuffa as a Service on demand con notifiche push su app mobile (vedi sotto)!
Nei prossimi episodi (in ordine sparso): conversione in .NET Standard e console app .NET Core per girare su Linux, porting su AWS, verie ed eventuali.
See you.





Commenti

  1. Ho finito di leggere da 5 minuti e sto ancora ridendo...

    Davvero complimenti per l'uso originale full-stack-serverless-OOP-4.0-Agil-Progressive-FuffaWeb della mia libreria! :-)

    Hai spiegato il suo funzionamento meglio di quanto potessi fare io...

    Mi hai dato diversi spunti; ho sottoscritto il blog e non vedo l'ora di leggere le prossime puntate.

    Massimo

    RispondiElimina

Posta un commento

Post popolari in questo blog

Jolie on Azure Functions

Gateway Consorzio Triveneto per WP e-commerce

Jolie micro services on Kubernetes