SlideShare une entreprise Scribd logo
1  sur  31
#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
#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.
#LRIS17 | @AriadneSrl
1 2 3
Container
• DevOps
• Microservices
Serverless
• Managed
Workload
• Microservices
Artificial
Intelligence
• Smart
services/apps
Ariadne: linee di innovazione tecnologica
…con Liferay 
#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
#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”.
#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.
#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
#LRIS17 | @AriadneSrl
DEVOPS
#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.
#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
#LRIS17 | @AriadneSrl
CONTAINER
#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.
#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?
#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?)
#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
#LRIS17 | @AriadneSrl
METTIAMO TUTTO INSIEME
#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
#LRIS17 | @AriadneSrl
Schema di architettura
Develop
environment
#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)
#LRIS17 | @AriadneSrl
STATO ATTUALE
E LESSON LEARNED
#LRIS17 | @AriadneSrl
DevOps?
#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
#LRIS17 | @AriadneSrl
E DOPO?
#LRIS17 | @AriadneSrl
Evoluzioni
• Liferay 7 / DXP / Cluster / DB
container
• Container Orchestration
(Kubernetes vs. Openshift)
• Adozione del modello DevOps in
altri progetti
#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/)
#LRIS17 | @AriadneSrl
Container Platform
• Kubernetes
• Openshift
• Fabric8
#LRIS17 | @AriadneSrl
Banco do Brasil
• Orchestrazione dei container in
produzione
• Adozione di OpenShift
• Utilizzo degli strumenti DevOps integrati
nella suite
#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”
#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.
#LRIS17 | @AriadneSrl
Filippo Frignocca
Pm e Software
Architect,
Ariadne
Marcello Torriani
CTO,
Ariadne
#LRIS17 | @AriadneSrl

Contenu connexe

Similaire à Containerized Liferay

Similaire à Containerized Liferay (20)

Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migration
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
 
Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web Services
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
DevOps - Come diventare un buon DevOpper
DevOps -  Come diventare un buon DevOpperDevOps -  Come diventare un buon DevOpper
DevOps - Come diventare un buon DevOpper
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Distribuisci software migliori più velocemente con DevOps
Distribuisci software migliori più velocemente con DevOpsDistribuisci software migliori più velocemente con DevOps
Distribuisci software migliori più velocemente con DevOps
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
MySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microserviziMySQL Day Milano 2018 - Le architetture a microservizi
MySQL Day Milano 2018 - Le architetture a microservizi
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio Devops
 
Meetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e KubernetesMeetup ASP.NET Core e Kubernetes
Meetup ASP.NET Core e Kubernetes
 
Kiratech "Qualità, metodologia e competenza al servizio della Digital Enterpr...
Kiratech "Qualità, metodologia e competenza al servizio della Digital Enterpr...Kiratech "Qualità, metodologia e competenza al servizio della Digital Enterpr...
Kiratech "Qualità, metodologia e competenza al servizio della Digital Enterpr...
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
 
System integration: Drupal tra Alfresco ed Ext JS
System integration: Drupal tra Alfresco ed Ext JSSystem integration: Drupal tra Alfresco ed Ext JS
System integration: Drupal tra Alfresco ed Ext JS
 

Containerized Liferay

  • 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.
  • 3. #LRIS17 | @AriadneSrl 1 2 3 Container • DevOps • Microservices Serverless • Managed Workload • Microservices Artificial Intelligence • Smart services/apps Ariadne: linee di innovazione tecnologica …con Liferay 
  • 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
  • 18. #LRIS17 | @AriadneSrl Schema di architettura Develop environment
  • 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)
  • 20. #LRIS17 | @AriadneSrl STATO ATTUALE E LESSON LEARNED
  • 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/)
  • 26. #LRIS17 | @AriadneSrl Container Platform • Kubernetes • Openshift • Fabric8
  • 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.
  • 30. #LRIS17 | @AriadneSrl Filippo Frignocca Pm e Software Architect, Ariadne Marcello Torriani CTO, Ariadne

Notes de l'éditeur

  1. Ariadne da sempre vuole proporsi come abilitatore tecnologico e oggi di più come abilitatore di innovazione.
  2. 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]
  3. [Ne parla Filippo]
  4. @FILIPPO Story telling su innovation Lab
  5. Illustrare i dubbi dell’utilità di inserire LR in un container. Al termine, nelle “lesson learned” illustrare come/se abbiamo superato questi dubbi
  6. @Filippo: anche qui un po’ di storytelling della nostra esperienza
  7. elenco crudo dei punti toccati; Noi ci siamo fermati al CI/CD
  8. Ricordarsi di fare riferimento ai dubbi sull’uso di container per LR
  9. Sarebbe carino dire qualcosa