SlideShare a Scribd company logo
Devops, Cloud e Container
MoM - Bologna, 20/12/2016
↘ Speaker: Luca Acquaviva
lacquaviva@imolinfo.it
Agenda
› Cos’è un’applicazione
▪ Attori in gioco e percezioni diverse
› DevOps
▪ Come deve cambiare il delivery
› Cloud
▪ Come deve cambiare l’infrastruttura
› Container
▪ Application container come elemento di
semplificazione
2
Il punto di vista utente
3
Come l’utente percepisce l’applicazione
“Nell’immaginario collettivo un’applicazione web è vista come un semplice
sito web che fornisce funzionalità ben definite e sempre disponibili”
Purtroppo questa affermazione non è sempre vera perché sistemi
apparentemente semplici in realtà sono complessi e caratterizzati da molti
componenti.
4
Come è in realta
▪ Molte tecnologie in gioco…
5
Come è in realtà
▪ Architettura distribuita
e costituita da sistemi
con caratteristiche
differenti
▪ Team di sviluppo distinti
e con obiettivi differenti
▪ …
Mobile API
Push-Notification
Web Site
Monitoraggio
App
IOS
App
Android
6
il team di sviluppo
▪ Focalizzato sullo sviluppo del proprio componente
▪ Non è interessato al sistema complessivo né all’infrastruttura e
tipicamente ne richiede la predisposizione ed attende la disponibilità
▪ Quando possibile crea riproduzioni parziali e non fedeli dell’ambiente
reale
7
E chi gestisce l’operatività del sistema?
▪ Sistemi e Infrastrutture da predisporre
▪ Installazione e configurazione ambienti
▪ Monitoraggio del sistema
▪ Capacity planning
E in caso di problemi?
▪ Spreco di effort in attività di troubleshooting
▪ Richieste di supporto “sparse” ai Team di sviluppo
8
Da Monolite a Microservizi
▪ Cosa Implica?
▪ La complessità aumenta
▪ Maggior numero di componenti, team di sviluppo e infrastrutture
▪ Maggior numero di rilasci, più frequenti ma di minore impatto
▪ Se l’operatività rimane manuale
▪ Aumentano gli errori
▪ La qualità percepita dall’utente si abbassa
L’intero processo di delivery del software deve essere rivisto
9
Agenda
› Cos’è un’applicazione
▪ Attori in gioco e percezioni diverse
› DevOps
▪ Come deve cambiare il delivery
› Cloud
▪ Come deve cambiare l’infrastruttura
› Container
▪ Application container come elemento di
semplificazione
10
DevOps
DevOps is a set of practices that emphasizes the collaboration and
communication of both software developers and other information-
technology (IT) professionals while automating the process of software
delivery and infrastructure changes.
It aims at establishing a culture and environment where building, testing,
and releasing software can happen rapidly, frequently, and more reliably
Wikipedia
11
Delivery Pipeline
Una pipeline deve prevedere
▪ Build automation e Continuous Integration
▪ Test Automation
▪ Deployment Automation
▪ Provisioning e Configuration Management
▪ Per la creazione automatica di ambienti fedeli e ripetibili
12
Obiettivi e Vantaggi
▪ Sviluppatori maggiormente coinvolti
▪ Incremento della qualità del codice
▪ Automatizzazione dell’infrastruttura e della sua evoluzione
▪ Ambienti riproducibili, testabili e versionabili
▪ Efficienza Deployment
▪ Aumenta l’efficienza e la velocità del deploy
▪ Minimizza il numero di roll-back
▪ Risoluzione dei Defect
▪ Aumenta la capacità di riprodurre i defect
▪ Minimizza i tempi di ripristino (MTTR)
13
Cosa serve per realizzarlo?
▪ Ambienti fedeli e facilmente riproducibili
▪ Provisioning Automatizzato e Configuration Management “As a Service”
▪ Processi e delivery pipeline per accelerare il processo di delivery
▪ Build, Test, Integration Test e Release
14
Agenda
› Cos’è un’applicazione
▪ Attori in gioco e percezione
› DevOps
▪ Come deve cambiare il delivery
› Cloud
▪ Come deve cambiare l’infrastruttura
› Container
▪ Application container come elemento di
semplificazione
15
Perchè il Cloud
The biggest benefit of cloud infrastructure came from disposable virtual
servers that could be easily provisioned and reprovisioned,
automatically
IT operations teams realised that it is far more expensive to debug and fix a
faulty virtual server than to replace it with a new server
16
Quindi?
▪ Utilizzo di IaaS come infrastruttura
▪ Provisioning automatizzato degli ambienti
▪ Scaling orizzontale ed Elastico
▪ Alta affidabilità
▪ Infrastruttura immutabile
▪ Riduzione dei costi di Troubleshooting
Resta un problema aperto: come distribuisco l’applicazione?
17
Agenda
› Cos’è un’applicazione
▪ Attori in gioco e percezione
› DevOps
▪ Come deve cambiare il delivery
› Cloud
▪ Come deve cambiare l’infrastruttura
› Container
▪ Application container come elemento di
semplificazione del delivery
18
Container
OS Container: Contesto di esecuzione isolato basato sulla virtualizzazione
offerta dal sistema operativo
▪ Simili alle Macchine Virtuali, ma molto più leggeri
▪ non offre alcun vantaggio nel delivery di un applicazione
L’introduzione del concetto degli “Application Container ” (Docker)
rivoluziona il modo di distribuire applicazioni
Docker: Progetto open-source per automatizzare il deployment di
applicazioni all'interno di OS Container.
19
Docker Concetti Base
▪ Immagine
▪ Costruita in modo dichiarativo a partire da un descrittore Dockerfile
▪ Estende un immagine di base “Layered Software” limita lo spazio disco
▪ Registry
▪ Repository pubblico o privato per il versionamento delle immagini
▪ Container
▪ Contesto di runtime dell’immagine
20
Container: Caratteristiche
▪ Deployment semplificato: componente distribuibile e configurabile con
una sola linea di comando
▪ Disponibilità rapida: avvio in tempi molto inferiori rispetto ad una VM
▪ Controllo più granulare: i container consentono di suddividere
ulteriormente le risorse computazionali in processi/microservizi
▪ Maggiore Densità Computazionale: Maggiore densità di processi per
macchina host, ottimizzazione dell’utilizzo delle risorse
21
Container: cosa cambia
I Container rivoluzionano
▪ DevOps
▪ Nelle delivery Pipeline i container portano numerosi vantaggi in termini di
▪ Replica di ambienti
▪ Possibilità di costruire velocemente delle pipeline di delivery
▪ Facilitano lo sviluppo, test e rilascio
▪ Il Cloud
▪ I Container sono “Immutable Infrastructure”
▪ Possono essere utilizzati per installare applicazioni e definire infrastrutture
riproducibili
22
Quindi?
▪ DevOps: Delivery Pipeline per la creazione delle immagini, test e
distribuzione su vari ambienti
▪ Cloud: Utilizzo di Virtual Server on premise, (IaaS)
▪ Modello di cloud Ibrido
▪ Application container: per la distribuzione delle applicazioni in
architettura a Microservizi
23
Come cambia lo sviluppo?
Sviluppare per il continuous delivery, cloud e container richiede di
progettare le applicazioni seguendo alcuni requisiti.
https://12factor.net/it/
Qui vengono elencati i 12 requisiti che, se rispettati, permettono di risolvere
problemi comuni che impedirebbero il continuous delivery.
24
DOMANDE, DUBBI, CURIOSITÀ?
Question Time
25
▪ Più di 20 anni di esperienza nell’Enterprise IT
▪ Consulenza e Skill Transfer su Architetture, Integrazione e Processo
▪ OMG Influence Member, JSR 312 Expert Group, CSI, WWISA,
OpenESB Key Partner, NetBeans Strategic Partner
▪ La comunita’ italiana dedicata a Java
▪ 10 anni di articoli, pubblicazioni, libri, eventi, training
▪ Dai programmatori agli architetti
▪ Piu’ di 1.000.000 pagine lette al mese
▪ Business partner in progetti con alto grado di innovazione
▪ Padroni in tecnologie e architetture mobile
▪ Competenti in architetture dell‘informazione, UX e Design
26

More Related Content

Viewers also liked

Microservizi, scenari del prossimo e del lontano futuro
Microservizi, scenari del prossimo e del lontano futuroMicroservizi, scenari del prossimo e del lontano futuro
Microservizi, scenari del prossimo e del lontano futuro
italianaSoftware
 
Genesi di una tecnologia, dalla ricerca all'industria...
Genesi di una tecnologia, dalla ricerca all'industria...Genesi di una tecnologia, dalla ricerca all'industria...
Genesi di una tecnologia, dalla ricerca all'industria...
italianaSoftware
 
Industria 4.0 - Come verrà rivoluzionata l'industria italiana
Industria 4.0 - Come verrà rivoluzionata l'industria italianaIndustria 4.0 - Come verrà rivoluzionata l'industria italiana
Industria 4.0 - Come verrà rivoluzionata l'industria italiana
italianaSoftware
 
A Framework for Rule-Based Dynamic Adaptation
A Framework for Rule-Based Dynamic AdaptationA Framework for Rule-Based Dynamic Adaptation
A Framework for Rule-Based Dynamic Adaptation
IMDS2014
 
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURESVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
DotNetCampus
 
Communicating Sequential Processes (CSP) in JavaScript
Communicating Sequential Processes (CSP) in JavaScriptCommunicating Sequential Processes (CSP) in JavaScript
Communicating Sequential Processes (CSP) in JavaScript
Max Klymyshyn
 
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in PythonPiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Max Klymyshyn
 
DevOps and Cloud
DevOps and CloudDevOps and Cloud
DevOps and Cloud
Fernando Honig
 
Design - Automating Application Deployment for Hybrid Cloud Environments
Design - Automating Application Deployment for Hybrid Cloud EnvironmentsDesign - Automating Application Deployment for Hybrid Cloud Environments
Design - Automating Application Deployment for Hybrid Cloud Environments
LaurenWendler
 
Cloud-Native DevOps Engineering
Cloud-Native DevOps EngineeringCloud-Native DevOps Engineering
Cloud-Native DevOps Engineering
Diego Pacheco
 
Introduzione ai Microservices
Introduzione ai MicroservicesIntroduzione ai Microservices
Introduzione ai Microservices
Daniele Mondello
 
DevOps in the Cloud
DevOps in the CloudDevOps in the Cloud
DevOps in the Cloud
Eran Stiller
 
Embedding Java code in a Jolie Service
Embedding Java code in a Jolie ServiceEmbedding Java code in a Jolie Service
Embedding Java code in a Jolie Service
JolieLang
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Eberhard Wolff
 
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
Maciej Sawicki
 
Running Javascript as a microservice inside of Jolie
Running Javascript as a microservice inside of JolieRunning Javascript as a microservice inside of Jolie
Running Javascript as a microservice inside of Jolie
JolieLang
 
DevOps adoption in the enterprise
DevOps adoption in the enterpriseDevOps adoption in the enterprise
DevOps adoption in the enterprise
Sanjeev Sharma
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps Accelerators
REAN Cloud
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
Sanjeev Sharma
 
IoT and Microservice
IoT and MicroserviceIoT and Microservice
IoT and Microservice
kgshukla
 

Viewers also liked (20)

Microservizi, scenari del prossimo e del lontano futuro
Microservizi, scenari del prossimo e del lontano futuroMicroservizi, scenari del prossimo e del lontano futuro
Microservizi, scenari del prossimo e del lontano futuro
 
Genesi di una tecnologia, dalla ricerca all'industria...
Genesi di una tecnologia, dalla ricerca all'industria...Genesi di una tecnologia, dalla ricerca all'industria...
Genesi di una tecnologia, dalla ricerca all'industria...
 
Industria 4.0 - Come verrà rivoluzionata l'industria italiana
Industria 4.0 - Come verrà rivoluzionata l'industria italianaIndustria 4.0 - Come verrà rivoluzionata l'industria italiana
Industria 4.0 - Come verrà rivoluzionata l'industria italiana
 
A Framework for Rule-Based Dynamic Adaptation
A Framework for Rule-Based Dynamic AdaptationA Framework for Rule-Based Dynamic Adaptation
A Framework for Rule-Based Dynamic Adaptation
 
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURESVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
 
Communicating Sequential Processes (CSP) in JavaScript
Communicating Sequential Processes (CSP) in JavaScriptCommunicating Sequential Processes (CSP) in JavaScript
Communicating Sequential Processes (CSP) in JavaScript
 
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in PythonPiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
 
DevOps and Cloud
DevOps and CloudDevOps and Cloud
DevOps and Cloud
 
Design - Automating Application Deployment for Hybrid Cloud Environments
Design - Automating Application Deployment for Hybrid Cloud EnvironmentsDesign - Automating Application Deployment for Hybrid Cloud Environments
Design - Automating Application Deployment for Hybrid Cloud Environments
 
Cloud-Native DevOps Engineering
Cloud-Native DevOps EngineeringCloud-Native DevOps Engineering
Cloud-Native DevOps Engineering
 
Introduzione ai Microservices
Introduzione ai MicroservicesIntroduzione ai Microservices
Introduzione ai Microservices
 
DevOps in the Cloud
DevOps in the CloudDevOps in the Cloud
DevOps in the Cloud
 
Embedding Java code in a Jolie Service
Embedding Java code in a Jolie ServiceEmbedding Java code in a Jolie Service
Embedding Java code in a Jolie Service
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
 
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
DevOps FTW!, Will cloud and DevOps make you sleep peacefully?
 
Running Javascript as a microservice inside of Jolie
Running Javascript as a microservice inside of JolieRunning Javascript as a microservice inside of Jolie
Running Javascript as a microservice inside of Jolie
 
DevOps adoption in the enterprise
DevOps adoption in the enterpriseDevOps adoption in the enterprise
DevOps adoption in the enterprise
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps Accelerators
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
IoT and Microservice
IoT and MicroserviceIoT and Microservice
IoT and Microservice
 

Similar to Devops, Cloud e Container

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
Par-Tec S.p.A.
 
Containerized Liferay
Containerized LiferayContainerized Liferay
Containerized Liferay
Teresa Dallera
 
Introduzione A Docker
Introduzione A DockerIntroduzione A Docker
Introduzione A Docker
Yefry Figueroa
 
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
Par-Tec S.p.A.
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
Eugenio Minardi
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
Roberto Messora
 
Tesi8
Tesi8Tesi8
Tesi8
tryyrt
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
opencityplatform
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
Giulio Vian
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
Riccardo Zamana
 
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
blexin
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Par-Tec S.p.A.
 
Microservices
MicroservicesMicroservices
Microservices
Massimo Romano
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
Emerasoft, solutions to collaborate
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
Mauro Servienti
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
Romualdo Gobbo
 
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxImpara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
EduardCapanu
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
opencityplatform
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentials
antimo musone
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Kiratech
 

Similar to Devops, Cloud e Container (20)

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
 
Containerized Liferay
Containerized LiferayContainerized Liferay
Containerized Liferay
 
Introduzione A Docker
Introduzione A DockerIntroduzione A Docker
Introduzione A Docker
 
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
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Tesi8
Tesi8Tesi8
Tesi8
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
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
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 
Microservices
MicroservicesMicroservices
Microservices
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxImpara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Multi Cloud essentials
Multi Cloud essentialsMulti Cloud essentials
Multi Cloud essentials
 
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native EnterpriseRed Hat OpenShift: l'abilitatore della Cloud Native Enterprise
Red Hat OpenShift: l'abilitatore della Cloud Native Enterprise
 

Devops, Cloud e Container

  • 1. Devops, Cloud e Container MoM - Bologna, 20/12/2016 ↘ Speaker: Luca Acquaviva lacquaviva@imolinfo.it
  • 2. Agenda › Cos’è un’applicazione ▪ Attori in gioco e percezioni diverse › DevOps ▪ Come deve cambiare il delivery › Cloud ▪ Come deve cambiare l’infrastruttura › Container ▪ Application container come elemento di semplificazione 2
  • 3. Il punto di vista utente 3
  • 4. Come l’utente percepisce l’applicazione “Nell’immaginario collettivo un’applicazione web è vista come un semplice sito web che fornisce funzionalità ben definite e sempre disponibili” Purtroppo questa affermazione non è sempre vera perché sistemi apparentemente semplici in realtà sono complessi e caratterizzati da molti componenti. 4
  • 5. Come è in realta ▪ Molte tecnologie in gioco… 5
  • 6. Come è in realtà ▪ Architettura distribuita e costituita da sistemi con caratteristiche differenti ▪ Team di sviluppo distinti e con obiettivi differenti ▪ … Mobile API Push-Notification Web Site Monitoraggio App IOS App Android 6
  • 7. il team di sviluppo ▪ Focalizzato sullo sviluppo del proprio componente ▪ Non è interessato al sistema complessivo né all’infrastruttura e tipicamente ne richiede la predisposizione ed attende la disponibilità ▪ Quando possibile crea riproduzioni parziali e non fedeli dell’ambiente reale 7
  • 8. E chi gestisce l’operatività del sistema? ▪ Sistemi e Infrastrutture da predisporre ▪ Installazione e configurazione ambienti ▪ Monitoraggio del sistema ▪ Capacity planning E in caso di problemi? ▪ Spreco di effort in attività di troubleshooting ▪ Richieste di supporto “sparse” ai Team di sviluppo 8
  • 9. Da Monolite a Microservizi ▪ Cosa Implica? ▪ La complessità aumenta ▪ Maggior numero di componenti, team di sviluppo e infrastrutture ▪ Maggior numero di rilasci, più frequenti ma di minore impatto ▪ Se l’operatività rimane manuale ▪ Aumentano gli errori ▪ La qualità percepita dall’utente si abbassa L’intero processo di delivery del software deve essere rivisto 9
  • 10. Agenda › Cos’è un’applicazione ▪ Attori in gioco e percezioni diverse › DevOps ▪ Come deve cambiare il delivery › Cloud ▪ Come deve cambiare l’infrastruttura › Container ▪ Application container come elemento di semplificazione 10
  • 11. DevOps DevOps is a set of practices that emphasizes the collaboration and communication of both software developers and other information- technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably Wikipedia 11
  • 12. Delivery Pipeline Una pipeline deve prevedere ▪ Build automation e Continuous Integration ▪ Test Automation ▪ Deployment Automation ▪ Provisioning e Configuration Management ▪ Per la creazione automatica di ambienti fedeli e ripetibili 12
  • 13. Obiettivi e Vantaggi ▪ Sviluppatori maggiormente coinvolti ▪ Incremento della qualità del codice ▪ Automatizzazione dell’infrastruttura e della sua evoluzione ▪ Ambienti riproducibili, testabili e versionabili ▪ Efficienza Deployment ▪ Aumenta l’efficienza e la velocità del deploy ▪ Minimizza il numero di roll-back ▪ Risoluzione dei Defect ▪ Aumenta la capacità di riprodurre i defect ▪ Minimizza i tempi di ripristino (MTTR) 13
  • 14. Cosa serve per realizzarlo? ▪ Ambienti fedeli e facilmente riproducibili ▪ Provisioning Automatizzato e Configuration Management “As a Service” ▪ Processi e delivery pipeline per accelerare il processo di delivery ▪ Build, Test, Integration Test e Release 14
  • 15. Agenda › Cos’è un’applicazione ▪ Attori in gioco e percezione › DevOps ▪ Come deve cambiare il delivery › Cloud ▪ Come deve cambiare l’infrastruttura › Container ▪ Application container come elemento di semplificazione 15
  • 16. Perchè il Cloud The biggest benefit of cloud infrastructure came from disposable virtual servers that could be easily provisioned and reprovisioned, automatically IT operations teams realised that it is far more expensive to debug and fix a faulty virtual server than to replace it with a new server 16
  • 17. Quindi? ▪ Utilizzo di IaaS come infrastruttura ▪ Provisioning automatizzato degli ambienti ▪ Scaling orizzontale ed Elastico ▪ Alta affidabilità ▪ Infrastruttura immutabile ▪ Riduzione dei costi di Troubleshooting Resta un problema aperto: come distribuisco l’applicazione? 17
  • 18. Agenda › Cos’è un’applicazione ▪ Attori in gioco e percezione › DevOps ▪ Come deve cambiare il delivery › Cloud ▪ Come deve cambiare l’infrastruttura › Container ▪ Application container come elemento di semplificazione del delivery 18
  • 19. Container OS Container: Contesto di esecuzione isolato basato sulla virtualizzazione offerta dal sistema operativo ▪ Simili alle Macchine Virtuali, ma molto più leggeri ▪ non offre alcun vantaggio nel delivery di un applicazione L’introduzione del concetto degli “Application Container ” (Docker) rivoluziona il modo di distribuire applicazioni Docker: Progetto open-source per automatizzare il deployment di applicazioni all'interno di OS Container. 19
  • 20. Docker Concetti Base ▪ Immagine ▪ Costruita in modo dichiarativo a partire da un descrittore Dockerfile ▪ Estende un immagine di base “Layered Software” limita lo spazio disco ▪ Registry ▪ Repository pubblico o privato per il versionamento delle immagini ▪ Container ▪ Contesto di runtime dell’immagine 20
  • 21. Container: Caratteristiche ▪ Deployment semplificato: componente distribuibile e configurabile con una sola linea di comando ▪ Disponibilità rapida: avvio in tempi molto inferiori rispetto ad una VM ▪ Controllo più granulare: i container consentono di suddividere ulteriormente le risorse computazionali in processi/microservizi ▪ Maggiore Densità Computazionale: Maggiore densità di processi per macchina host, ottimizzazione dell’utilizzo delle risorse 21
  • 22. Container: cosa cambia I Container rivoluzionano ▪ DevOps ▪ Nelle delivery Pipeline i container portano numerosi vantaggi in termini di ▪ Replica di ambienti ▪ Possibilità di costruire velocemente delle pipeline di delivery ▪ Facilitano lo sviluppo, test e rilascio ▪ Il Cloud ▪ I Container sono “Immutable Infrastructure” ▪ Possono essere utilizzati per installare applicazioni e definire infrastrutture riproducibili 22
  • 23. Quindi? ▪ DevOps: Delivery Pipeline per la creazione delle immagini, test e distribuzione su vari ambienti ▪ Cloud: Utilizzo di Virtual Server on premise, (IaaS) ▪ Modello di cloud Ibrido ▪ Application container: per la distribuzione delle applicazioni in architettura a Microservizi 23
  • 24. Come cambia lo sviluppo? Sviluppare per il continuous delivery, cloud e container richiede di progettare le applicazioni seguendo alcuni requisiti. https://12factor.net/it/ Qui vengono elencati i 12 requisiti che, se rispettati, permettono di risolvere problemi comuni che impedirebbero il continuous delivery. 24
  • 26. ▪ Più di 20 anni di esperienza nell’Enterprise IT ▪ Consulenza e Skill Transfer su Architetture, Integrazione e Processo ▪ OMG Influence Member, JSR 312 Expert Group, CSI, WWISA, OpenESB Key Partner, NetBeans Strategic Partner ▪ La comunita’ italiana dedicata a Java ▪ 10 anni di articoli, pubblicazioni, libri, eventi, training ▪ Dai programmatori agli architetti ▪ Piu’ di 1.000.000 pagine lette al mese ▪ Business partner in progetti con alto grado di innovazione ▪ Padroni in tecnologie e architetture mobile ▪ Competenti in architetture dell‘informazione, UX e Design 26