domenica 21 febbraio 2016

IBM Connect 2016, le slide della mia sessione " IBM Domino inside a Docker container" con i dockerfile

Quest'anno io ed il mio collega Daniele Vistalli abbiamo avuto l'onore di avere accettata una nostra sessione a IBM Connecti 2016 che si è tenuto ad Orlando all'inizio di Febbraio dal titolo "AD-1772, Shipping Domino, How to put Domino in a Container and live happy".

Docker è una tecnologia open source per Linux che permette di virtualizzare le applicazioni rinchiudendole in container che possono quindi girare in modo indipendete fra di loro su un server. Docker permette quindi di ottimizzare maggiormente l'utilizzo delle risorse del sistema host , utilizzando meno risorse di una intera macchina virtuale.

Prima che iniziate a leggere il post preciso subito che al momento Docker non è una piattaforma ufficialmente supportata da IBM, quindi se pensate di usarla in produzione sui vostri server dovete farlo a vostro rischio.

Dopo l'avvertenza d'obbligo però ci tengo a precisare che Domino dentro un container docker gira ottimamente e se non possiamo pensare di utilizzarlo in produzione possiamo almeno pensare di utilizzarlo per agevolarci nei test e negli sviluppi ( potete trovare i pro leggendo le slides).



Connect2016 - 1172 Shipping domino from Matteo Bisi


Oltre alle slides ho voluto condividere i docker file che abbiamo mostrato durante la parte di demo live della sessione, quindi ho creato un account su github con un repository dedicato che potete trovare a questo link..

La creazione di immagini Docker da cui fare partire i container che andranno eseguiti si può fare manalmente o tramite script chiamati docker file.

Ecco i 3 docker file mostrati durante la sessione che ho condiviso:
  1. Dockerfile-domino4ubuntu-install
  2. Dockerfile-domino4ubuntu-setup
  3. Dockerfile-domino4ubuntu-FP5
Per avere una migliore leggibilita e flessibilità  abbiamo deciso di spezzare la creazione dell'immagine in 3 script, che ovviamente volendo potete racchiudere in 1.

Questi script per essere lanciati richiedono una cartella di lavoro con i seguenti requisiti: 
  • una folder chiamata domino901 che contiene il setup scompattato di domino
  • una folder initscripts che contiene Domino init script form Daniel Nashed (grazie Daniel !) , 
  • serverconfig che contiene i certificatori domino ,il file id dell'amministratore il file pds per l'autoconfiguraizone ed  il txt file con le pw degli id.

Dopo la preparazione della folder di lavoro utilizzando i docker file nell'ordine giusto sarà possibile avere l'immagine :

Lo script Install creerà un immagine partendo da Ubuntu SRV 14.04 LTS installando silenziosamente Domino al suo interno, dopo aver preparato l'ambiente (utenze, etc)

Lo scipt  setup eseguirà il build partendo dall'immagine precedente ed eseguirà anche il setup di domino in modo silenzioso utilizzando un file pds di autoconfigurazione  ( questo file lo otete ottenere utilizzando serverconfig -record dal vostro Notes ) , il corrispondente file txt txt con le pw e gli id coinvolti (certificatore e amministratore).

Per fare il build dell'immagine è necessario utilizzare il comando docker build

docker build -t mbisi/domino901-ready-playground:1.0 -f Dockerfile-domino4ubuntu-setup .

per fare partire l'immagine , mappando le porte in modo statico su quelle dell'host docker run con le seguenti opzioni

docker run -it -p 1352:1352 -p 80:80 -p 443:443 mbisi/domino901-ready-playground:latest


Lo script FP5, esegue un upgrade dell'immagine al fp, rendendo quindi semplice l'upgrade ogni qual volta che IBM rilascia una nuova versione.

Dentro le immagini abbiamo definito come docker volume /local/notesdata rendendo quindi persistenti i dati al suo interno.

Questi dockerfile vogliono essere un esempio ed uno spunto per farvi capire come Domino possa essere installato e configurato velocemente all'interno di un immagine docker rendendone cosi semplice la sua esecuzione dentro un container.

Se non conoscete docker ed ora volete saperne di piu  vi consiglio questi video tutorial per avere un bel quadro della piattaforma.

Nessun commento:

Posta un commento