Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e...

16
Tesi di laurea In Ingegneria del Software POLITECNICO DI BARI DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELL’INFORMAZIONE Relatore: Prof.ssa Marina MONGIELLO Laureando: Davide GALLITELLI A.A. 2015/2016 Correlatore: Dott. Ing. Francesco NOCERA TECNICHE INNOVATIVE DI SVILUPPO AGILE: METODOLOGIA DEVOPS PER UN MIGLIORE CICLO DI SVILUPPO E RILASCIO SOFTWARE Corso di laurea in Ingegneria Informatica e dell’Automazione

Transcript of Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e...

Page 1: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Tesi di laurea In

Ingegneria del Software

POLITECNICO DI BARIDIPARTIMENTO DI INGEGNERIA ELETTRICA E DELL’INFORMAZIONE

Relatore: Prof.ssa Marina MONGIELLO

Laureando:Davide GALLITELLI

A.A. 2015/2016

Correlatore:Dott. Ing. Francesco NOCERA

TECNICHE INNOVATIVE DI SVILUPPO AGILE:METODOLOGIA DEVOPS PER UN MIGLIORE CICLO DI SVILUPPO E RILASCIO SOFTWARE

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 2: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Corso di laurea inIngegneria Informatica e dell’Automazione

Presentation Structure

I

Introduzione

1. Perchè DevOps

2. Sfide da affrontare

3. Problemi nell’ Adozione

Definizione del Modello

III

Applicativi

1. Gli Strumenti per DevOps

2. Pipelining attraverso

applicativi

IV

Conclusioni

1. I successi di DevOps

II

1. Il Modello C.A.L.M.S.

2. Le Tre Vie di DevOps

3. Continuous Deployment

Page 3: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

IntroduzioneLa necessità di DevOps nel mondo IT

Page 4: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Un’azienda è competitiva se può

rilasciare aggiornamenti e servizi più

velocemente della concorrenza

CompetitivitàIl riscontro dell’utenza è

fondamentale per stabilire obiettivi e

strutturare il lavoro, per aggiungere “valore” al

prodotto

FeedbackUn giusto equilibrio fra

stabilità e aggiornamenti permette di ridurre al

minimo le interruzioni di servizi

Disponibilità

Qualcosa rallenta il ciclo di vita del prodotto. Ma cosa?

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 5: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Conflittualità fra team di Sviluppo (Dev) e sistemisti (Ops)

Instabilità causate da differenze di configurazione fra ambiente di sviluppo, test e produzione

Rilasci lenti in produzione, ovvero limitata produttività

«Un business ottiene migliori risultati quando

gli sforzi sono coordinati e basati sulla

collaborazione»

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 6: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Conoscono i concetti chiave di

DevOps

Corso di laurea inIngegneria Informatica e dell’Automazione

77%

Stanno implementando

approcci o metodi derivati da DevOps

55%

Non conoscono i vantaggi di

DevOps o gli steps fondamentali

51%

Hanno riscontrato benefici economici misurabili,Fra cui maggiore soddisfazione del cliente, riduzione dei costi e minori interruzioni di servizi.

93%

2014 DevOps Adoption Report

Page 7: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Definizione del ModelloLa teoria su DevOps

Page 8: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

C A L SMCulture: collaborazione e comunicazione fra team

Automation: ridurre le rischiose operazioni manuali, creando una pipeline

Lean: ridurre sprechi e lavoro inutile, che non apportano valore aggiunto

Measurement: analizzare le metriche di ogni fase e rifinire i processi

Sharing: condividere esperienze, di successo o no, per migliorarsi

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 9: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Gene KimAmerican entrepreneur, researcher, and author of “DevOps Cookbook” and

“The Phoenix Project: A novel about IT, DevOps, and Helping your Business Win”

System Thinking• Visualizzare e intendere il sistema nella sua

interezza• Permette di ottimizzare i processi e ridurre i colli

di bottigliaAmplify Feedback Loops• Migliorare i processi produttivi grazie al feedback

dei team• Migliorare il prodotto grazie al feedback del

clienteContinual Experimentation and Learning• Rischiare ed imparare dagli errori• Migliorarsi e sfidarsi quotidianamente

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 10: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Test Environme

nt

Stage Environme

nt

Production Environme

nt

Package Build

VCSTeam di Produzione (Dev & Ops)

F E E D B A C K D I P R O D U Z I O N E

C O N T I N U O U S I N T E G R A T I O NC O N T I N U O U S D E L I V E R YC O N T I N U O U S D E P L O Y M E N T

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 11: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Your Company Slogan Here and some Business Information E-Mail: me@materialdesigntemplate l Phone: +49 89 1726182

Applicativi

Page 12: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 13: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Corso di laurea inIngegneria Informatica e dell’Automazione

commit

Version ControlProduction Team

checkout

CI Server

Automatic build

Build status &Docker Image

Build Server Test Environment

Deploy Teststatus Deploy Metrics

Production Environment

Production Feedback

Page 14: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Your Company Slogan Here and some Business Information E-Mail: me@materialdesigntemplate l Phone: +49 89 1726182

Conclusioni

Page 15: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

Pipeline per l’intero ciclo

produttivo, tempo per aggiornare il sito ridotto da

quattro ore con servizio interrotto

a 50 rilasci continui senza interruzioni.

Migrati I servizi su AWS e

creato Simian Army, si sta ora

espandendo globalmente con grande

velocità.

Altri:

TargetWalmartAdobe

Sony Pictures Ent.

NordstromFidelity

Investments

Riduzione delle interruzioni di servizi

utilizzando Chef e migrando al cloud la

propria infrastruttura.

Riduzione dei costi per la capacità e

scalabilità dei server.

Svliuppatori ed ingegneri

rilasciano codice ogni 11.7 secondi

in media.

Tutte le aziende che hanno adottato DevOps hanno riscontrato grandi benefici da questa transizione, e rappresentano prove viventi del successo ottenibile su tutti I livelli attraverso questa metodologia, a prescindere dalle dimensioni o dalla storia dell’azienda.

La maggior parte di esse ha potuto ridurre le interruzioni di servizio, aumentato la velocità di

rilascio di servizi sul mercato, e ridotto i costi per le infrastrutture. In media, nuove

funzionalità vengono aggiunte 30 volte più frequentemente, i servizi sono interrotti 60

volte in meno ed il recupero da tali interruzioni o disastri avviene 168 volte più velocemente.

Corso di laurea inIngegneria Informatica e dell’Automazione

Page 16: Tecniche Innovative di sviluppo Agile: Metodologia DevOps per un migliore ciclo di sviluppo e rilascio software

[email protected]

om

Facebook/DGallitelli95

Twitter@DGallitelli9

5

Github/dgallitelli

Thank you!