Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Menu
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Cerca
Chiudi

Nel numero:

274 luglio
, anno 2021

“Dockerizziamo” OpenWhisk

I parte: Compilazione

Avatar

Michele Sciabarrà

Michele Sciabarrà, CTO della Sciabarra srl (ma vah!) si occupa di Java da... molto tempo. Per esempio nel 1996 ha scritto il primo articolo su Java, sulla storica rivista Computer Programming, e ha partecipato alla prima conferenza italiana su Java, presentando alcune delle sue applicazioni, tra le prime in Italia realizzate in Java. Strada facendo ha inoltre scritto un paio di libri, è andato a lavorare a Londra dove è stato anche dipendente di Fatwire Software. Dopo mille peripezie si occupa attualmente (che strano) di Fatwire... ops Oracle WebCenter Site e scrive sul suo sito http://www.sciabarra.com/ uno dei più apprezzati blog sull

open whisk docker

“Dockerizziamo” OpenWhisk

I parte: Compilazione

Michele Sciabarrà

Michele Sciabarrà

  • Questo articolo parla di: Architetture dei sistemi, DataBase & elaborazione dei dati, Frameworks & Tools

Che cosa è OpenWhisk?

Apache OpenWhisk è un sistema serverless molto flessibile, sviluppato come progetto open source alla Apache Software Foundation da una grande comunità di oltre duecento persone. È una tipica applicazione distribuita e può quindi essere installato in Kubernetes come sistema distribuito. Può utilizzare Kafka come coda di messaggi e CouchDB come database NoSQL per memorizzare configurazioni e operazioni eseguite. In tutti il suo “fulgore”, ha l’architettura illustrata in figura 1.

Figura 1 – L’architettura di OpenWhisk.
Figura 1 – L’architettura di OpenWhisk.

 

Tutti i componenti di OpenWhisk sono replicabili e scalabili e si può creare un ambiente con centinaia di nodi. Per questo motivo è un ambiente ideale da installare per apprendere come funziona Kubernetes in ambienti realisitici.

Qualche risorsa per conoscere OpenWhisk

Ho deciso pertanto di scrivere una serie di articoli su come si installa OpenWhisk in Kubernetes allo scopo di presentare un tutorial che illustri appunto come lo si installa e come si fanno l’impacchettamento in una immagine Docker e il deployment su Kubernetes. In questo primo articolo vedremo proprio l’installazione e l’impachettamento in Docker.

Ma in questa serie non parlerò di come funziona OpenWhisk stesso in queanto sistema serverless. Chiaramente l’argomento è interessante e da approfondire e, a tale scopo, rimando il lettore al libro in inglese Learning Apache OpenWhisk, pubblicato da O’Reilly e di cui sono l’autore. Per averne un sostanzioso “assaggio”, si può fare riferimento all’ampia anteprima pubblicata su Google Books [1], che peraltro copre tutte le basi.

Oltre a questo, è disponibile su YouTube un corso gratuito in italiano che copre Nimbella [2], che è un servizio serverless commerciale basato su OpenWhisk. Tutto quanto si applica a Nimbella è generalmente valido anche per OpenWhisk, fatta eccezione per alcune estensioni fornite esclusivamente da Nimbella. Ma le informazioni fornite in questi video sono sicuramente utili a comprendere l’utilizzo di OpenWhisk.

 

Compilazione in locale

Vista la parte introduttiva, iniziamo le operazioni di installazione partendo dalla modalità più semplice: installazione in locale in modalità singola (standalone). Questo passo è propedeutico per poi creare un’immagine Docker da usare poi in Kubernetes.

Come vediamo di seguito, si può cominciare a usare OpenWhisk in maniera molto semplice e immediata. Tutto quello che vi serve è Docker stesso, un Java Development Kit per compilare il backend, e Node.js per poter compilare il frontend. Se siete uno sviluppatore, molto probabilmente avrete tutto questo già installato nella vostra macchina.

Scaricare i sorgenti

Se avete i prerequisiti sulla vostra macchina, potete cimentarvi nell’impresa, tutto sommato piuttosto semplice, di installare OpenWhisk e farlo partire in locale. Potete semplicemente scaricare i sorgenti da qui:

https://github.com/apache/openwhisk

Nelle release troverete la versione 1.0, in formato zip e tar.gz.  Vi conviene comunque prendere il master con un bel git clone, in quando è stabile e di solito più aggiornato delle release, e quindi contiene le ultime novità e bug fix.

Compilare

Una volta scaricato e spacchettato, o clonato il sorgente, andate nella directory principale e potete compilare OpenWhisk standalone con:

./gradlew :core:standalone:build

Dovete avere un attimo di pazienza, perché ci mette un po’ a compilare; ma poi avrete OpenWhisk versione locale pronto all’uso. Mentre compila vi consiglio di andare su:

https://github.com/apache/openwhisk-cli

per scaricare la command line interface per il vostro sistema operativo. Una volta scaricata, scompattate il pacchetto e mettete il comandu wsk nel PATH da qualche parte nel vostro sistema. Ad esempio, su Mac e Linux è tipicamente in

/usr/local/bin

mentre su Windows va in

C:\Windows\System32

Avviare OpenWhisk

A questo punto, tutto è pronto per lanciarvi nel mondo del serverless! Potete lanciare OpenWhisk in locale con il comando:

java –jar bin/openwhisk-standalone.jar

Questo dovrebbe normalmente aprire il browser con il playground. Si tratta di una semplice applicazione JavaScript che vi permette di scrivere direttamente nel browser una funzione serverless nei vari linguaggi e di provarla.

 

Sperimentare con il serverless

Una volta che avrete fatto “Hello World!” nel playground, la cosa migliore è scrivere delle applicazioni con un editor, visto che il playground non è un ambiente di sviluppo completo. E qui si rivela utile l’interfaccia a riga di comando wsk.

Questa CLI (Command Line Interface) va anzitutto configurata. Se leggete accuratamente l’output di OpenWhisk quando lo lanciate — fate attenzione, è verso l’inizio, e viene immediatamente “scrollato via” dagli altri messaggi che vengono mostrati — troverete il comando per configurare. Qualcosa tipo:

wsk property set … (omissis)

A questo punto, copiate in un file uno degli esempi che vi presenta il playground, per esempio hello.js, e scrivete:

wks action update hello hello.js

per creare l’azione hello. Ora è possibile invocare tale azione e vedere l’output con

wsk action invoke hello –p name Michele -r

Dovreste vedere un messaggio di benvenuto in formato JSON.

 

Conclusioni

Abbiamo fatto i primi passi con OpenWhisk, imparato come prendere i sorgenti e compilarlo e anche come utilizzarlo in locale. Questo dovrebbe dare l’idea del suo potenziale, che si estrinseca pienamente quando viene messo in Docker e se ne fa il deployment in Kubernetes. Il prossimo passo sarà appunto quello di impacchettarlo in un’immagine Docker, e ne approfitteremo per spiegare un po’ di Docker. Alla seconda parte, dunque.

 

Facebook
Twitter
LinkedIn
Avatar

Michele Sciabarrà

Michele Sciabarrà, CTO della Sciabarra srl (ma vah!) si occupa di Java da... molto tempo. Per esempio nel 1996 ha scritto il primo articolo su Java, sulla storica rivista Computer Programming, e ha partecipato alla prima conferenza italiana su Java, presentando alcune delle sue applicazioni, tra le prime in Italia realizzate in Java. Strada facendo ha inoltre scritto un paio di libri, è andato a lavorare a Londra dove è stato anche dipendente di Fatwire Software. Dopo mille peripezie si occupa attualmente (che strano) di Fatwire... ops Oracle WebCenter Site e scrive sul suo sito http://www.sciabarra.com/ uno dei più apprezzati blog sull

Michele Sciabarrà

Michele Sciabarrà

Michele Sciabarrà, CTO della Sciabarra srl (ma vah!) si occupa di Java da... molto tempo. Per esempio nel 1996 ha scritto il primo articolo su Java, sulla storica rivista Computer Programming, e ha partecipato alla prima conferenza italiana su Java, presentando alcune delle sue applicazioni, tra le prime in Italia realizzate in Java. Strada facendo ha inoltre scritto un paio di libri, è andato a lavorare a Londra dove è stato anche dipendente di Fatwire Software. Dopo mille peripezie si occupa attualmente (che strano) di Fatwire... ops Oracle WebCenter Site e scrive sul suo sito http://www.sciabarra.com/ uno dei più apprezzati blog sull
Tutti gli articoli
Nello stesso numero
Loading...

Blast from the past: Better Software

Apprendere (e divertirsi) con i workshop

Panoramica sulla IT Governance

III parte: AGIT, un 'COBIT agile'

Vita da Scrum Master

XIV parte: La facilitazione e la struttura di un meeting

Nella stessa serie
Loading...

“Dockerizziamo” OpenWhisk

III parte: Docker run

“Dockerizziamo” OpenWhisk

II parte: Dockerfile

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte