1. #LRIS17 | @AriadneSrl
Containerized Liferay
How Ariadne enables Banco do Brasil to speed up innovation with
DevOps
Filippo Frignocca, Pm e Software Architect, Ariadne
Marcello Torriani, CTO Ariadne
2. #LRIS17 | @AriadneSrl
“Innovation enabler”
Ariadne da 23 anni si propone come abilitatore
tecnologico per le aziende.
Con Ariadne Digital estende questa vocazione al di là
della tecnologia includendo metodologie e processi di
design, offrendosi quindi come abilitatori di innovazione.
4. #LRIS17 | @AriadneSrl
Un cliente “illuminato”
Banco do Brasil ci ha dato la possibilità di esprimere tutta
la nostra capacità.
(Stamattina abbiamo già parlato della parte di design)
L’innovazione è stato un mantra pervasivo nella sua
conduzione e quindi non poteva non toccare lo sviluppo e
l’esercizio imponendo l’adozione di tecniche di DevOps.
#LRIS17 | @AriadneSrl
5. #LRIS17 | @AriadneSrl
Banco do Brasil
• una delle maggiori banche del Brasile, fondata nel
1808, una delle banche più antiche del continente
americano.
• espansione della presenza internazionale con più di 44
sedi al di fuori del Brasile, suddivise in “branches”
• Più di 100.000 dipendenti nel mondo.
• 132°posto nella lista Forbes delle aziende pubblice
mondiali, con 29 miliardi di dollari di “Market Cap”.
6. #LRIS17 | @AriadneSrl
Intranet EMEA
• BBAG – Raggruppamento EMEA dell’istituto con 6
branches in Europa.
• Sede principale in Austria (Vienna).
• Circa 200 dipendenti nelle varie sedi.
• Progetto per la intranet di gruppo con sezioni dedicate
alle singole branches.
7. #LRIS17 | @AriadneSrl
Esigenza di innovazione
• Novità
– Fare cose (relativamente) nuove
• Metodo
– Con modalità innovative
• Velocità
– Potendo “vedere” rapidamente l’avanzamento dei passi fatti
– Organizzandosi per inserire rapidamente cose nuove
9. #LRIS17 | @AriadneSrl
Metodologia DevOps
DevOps (development + operations)
è una metodologia di sviluppo del software
che punta alla comunicazione, collaborazione
e integrazione tra sviluppatori e addetti alle
operations. DevOps vuole rispondere
all'interdipendenza tra sviluppo software e IT
operations, puntando ad aiutare
un'organizzazione a sviluppare in modo più
rapido ed efficiente prodotti e servizi software.
10. #LRIS17 | @AriadneSrl
Banco do Brasil – Innovation Lab
• Infrastruttura in Brasile per le nuove
tecnologie.
• Accesso in VPN via Google Authenticator
• Forte orientamento al DevOps
• Standardizzazione delle procedure di
deploy
12. #LRIS17 | @AriadneSrl
Containers vs Macchine Virtuali
Un Deployment semplificato
impacchettando un’applicazione in un singolo componente distribuibile e configurabile con
una sola linea di comando, la tecnologia a container permette di semplificare il
deployment di qualsiasi applicazione, senza doversi preoccupare della configurazione
dell’ambiente di runtime;
Una disponibilità rapida
virtualizzando ed astraendo solo il sistema operativo e le componenti necessarie
all’esecuzione dell’applicazione, invece che l’intera macchina, l’intero package si avvia in
un ventesimo di secondo, rispetto ai tempi di avvio di una VM;
Un controllo più granulare
i container consentono agli operatori e agli sviluppatori di suddividere ulteriormente le
risorse computazionali in microservizi, garantendo così un controllo superiore
sull’eseguibilità delle applicazioni e un miglioramento delle prestazioni dell’intero sistema.
13. #LRIS17 | @AriadneSrl
OK, ma con Liferay?
• Un container è una ulteriore infrastruttura che
non aggiunge “valore” a Liferay
• Anzi ”complica” le cose: ci sono già un sacco
di container:
– Application Server
– Portlet, … (OSGI per la 7)
• Abbiamo già le VM
• Per lo sviluppatore è davvero meglio? Devo
riavviare sempre il container ad ogni modifica?
14. #LRIS17 | @AriadneSrl
La nostra esperienza
• Iniziale gap per il setup dei container
• Procedure di CI/CD automatizzate
• A regime l’overhead del rilascio in
ambiente UAT risulta azzerato.
• Pipeline facili da configurare in
dipendenza del branch
• Container gestiti da appositi “runner”
• Minimo overhead anche lato sviluppo
(ma in sviluppo non abbiamo i
container… vero?)
15. #LRIS17 | @AriadneSrl
Alcune “chicche”
• Progetto “LIFERAYCTL”
https://github.com/azzazzel/liferay-docker-images
• Immagini aggiornate su docker hub
https://hub.docker.com/r/mdelapenya/liferay-portal/
• Facile creare i propri Dockerfile
• Bisogna fare attenzione ai proxy!
• La stessa immagine docker può essere
eseguita con configurazioni differenti
17. #LRIS17 | @AriadneSrl
Ambiente di DevOps realizzato
• Liferay SDK + Liferay Developer Studio
• GitLab come repository GIT per il versionamento
• Progetto Docker per la gestione del CI/CD
• Container per Portale e Indice di ricerca ElasticSearch
• Configurazione della Pipeline di Build/Deploy su GitLab
• Gestione dei log del container su ElasticSearch
• Piattaforma di monitoraggio su Kibana
19. #LRIS17 | @AriadneSrl
Altre “chicche”
• Se non si ha accesso al Runner si ha
poco controllo (ma forse non è poi un male…)
• La lettura dei log su Kibana,
inizialmente è un po’ criptico
• Buona l’interfaccia per seguire le
pipeline in GitLab
• Il db può essere anche lui un
container (provato)
• Un po’ complicato implementare la
procedura di ripristino di un backup
(DL + DB)
22. #LRIS17 | @AriadneSrl
Cosa ci portiamo a casa
• la possibilità di “versionare” anche l’environment
• definizione semplice della pipeline di rilascio
• velocità di rilascio
• non è adatto all’ambiente di sviluppo (a meno che…)
• bisogna fare molta attenzione allo storage hot deploy
24. #LRIS17 | @AriadneSrl
Evoluzioni
• Liferay 7 / DXP / Cluster / DB
container
• Container Orchestration
(Kubernetes vs. Openshift)
• Adozione del modello DevOps in
altri progetti
25. #LRIS17 | @AriadneSrl
Liferay 7 in container
• Container generati sulla base delle immagini di docker hub semplici
da creare e funzionanti già GA5 (CE)
• L’estensione DXP non ancora testata, ma 6.2 EE semplice da
configurare, passando la licenza nella configurazione del container.
• Già presente guida per creare un “docker compose” per Liferay 7 CE
GA5 in Cluster (https://www.dontesta.it/en/2017/11/02/liferay-7-the-cluster-is-back-and-
how-to-get-it/)
27. #LRIS17 | @AriadneSrl
Banco do Brasil
• Orchestrazione dei container in
produzione
• Adozione di OpenShift
• Utilizzo degli strumenti DevOps integrati
nella suite
28. #LRIS17 | @AriadneSrl
Altri progetti
• I nuovi progetti da estate 2017 sono
implementati utilizzando queste tecniche di
CI/CD (verso DevOps)
• Stiamo sperimentando il setup per la DXP
• E’ stato utilizzato Kubernetes come
“orchestratore”
29. #LRIS17 | @AriadneSrl
La tecnica/metodologia/cultura DevOps è
un importante abilitatore di innovazione.
Farci trovare pronti ha pagato,
consentendoci di accompagnare con
successo un cliente “illuminato”
creando valore sia per lui che per noi.
Ariadne da sempre vuole proporsi come abilitatore tecnologico e oggi di più come abilitatore di innovazione.
Ariadne mantiene la sua identità tecnologica e oggi vuole portare innovazione attraverso 3 linee tecnologiche
Container e piattaforme di gestione container
Cloud e architetture serverless
Intelligenza artificiale
Ed in questo contesto ovviamente in relazione a Liferay
Il nostro intervento pianificato in precedenza era quindi posizionato sul nostro fronte di ricerca innovativa: quando abbiamo avuto problemi pratici (la presenza di Marco Piastra) nel poterlo presentare, abbiamo subito selezionato un tema per noi allo stesso livello. I Container e Liferay.
[eventuale rimando al seminario AI]
[Ne parla Filippo]
@FILIPPO Story telling su innovation Lab
Illustrare i dubbi dell’utilità di inserire LR in un container.
Al termine, nelle “lesson learned” illustrare come/se abbiamo superato questi dubbi
@Filippo: anche qui un po’ di storytelling della nostra esperienza
elenco crudo dei punti toccati;
Noi ci siamo fermati al CI/CD
Ricordarsi di fare riferimento ai dubbi sull’uso di container per LR