Molto spesso in tutta la gestione della vita del software si pensa al database come una cosa mistica, scritto nella pietra, con sue regole e tempi. Questo talk vuole portare un pò di chiarezza su come le nuove tecnologie ma soprattutto le nuove metodologie come il DevOps, permettono di gestire il database come se fosse una componente viva dell'applicazione, versionabile e manutendibile. Con l'aiuto di due prodotti opensource come Liquibase e Flyway a confronto per avere le idee chiare da subito, su come utilizzarlo in casa.
2. Hello!
I AM Diego Mauricio Lagos
Sono un : Devops e Sviluppatore e Tester,
Release Manager
Lavoro per : Proxima Informatica
Collaboro con: Code Garden (ex JUG)
Sono nato in : Colombia
12. LE DIFFICOLTA’ NELLA GESTIONE ED AUTOMATIZZAZIONE DEL DB
◦Utilizza un linguaggio (SQL) ostico ai dev
◦Mito del DB come codice (ciclo di vita del dato)
◦Mantenimento dell’integrità dei dati e del valore
business
◦Diversi attori coinvolti
14. DEVOPS IN TIPS
1. Visione Olistica del sistema
2. Eliminazione dei silos
3. Rapidità nei feedback e nei rilasci
4. Automazione prima di tutto
5. Utilizzo di tecniche agili e Lean
6. Continuos X
15. “
Continuous delivery (CD) is a software
engineering approach in which teams
produce software in short cycles, ensuring
that the software can be reliably released at
any time. It aims at building, testing, and
releasing software faster and more
frequently. The approach helps reduce the
cost, time, and risk of delivering changes by
allowing for more incremental updates to
applications in production
Wikipedia
18. CDD (Continuos Delivery Database)
#responsabilizzazione del team
#review del codice
#creazione di contratti
19. COSA NON FARE
1. Automazione inesistente o sbilanciata
2. Il DBA non esegue la review del codice
3. Rompere i contratti
4. I team sono inibiti dal fare cambiamenti
5. Disallineamento delle modifiche tra gli ambienti
22. LIQUIBASE FEATURES (1/2)
1. JVM based (non serve altro)
2. Utilizzo tramite riga di comando, maven, ant,
oppure integrato all’interno dell’applicazione
3. Ampio supporto ai maggiori DBMS
4. Utilizzo di svariati descrittori (xml,json,sql,…)
23. LIQUIBASE FEATURES (2/2)
1. Idempotenza delle operazioni
2. Rollback delle operazioni
3. Estrazione delle operazioni in SQL
4. Possibilità di eseguire la diff tra due istanze
25. FLYWAY FEATURES
1. JVM based (non serve altro)
2. Utilizzo tramite riga di comando, maven, ant, sbt,
gradle oppure integrato all’interno dell’applicazione
3. Ampio supporto ai maggiori DBMS
4. Utilizzi di solo SQL per me migrazioni
5. Convention Over Configuration
6. Idempotenza delle operazioni
27. NOTE SUI TOOL
1. Nessun tool è perfetto
2. I Workaround saranno sempre con te
3. Automazione ≠ no bugs
4. Preferire la strategia ROLL-FORWARD a quella di
Rollback
5. Versionare anche i dati di configurazione (ma non
quelli sull’utente)
6. I DBA sono i «signor Wolf» della situazione