
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.
Links
Area of Expertise
Topics
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.
Database up and running in production... What now?
La nostra filiera è perfetta. Tutto in continuous integration, tutto testato e con alta qualità dal punto di vista del codice e della soluzione. Abbiamo rilasciato con una pipeline invidiabile, riducendo errori umani e trasformando il ripetibile in automatizzato. Ci siamo. E ora? Le nostre istanze di produzione devono essere monitorate costantemente. Che informazioni serve conoscere? In questa sessione, sfruttando un'installazione di PRTG come strumento di monitor, andremo a mostrare come in azienda abbiamo automatizzato baseline e monitor ciclico per i DBA. La soluzione prevede in aggiunta anche powershell e la conoscenza di base di github.
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.
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.
Automatizzare il link di database a RedGate Source Control con PowerShell
Per chi è abituato a lavorare in ambienti molto distribuiti, casi in cui i database sono molteplici, e per chi usa Red Gate Source Control con VSTS (git o TFS), può diventare oneroso effettuare numerose operazioni manuali di collegamento. Tramite PowerShell, è possibile consumare le API del RedGate DLM Automation tool per velocizzare il processo di link dei nostri database. Alla base di DevOps ci sono infatti i concetti di ripetibilità e automatizzazione. Questo è quello che nel nostro team ci ha portato a ridurre l'errore umano all'osso e a velocizzare il provisioning delle nostre soluzioni distribuite.
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.
Deploy di SQL Server Integration Services e Reporting con Octopus Deploy
SQL Server e Octopus Deploy non sono mai stati così vicini. Con SSIS possiamo scrivere logiche molto complesse, anche cross platform, con la possibilità di programmare ogni esecuzione. Con SSRS possiamo mostrarne i risultati. In questa sessione vedremo come fare deploy di pacchetti integration services e di report utilizzando il template per SSIS e SSRS di Octopus Deploy e vedremo anche come monitorizzare le esecuzioni tramite interessanti dashboard.
Migliorare la produttività lavorando su SQL Server
SQL Server non è un mondo, è un universo ricco di funzionalità, architetture e tecnologie. Può spaventare e può essere difficile muoversi al suo interno con la necessaria fluidità. In questa sessione vedremo quali plugin e strumenti sono disponibili per velocizzare lo sviluppo su SQL Server, da Visual Studio Code a Management Studio, da SQL Operations Studio ai tool di RedGate. Migliorare gestione e scrittura di codice, con un occhio di riguardo alla condivisione e al team working, in un mondo in cui DevOps la fa da padrone.

Alessandro Alpi
CTO and Co-Founder of Engage IT Services, geek, former online gamer
Parma, Italy