Skip to content

Commit 871a64a

Browse files
committed
Aggiornamento presentazione
1 parent c3345d8 commit 871a64a

11 files changed

+76
-5
lines changed

CHANGELOG.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
### Changed
1212
### Removed
1313
### Deprecated
14-
### Security
14+
### Security
15+
16+
## [1.0.0] - 2024-05-29
17+
18+
### Added
19+
- Initial release

images/qr_code_link_to_code.png

322 KB
Loading

images/qr_code_to_slide.png

521 KB
Loading

pages/1_10_domande.md

+40-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,43 @@ layout: default
44

55
# Domande?
66

7-
Grazie per l'attenzione! Se avete domande, sono qui per rispondere.
7+
Grazie per l'attenzione! Se avete domande, sono qui per rispondere.
8+
9+
<!--
10+
Possibili domande:
11+
12+
1. Qual è la differenza tra Flyway e Liquibase
13+
14+
Flyway e Liquibase sono due popolari strumenti di gestione delle migrazioni del database che aiutano a versionare e gestire le modifiche dello schema del database in modo sicuro e coerente. Entrambi offrono funzionalità simili ma hanno differenze nelle modalità di funzionamento, configurazione e caratteristiche.
15+
16+
Flyway
17+
Caratteristiche principali:
18+
1. Migrations Based on SQL Scripts: Flyway utilizza principalmente script SQL per definire le migrazioni del database. Può anche supportare migrazioni basate su Java.
19+
2. Versioning: Ogni migrazione è versionata usando un prefisso numerico (es. V1__Create_table.sql).
20+
3. Schema History Table: Flyway tiene traccia delle migrazioni eseguite usando una tabella di cronologia (flyway_schema_history).
21+
4. Semplicità: Flyway è conosciuto per la sua semplicità e facilità d'uso. Non richiede un file di configurazione XML o YAML, ma può essere configurato tramite una semplice API o file di proprietà.
22+
5. Integrations: Flyway si integra facilmente con build tools (Maven, Gradle) e può essere utilizzato come una libreria standalone.
23+
6. Support for Multiple Databases: Flyway supporta numerosi database, tra cui MySQL, PostgreSQL, Oracle, SQL Server, H2, e altri.
24+
25+
Liquibase
26+
Caratteristiche principali:
27+
28+
1. Changelogs: Liquibase utilizza file di changelog per definire le migrazioni del database. Questi file possono essere scritti in XML, YAML, JSON o SQL.
29+
2. Flexibility: Liquibase offre una maggiore flessibilità nella definizione delle migrazioni rispetto a Flyway. Le migrazioni possono includere cambiamenti di struttura, dati, chiamate a funzioni e procedure, ecc.
30+
3. Schema History Table: Liquibase tiene traccia delle migrazioni eseguite utilizzando una tabella di cronologia (DATABASECHANGELOG).
31+
4. Database Independent: Grazie all'uso dei changelog, le migrazioni possono essere definite in modo indipendente dal database. Liquibase può tradurre questi cambiamenti nel dialetto SQL specifico del database in uso.
32+
5. Rollback: Liquibase supporta rollback dettagliati delle migrazioni, permettendo di tornare a uno stato precedente del database.
33+
6. Advanced Features: Liquibase offre funzionalità avanzate come la generazione di changelog differenziali, supporto per refactoring, esecuzione condizionale delle migrazioni, e altro.
34+
7. Integrations: Come Flyway, Liquibase si integra con build tools e framework (Maven, Gradle, Spring Boot, ecc.).
35+
36+
Confronto
37+
1. Semplicità vs. Flessibilità: Flyway è generalmente più semplice e diretto da usare, particolarmente se preferisci lavorare con script SQL. Liquibase offre una maggiore flessibilità e supporta un'ampia gamma di scenari avanzati.
38+
2. Formati di definizione: Flyway si concentra sugli script SQL, mentre Liquibase supporta vari formati (XML, YAML, JSON, SQL) che possono essere più adatti per progetti complessi o multi-database.
39+
3. Rollback: Liquibase offre funzionalità di rollback più avanzate e dettagliate rispetto a Flyway.
40+
4. Configurazione: Flyway richiede meno configurazione iniziale e può essere configurato con semplici file di proprietà o tramite l'API. Liquibase richiede la definizione di changelog in XML/YAML/JSON.
41+
5. Supporto multi-database: Entrambi supportano una vasta gamma di database, ma Liquibase può offrire una maggiore indipendenza dal database grazie ai suoi changelog astratti.
42+
43+
Quale scegliere?
44+
1. Flyway: Ideale se preferisci la semplicità e il controllo manuale sugli script SQL, e se non hai bisogno di funzioni avanzate come rollback dettagliati o migrazioni complesse.
45+
2. Liquibase: Adatto per progetti complessi che richiedono maggiore flessibilità, rollback dettagliati, indipendenza dal database e supporto per formati di definizione delle migrazioni non SQL.
46+
-->

pages/1_11_about_me.md

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ layout: default
1616
- **My GitHub Repositories**: [https://github.com/amusarra]
1717
- **My Blog**: [https://www.dontesta.it]
1818

19+
<div class="top-70% absolute right--10% flex w-90">
20+
<img src="/images/qr_code_to_slide.png" width="30%" height="30%">
21+
<img src="/images/qr_code_link_to_code.png" width="30%" height="30%">
22+
</div>
23+
1924
<div class="top-5% absolute left-75%">
2025
<img src="/images/foto_profilo.png" width="70%" height="70%">
2126
</div>

pages/1_1_introduzione.md

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ distribuito e collaborativo e dove il database è un componente critico del sist
2424
</v-clicks>
2525

2626
<!--
27+
Solitamente la prima slide mostra la TOC (Tabella dei Contenuti) ma ho evitato volutamente al fine di scoprire i vari argomenti nel corso della sessione.
28+
2729
Alla pari di qualunque progetto software (C/C++, Erlang, Java, etc.) anche per le DDL/DML del database dovremmo arrivare a una situazione di versioning come quella mostrata da questo grafo.
2830
2931
Soffermarsi un attimo per spiegare il minimo indispensabile su questo diagramma.

pages/1_2_componenti_chiave_database_versioning.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,6 @@ layout: default
1919

2020
<!--
2121
Per la documentazione è preferibile usare l'approccio doc-as-code di cui recentemente ho fatto un post sul gruppo Ready2Learn di Viva Engage o Yammer.
22+
23+
Questa stessa presentazione è realizzata con lo stesso tipo di approccio.
2224
-->

pages/1_3_benefici_database_versioning.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ layout: default
1717

1818
</v-clicks>
1919

20-
20+
<!--
21+
Uno degli argomenti hot è indubbiamente la sicurezza delle migrazioni che affronteremo nelle prossime slide.
22+
-->

pages/1_4_sicurezza_operazioni_deployment.md

+4
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,7 @@ level: 2
6565
Implementando queste strategie, è possibile ridurre significativamente il rischio associato alla concessione di privilegi elevati agli utenti delle applicazioni durante le migrazioni del database, mantenendo al contempo un flusso di lavoro efficiente per la gestione delle migrazioni stesse.
6666

6767
</div>
68+
69+
<!--
70+
Immagino che tutti sappiate che le secret standard di k8s non sono realmente sicure in quanto sfrutta l'encode in base64 per i valori memorizzato al suo interno, motivo per noi non ho fatto menzione.
71+
-->

pages/1_7_esempio_progetto_migrazione_flyway.md

+8
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ Sotto il cofano, l'esecuzione del comando `flyway migrate` esegue le seguenti at
152152

153153
</v-clicks>
154154

155+
<!--
156+
La possibilità delle variabili di ambiente, lo rende abilitato per ambienti CI/CD e k8s.
157+
-->
158+
155159
---
156160
level: 2
157161
---
@@ -298,3 +302,7 @@ A seguire un video che mostra l'esecuzione di una serie di migrazioni partendo d
298302
<div class="centered-image">
299303
<img v-click width="70%" height="70%" src="/images/asciinema/demo_esecuzione_prima_migrazione_full_2x.gif" alt="Esecuzione della prima migrazione del database"/>
300304
</div>
305+
306+
<!--
307+
Durante l'esecuzione di questa demo non abbiamo visto lo scenario di rollback perché ogni tipo di tool di migrazione lo affronta in modo diverso anche in base alla edizione (OSS, Standard, Tems, Enterprise).
308+
-->

slides.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,13 @@ htmlAttrs:
8484
</style>
8585

8686
<!--
87-
Con questa presentazione, vorrei discutere con voi un tema su cui sono abbastanza sensibile; credo che sia giunto il momento di affrontarlo in modo concreto e fare quel passo in più necessario per iniziare il processo di automazione anche per quel che riguarda le basi di dati applicative.
87+
Buon pomeriggio a tutti e grazie per la partecipazione a questa sessione di formazione.
8888
89-
Per facilitare lo svolgimento di questa presentazione, vi prego di mettere da parte tutte le vostre domande che affronteremo alla fine di questa presentazione.
89+
Con questa presentazione, vorrei discutere insieme a voi di un tema su cui sono abbastanza sensibile e su cui ne abbiamo parlato tempo addietro con qualcuno di voi; credo che sia giunto il momento di affrontarlo in modo concreto e fare quel passo in più necessario per iniziare il processo di automazione anche per quel che riguarda le basi di dati applicative.
90+
91+
Questa presentazione vuole essere l'introduzione a un argomento conteso tra più aree di competenza e fondamentale per la gestione di un database in un contesto di sviluppo software di tipo collaborativo (o di social coding).
92+
93+
Detto ciò, per facilitare lo svolgimento di questa presentazione, vi prego di mettere da parte tutte le vostre domande che affronteremo alla fine di questa presentazione.
9094
9195
Bene! Iniziamo
9296
-->

0 commit comments

Comments
 (0)