Speaker

Alessandro Alpi

Alessandro Alpi

CTO and Co-Founder of Engage IT Services, geek, former online gamer

Parma, Italy

Alessandro Alpi works in the IT area as developer since 2000. Starting from 2005 he worked full time as DBA and software architect. After 15 years he is now the CTO and co-founder of Engage IT Services S.r.l. In his own company, he manages the development team using Agile methodologies and he follows the DevOps topics too. He is a teacher (MCT for 5 years) on .net/Azure and SQL Server topics. He manages two blogs, in italian and english and he is an active staff member of GetLatestVersion.it, the most important ALM community in Italy. You can find him on MSDN SQL Server forums and also in StackOverflow. Alessandro is one of the italian organizer of the PASS SQL Saturday and DevOpsHeroes, and he is the responsible for the SQL Saturday Parma event.

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • DevOps & Automation
  • Databases
  • Database Administration
  • Azure Services and DevOps
  • DevOps Skills
  • DevOps Transformation
  • DevOps Journey
  • Teamwork
  • Application Lifecycle Management (ALM)
  • DLM
  • Software Development
  • enterprise solutions
  • Team Leading
  • Agile Coaching

DevOps second way, feedback - SQL Server Unit Testing

Il feedback immediato e proattivo sulla pipeline di sviluppo e deploy è estremamente importante al fine di ridurre la possibilità di breaking changes e di prevenire nuovi bug. La qualità del nostro software non dovrebbe essere un'opzione. DevOps, tra le sue regole, indica l'importanza del feedback. Lo unit testing su SQL Server è una pratica per tale scopo. In questa sessione, molto pratica, vedremo le possibilità e gli scenari reali (anche proposti dall'audience) coperti da unit testing con il framework free tsqlt.

Provisioning di dati di produzione in pochi secondi? Si può fareee!

In questa sessione vedremo come portare i dati in ambienti QA direttamente dalla produzione, evitando ogni problema conosciuto ad oggi: spazio, tempo, numero di copie, isolamento e via discorrendo. Un annoso problema che può essere finalmente risolto con pochi click.

SQL Server Deployment Journey, da Dev a Ops

Le pratiche di sviluppo comuni, addirittura la continuous integration, stanno iniziando ad apparire anche su SQL Server. Al contrario, le pratiche di deploy sui nostri RDBMS sono spesso fumose, e talvolta non sappiamo nemmeno che le stesse identiche considerazioni del mondo dev sono applicabili anche sui database. In questa sessione vedremo come realizzare una continuous integration su SQL Server creando su git o TFVC (a scelta del pubblico) il source control, per poi utilizzare la parte di build e deploy per automatizzare le pipeline verso gli ambienti di test e produzione.

SQL Server notifications addiction, a Slack integration based solution

Capita spesso, almeno sembra, che una volta in produzione SQL Server sia un tantino dimenticato, almeno fino a quando tutto va bene. Tuttavia, unitamente ai database, esistono spesso soluzioni di Integration Service, Reporting, Monitoring di terze parti, Job e Alert in generale. Con un semplicissimo utilizzo di database mail è possibile utilizzare uno degli strumenti di chat collaborativi più famosi (Slack) per centralizzare e rendere immediate e ben leggibili quello che SQL Server ci vuole dire. In questa sessione mostrerò com'è possibile collegare Alerts, Job, SSIS e anche situazioni dedicate al business su Slack in pochissimo tempo, automatizzando il tutto con una semplice quanto utile integrazione.

SQL Server Monitoring con Grafana

Il real time monitoring di istanze SQL Server risulta molto utile in un mondo in cui DevOps la fa da padrone. Grazie a questo metodo è possibile avere un monitor in real time delle nostre piattaforme dati, tra cui SQL Server. In questa sessione vedremo com'è semplice avere una dashboard in poco tempo.

Deploy di SQL Server Integration Services con Octopus Deploy e AzureDevOps

In questa sessione vedremo come predisporre un progetto di SQL Server Integration Services al fine di automatizzare un deploy tramite Octopus Deploy e AzureDevOps. Andremo a vedere come viene creato lo step (powershell) e come è possibile contribuire su github. Infine, vedremo come il deploy andrà a creare gli elementi necessari sul SSISDB (catalog di Integration Services) al fine di automatizzare l'intero processo di distribuzione anche per i nostri SSIS

Azure SQL Managed Instance, un percorso di migrazione verso il cloud

Azure SQL MI è un servizio database fornito dalla piattaforma Azure per facilitare le migrazioni verso il Cloud Microsoft, sia da installazioni on premises che da altre piattaforme Cloud. Tramite gli opportuni strumenti, è possibile affrontare una migrazione piuttosto indolore. Tuttavia, è importante capire vantaggi e rischi che una via del genere può portare. Di certo è un percorso comodo e veloce che può facilitare, non poco, lo spostamento delle nostre istanze verso Azure.
In questa sessione vedremo insieme gli step, gli strumenti e le considerazioni da fare per affrontare un passo così delicato.

Automazione di pre e post deployment t-sql script

Ci sono le strutture, ovvero il modello. Ci sono i dati statici, anche conosciuti come dati di lookup. Tutte cose che, tendenzialmente, possono essere rilasciate senza particolari problematiche. E poi ci sono quei dati e quelle modifiche che necessitano di personalizzazione per "un ambiente" o per "alcuni clienti" o, ancora, per "tutti, ma con considerazioni differenti". Gli ORM con i loro rilasci migration-based non possono aiutarci al massimo, perché mai dovrei mettere dati cliente su di una migrazione, quando, magari, quella migrazione è su una sola codebase? Gli scenari sono molteplici, ma in questa sessione affronteremo il caso seguente:
- una sola codebase
- dati da rilasciare in modo diverso per ogni richiesta cliente
- cliente che corrisponde ad un tenant oppure a una istanza SQL

Ora, come gestisco pre e post deployment script in questo caso? Vedremo come dbops, che sfrutta dbup, può aiutarci ad implementare una buona soluzione al problema.

Difendere la qualità del codice in ogni momento, il prima possibile (2 h)

"prevenire è meglio che curare" è una delle frasi più famose riguardante la precauzione in termini di salute. Essa è valida anche per quello che riguarda il modo in cui ci si approccia alla produzione di codice.

La qualità del codice scritto, infatti, è importante, proprio per la salute dei nostri ambienti. Non si tratta solo di stile, anche se quella parte non dovrebbe essere trascurata, bensì anche di contenuti. Quando scriviamo SQL senza intermediari (senza ORM o librerie varie, ad esempio) e aggiungiamo file, script o codice compilato in stored procedure/funzioni, dovremmo sempre capire se tale codice rispetti:
- le regole aziendali, in termini di stile e di vincoli,
- le sintassi e le best practices riconosciute dalla community e/o dal prodotto
- la non regressione e la non perdita di dati su ambiente di produzione

In poche parole, dobbiamo essere sicuri di quello di cui andiamo a fare deploy. Negli ultimi tempi ho investito i nostri sforzi (team di DBA in azienda) nelle pratiche di prevenzione di questo tipo.
Condividerò con voi, in questa sessione:
- i punti su cui agire e perché
- lo strumento utilizzato (quello che abbiamo scelto tra varie possibilità)
- la necessità di attività personalizzate
- il rapporto costi/benefici
- il contesto DevOps di tutta la questione

SQL Wars, the attack of the Clones

In this session, I'll show you how to do production database provisioning in a non prod environment with Redgate SQL Clone, preventing regressions before deploying our scripts. I'll use the Azure DevOps pipelines as well as the powershell scripts provided by SQL Clone itself. I'll show you how to automate this set of tools without investing too much effort.

L'orchestrazione dei rilasci a database

La pratiche DevOps diventano veramente vincenti quando il valore aggiunto non è solo verso il cliente, bensì su tutti i punti della filiera produttiva. Con una radicata cultura è possibile muoversi usando Azure DevOps per orchestrare processi di business, di compliance e tecnici, unitamente al rilascio continuo del software.
In questa sessione parleremo di come siamo arrivati ad orchestrare ed automatizzare il nostro processo di rilascio a database, usando SQL Server e Azure DevOps, approfondendo concetti come la SBoM (Software Bill of Materials), il versioning in ottica Enterprise, le tecniche di flusso di sviluppo e test, i gateway, i "go" manuali e, infine, le modalità di rilascio a database e artefatti relativi.

I prerequisiti per un corretto rilascio a database

Sono anni ormai che si parla di automazione di rilascio, DevOps e simili. Nonostante questo, non a tutti entra in testa che il database necessità di prerequisiti fondamentali per procedere. In tutte le realtà che ho seguito da più di un decennio, esistono diversi approcci a strumenti, diverse necessità di business, ma praticamente mai un'analisi di quello che realmente serve per approcciarsi ad un rilascio. In questa sessione vorrei fare chiarezza sulla lista della spesa delle "cose da fare" e delle "cose da avere" per un corretto e completo rilascio a database (relazionale), differenziando il monolite dai microdatabase, parlando di sandbox, comparando le migrazioni (incrementali) allo state based deploy (snapshot). Una marea di concetti, ma, credo, fondamentali.

Azure DevOps - Deploying SSIS on SQL databases

Deploying SSIS automatically it's not a difficult task. Facing the deployment with a DevOps approach it's slightly different. What are the referenced items to work with? How to make artifacts? How to manage the environments? In this session we'll try to reply to these questions.

Come il DBA cambia in un mondo DevOps

Dopo più di 20 anni nel mondo dell'informatica, di cui 15 sono da DBA, ho scoperto di essere "DevOps" già da prima di sentire parlare della definizione. Questo perché DevOps é cultura e assetto mentale. Nel tempo ho raccolto qualche consiglio da condividere sull'approccio al cambiamento, talvolta molto pesante. Come prepararsi? Come abbandonare le vecchie abitudini? Come trarre vantaggio dall'esperienza e dalla consapevolezza? In questi 15 minuti vorrei mostrare il mio punto di vista.

Basta poco per distruggere DevOps

In questa sessione parleremo delle peggiori pratiche da seguire per infrangere ogni nostro sogno di realizzazione di DevOps. Peggiori e molto comuni e, proprio per questo, estremamente pericolose. Dal non rispettare i principi, al fare eccessive personalizzazioni, fino all'estremizzare tutte le buone pratiche. Non serve chissà cosa, e la tentazione è dietro l'angolo.

Dalla produzione alla QA, provisioning immediato su SQL Server

In questa sessione vedremo come portare i dati in ambienti QA direttamente dalla produzione, evitando ogni problema conosciuto ad oggi: spazio, tempo, numero di copie, isolamento e via discorrendo. Un annoso problema che può essere finalmente risolto con pochi click.

Alessandro Alpi

CTO and Co-Founder of Engage IT Services, geek, former online gamer

Parma, Italy