#doh19 · 2019. 10. 28. · build automazione completa con tfs 2017 generazione automatica degli...

61
#DOH19

Upload: others

Post on 01-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

#DOH19

Page 2: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

#DOH19 2

Organizer & sponsors

GetLatestVersion.it

Page 3: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Umile piccola storia di un team di BI

Page 4: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 5: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 6: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 7: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 8: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Dobbiamo essere

“AGILE”!

Page 9: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

… OK ...

...

Page 10: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 11: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 12: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Benefici dell’Agile

Page 13: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

A

Buongiorno a tutti!

Page 14: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

A

Page 15: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

● Individui e interazioni vengono prima di processi e strumenti

● La collaborazione con il cliente è più importante della negoziazione

del contratto

● Fornire strumenti di analisi utilizzabili è più importante di una

documentazione completa

● Iterazione, feedback e sperimentazione, invece di progettazione

iniziale comprensiva

● Responsabilità interfunzionali invece che compartimentali

Page 16: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

A

Cosa ne dite?

IO CI CREDO!

Anch’io ci credo... Io non

credo MAI!

Page 17: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Facciamo “Cose Strane”

Page 18: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ok, niente paura!

Ho l’uomo che fa per voi!

Veramente noi facciamo BI su

altre tecnologie...

Fortunatamente il vostro stack per lo sviluppo applicativo basato su

tecnologia MS si integra perfettamente...

Ok, siamo pronti a mettere in

campo l’Agile!

Abbiamo chiarito gli

aspetti culturali e metodologici...

… e come utilizzare TFS 2017 per la gestione del

lavoro...

Ehm...Si?Mmm...

A

Page 19: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Sommario

● Chi Siamo (Dove stiamo andando e perché)

● La nostra esperienza BI DevOps

○ Il nostro scenario

○ Sfide Tecnologiche e Metodologiche

○ Soluzione: Visione e stato avanzamento lavori (con Demo)

Page 20: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Un DevOps Hero contro uno Scenario Mostruoso

Page 21: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

ECCOMI QUA!

Page 22: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ah, Ah!

WOW!Che figo il mantello!

Ed il Database sul petto!

No, è la pila dei dischetti

dell’MVP!

Page 23: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ma ora raccontatemi

del vostro scenario...

Page 24: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Scenario

● Team e Organizzazione○ BI Team (4 persone)

○ Dipartimento sviluppa sistemi gestionali (5 Dev Teams, 50+ Persone)

○ Recente introduzione metodologia Agile

● Attività di Sviluppo○ Data Warehouse che contiene i dati integrati dei sistemi gestionali

○ Modelli dimensionali / mart per applicazioni specifiche

○ Flussi ETL per la movimentazione dei dati

○ Applicazioni analitiche, reports a dashboards

● Tecnologie○ Databases: Vertica, MS SqlServer

○ ETL: SSIS, SQL

○ Presentazione: SAP Business Objects, SSRS, PowerBI

○ (DevOps: TFS 2017, TFVC, PowerShell)

Page 25: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Vertica

OLTPOLTP

OLTPOLTP

OLTP

Stg DWH

RepRep

Rep

MartMart

Mart

Page 26: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

E quali sono i vostri obiettivi?

Page 27: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

● Orientamento al cliente e condivisione delle responsabilità○ Migliorare la comunicazione e la trasparenza

○ Sviluppare la capacità di gestire il cambiamento per supportare l’evoluzione dei bisogni

○ Promuovere la condivisione delle responsabilità ed il coinvolgimento

● Migliorare la condizione del team○ Teamwork e condivisione della conoscenza

○ Sviluppo professionale e crescita delle competenze

○ Migliorare modalità e sostenibilità del lavoro

● Ottimizzare la generazione del valore○ Riduzione del tempo di generazione

○ Qualità, consistenza e predicibilità delle consegne

○ Miglioramento continuo (feedback, revisione retrospettiva, monitoraggio)

○ Semplicità, riutilizzo, riproducibilità, ...

Obiettivi Culturali e Metodologici

Page 28: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

● Ridefinizione dei processi di base: Sviluppo, Build e Rilascio

● Automazione degli stessi (Riutilizzando le technologie in essere)

● Eliminazione delle attività ripetitive e semplificazione del flusso di lavoro

quotidiano

● Porre le basi per il miglioramento sistematico dell’efficienza e della qualità

(Test automatici)

Obiettivi Tecnici e Procedurali

Page 29: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Solo una cosa che non mi è

completamente chiara...

OK, tutto chiaro...

(Ovviamente! Sono un

DevOps Hero di Classe S!)

つづく

Page 30: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Sfide Tecnologiche

Page 31: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

...Che diavolo è

Vertica ?!?

Page 32: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Cos’è Vertica

● Database colonnare

● Caratteristiche○ Performance di query superiori per workflow analitici e funzionalità analitiche in SQL

○ Alta disponibilità e scalabilità lineare su più nodi

○ Economicamente vantaggioso

○ “On Prem Native”

■ => Di nicchia, ma ottimo in funzione del nostro caso d’uso

● Storia○ Nasce nel 2005 come progetto accademico del MIT (C-Store)

○ Commercializzato dall’omonima società fondata nello stesso anno

○ Successivamente acquisito da HP nel 2011 e poi da Micro Focus nel 2017

● Nota terminologica○ Schema (Vertica) = Database (SqlServer)

Page 33: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Schema Compare?

Integrazione con TFS 2017?

Pronto, ma supportate

qualche strumento di sviluppo per

Vertica?

OK, verifichiamo che strumenti ci

sono a disposizione...

Strumenti di sviluppo avanzati,

tipo Database Projects?

Nop...

Va beh, sentiamo Micro Focus...

Nop

Page 34: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Conclusioni

● Mancanza di strumenti di sviluppo specifici per Vertica

● Mancanza di strumenti per la comparazione e l’allineamento degli schemi

● Non ci sono strumenti DevOps per Vertica nei progetti futuri di Micro

Focus

➔ E’ un rischio, ma dovremo sviluppare gli strumenti necessari

internamente

Page 35: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Visione della soluzione

Page 36: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ok ragazzi, gli obiettivi e le sfide tecnologiche sono

chiari...

Ma niente paura! Grazie al potere della mia super visione...

Ma per cominciare ci serve avere una

visione chiara della soluzione da

implementare...

Page 37: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione
Page 38: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

… Anzi no ripensandoci, forse è meglio se facciamo un brainstorming...

Page 39: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

● Esplorazione dei dati○ Resta fondamentale. Accesso a dati anonimizzati in ambiente di integrazione

○ Finalizzata alla individuazione di pattern di dati per lo sviluppo

● Sviluppo○ Riorganizzazione del codice sorgente

■ Separare nettamente le componenti dell’applicazione dalle logiche di build e rilascio

○ Migliorare l’ambiente di sviluppo

■ Sandbox completa dedicata per ciascuno sviluppatore, facilmente ricreabile

● Build○ Automazione completa con TFS 2017

○ Generazione automatica degli script di deploy incrementali (tool sviluppato internamente)

● Rilascio○ Automazione completa con TFS 2017

○ Test (Sviluppo, funzionali, integrazione) inizialmente manuali

Visione

Page 40: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Processo di Sviluppo

Page 41: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ora ragazzi è giunto il

momento di mostrarvi il mio

vero potere...

Page 42: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

IL POTERE DEL

GUSCIO!

Page 43: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

… ? ...Ehm… si

insomma...

…me la cavo con

PowerShell...

Page 44: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Premesse

● Riorganizzazione del codice sorgente

○ Livello logico - Definizione del database. Script separati per ciascun oggetto

○ Livello fisico - Strutture dati di supporto specifiche per ambiente

○ Logiche di build

● Miglioramento dell’ambiente di sviluppo

○ Sandbox dedicata per ciascuno sviluppatore

○ Macchina personale con ambiente di sviluppo Windows

■ VS2017, VSCode, SQL Client, SQL Server, BO Dev Tools, PBI Desktop

○ Macchina virtuale Linux per Vertica

Page 45: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Processo

● Get Latest Version

● Build e deploy su ambiente di sviluppo

○ Progetti SSIS

○ Build da zero schemi Vertica + provisioning dei dati (Script PowerShell)

● Sviluppo su Sandbox

● Test manuali

● Definizione del Changeset candidato

● Rebuild e deploy (changeset candidato) e test

● “Pre Integrazione” (Get Latest Version)

● Commit

Page 46: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Automazione

● Sviluppo

○ Build, rilascio e tests manuali

○ Tools IDE + Script Powershell per provisioning DB Vertica

● Integrazione

○ Forte automazione dei processi di Build e Rilascio

○ TFS 2017 Pipelines + PowerShell

■ Strumenti integrati per SSIS e SqlServer

■ Scripts PowerShell per azioni personalizzate

Page 47: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Demo

Page 48: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Processo di Integrazione

Page 49: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Ok, allora il processo è

chiaro a tutti?Certo!

Certo!Certo!

Page 50: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Obiettivi

● Organizzazione del codice (Solo script di Definizione su SC)

● Automazione completa Build e Release

Problemi

● Generazione script di rilascio incrementali

○ Vincoli: Mancanza tool automatici per allineamento degli schemi

Soluzione

● Sviluppo interno di un tool automatico di allineamento○ Comparazione tra schemi

○ Generazione Scripts incrementali di allineamento

○ Automatico ed integrato nella pipeline di Build

Page 51: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

ShadowDB

Comp. Tool

INT DB

DB Def. Scripts

(SC)

DB Inc. Scripts(Artif.)

Build (Integrazione - Vertica)

Page 52: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Obiettivi

● Organizzazione del codice

● Automazione completa Build e Release

● Integrazione Continua (Schedulata) / Flessibilità di rilascio

Problemi

● (Fattibilità di sviluppare internamente il tool di allineamento automatico)

● Necessità di collezionare e ordinare gli script incrementali parziali

● Necessità di tracciare lo stato del database obiettivo

● Inconsistenze tra stato database e sviluppi in caso di errori di esecuzione

● Script contenenti Mix di Features

Conclusioni

● Necessità di prevedere gestione degli errori e revisione degli obiettivi

Page 53: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Obiettivi

● Organizzazione del codice

● Automazione “Ragionevole” di Build e Release

● Integrazione Continua (Flessibilità di rilascio)

● Gestione degli errori di integrazione (per gestire le inconsistenze)

Soluzione

● Script di rilascio incrementali sviluppati ed eseguiti manualmente

○ Creati in fase di sviluppo (Con eventuale supporto di un tool di comparazione

sviluppato internamente)

● Script di rilascio incrementali parziali atomici per Feature

● Possibilità di ripristinare lo stato del database mediante scripts di rollback

Page 54: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Problemi / Soluzioni

● Fattibilità di sviluppare internamente il tool di allineamento automatico

➔ Non è più necessario (Gestione Manuale)

● Necessità di collezionare e ordinare gli script incrementali parziali

➔ Gestione Manuale

● Necessità di tracciare lo stato del database obiettivo

➔ Non è necessario (Gestione Manuale)

● Inconsistenze tra stato database e sviluppi in caso di errori di esecuzione

➔ Gestibile con scripts di rollback

● Script contenenti Mix di Features (in caso di Build Schedulate)

➔ Script parziali atomici per feature

Page 55: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Code Def. (SC)

SSIS, OtherSSIS,

Other(Artif.)

Build

DB Def. Scripts

(SC)

Vertica

DB Inc. Scripts(Artif.)

DB Inc. Scripts

(SC)

Page 56: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

INT Env

INTDB

DB Inc. Scripts(NO SC)

DB Inc. Scripts

(SC)

SSIS, Other(Artif.)

Release (INTEGRATION)

Tests

Page 57: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

PROD Env

PRODDB

DB Inc. Scripts(Artif.)

SSIS, Other(Artif.)

Release (PRODUCTION)

Page 58: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Conclusioni

Page 59: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

Cosa abbiamo imparato

● Sviluppare una visione è utile

➔ Per fare DevOps, bisogna essere Agile!

● … ma concretizzarla nella pratica il prima possibile

● Pragmatismo nella definizione degli obiettivi

● Iterare!

➔ Iterazione, feedback e sperimentazione➔ Strumenti utilizzabili

Page 60: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

A

Grazie!

Page 61: #DOH19 · 2019. 10. 28. · Build Automazione completa con TFS 2017 Generazione automatica degli script di deploy incrementali (tool sviluppato internamente) Rilascio Automazione

#DOH19

THANK YOU!