devops, cloud e container

26
Devops, Cloud e Container MoM - Bologna, 20/12/2016 Speaker: Luca Acquaviva [email protected]

Upload: italianasoftware

Post on 22-Jan-2017

346 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Devops, Cloud e Container

Devops, Cloud e Container

MoM - Bologna, 20/12/2016

↘ Speaker: Luca [email protected]

Page 2: Devops, Cloud e Container

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

Page 3: Devops, Cloud e Container

Il punto di vista utente

3

Page 4: Devops, Cloud e Container

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

Page 5: Devops, Cloud e Container

Come è in realta

▪ Molte tecnologie in gioco…

5

Page 6: Devops, Cloud e Container

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

Page 7: Devops, Cloud e Container

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

Page 8: Devops, Cloud e Container

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

Page 9: Devops, Cloud e Container

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

Page 10: Devops, Cloud e Container

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

Page 11: Devops, Cloud e Container

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

Page 12: Devops, Cloud e Container

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

Page 13: Devops, Cloud e Container

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

Page 14: Devops, Cloud e Container

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

Page 15: Devops, Cloud e Container

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

Page 16: Devops, Cloud e Container

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

Page 17: Devops, Cloud e Container

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

Page 18: Devops, Cloud e Container

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

Page 19: Devops, Cloud e Container

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

Page 20: Devops, Cloud e Container

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

Page 21: Devops, Cloud e Container

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

Page 22: Devops, Cloud e Container

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

Page 23: Devops, Cloud e Container

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

Page 24: Devops, Cloud e Container

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

Page 25: Devops, Cloud e Container

DOMANDE, DUBBI, CURIOSITÀ?

Question Time

25

Page 26: Devops, Cloud e Container

▪ 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