Click here to load reader
View
326
Download
0
Embed Size (px)
Devops, Cloud e Container
MoM - Bologna, 20/12/2016
Speaker: Luca [email protected]
Agenda
Cos unapplicazione Attori in gioco e percezioni diverse
DevOps Come deve cambiare il delivery
Cloud Come deve cambiare linfrastruttura
Container Application container come elemento di
semplificazione
2
Il punto di vista utente
3
Come lutente percepisce lapplicazione
Nellimmaginario collettivo unapplicazione 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 allinfrastruttura e tipicamente ne richiede la predisposizione ed attende la disponibilit
Quando possibile crea riproduzioni parziali e non fedeli dellambiente reale
7
E chi gestisce loperativit 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 loperativit rimane manuale
Aumentano gli errori
La qualit percepita dallutente si abbassa
Lintero processo di delivery del software deve essere rivisto
9
Agenda
Cos unapplicazione Attori in gioco e percezioni diverse
DevOps Come deve cambiare il delivery
Cloud Come deve cambiare linfrastruttura
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 dellinfrastruttura e della sua evoluzione
Ambienti riproducibili, testabili e versionabili
Efficienza Deployment
Aumenta lefficienza 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 unapplicazione Attori in gioco e percezione
DevOps Come deve cambiare il delivery
Cloud Come deve cambiare linfrastruttura
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 lapplicazione?
17
Agenda
Cos unapplicazione Attori in gioco e percezione
DevOps Come deve cambiare il delivery
Cloud Come deve cambiare linfrastruttura
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
Lintroduzione 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 dellimmagine
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 dellutilizzo 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
https://12factor.net/it/
DOMANDE, DUBBI, CURIOSIT?
Question Time
25
Pi di 20 anni di esperienza nellEnterprise 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 dellinformazione, UX e Design
26