In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
Build automatizzate, esecuzione di unit test, creazione di un pacchetto nuget, ecco cosa serve per essere pronti con SQL Server e la continuous integration
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
Tdd e continuous delivery sull'infrastrutturaCodemotion
by Filippo Liverani - Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
Build automatizzate, esecuzione di unit test, creazione di un pacchetto nuget, ecco cosa serve per essere pronti con SQL Server e la continuous integration
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
Tdd e continuous delivery sull'infrastrutturaCodemotion
by Filippo Liverani - Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
#DOAW16 - DevOps@work Roma 2016 - Databases under source controlAlessandro Alpi
In these slides we will speak about how we can put our databases under source control. What are the type of source control models and links, and, last but not least, how to move from a manual process to an automated one, in order to achieve the goals of DevOps
PASS Virtual Chapter - SQL Server Continuous DeploymentAlessandro Alpi
Dopo aver visto come effettuare la continuous integration terminiamo il ciclo di vita del nostro database effettuandone il deploy, includendo concetti come DevOps e automazione dei processi
SQL Server 2016 porterà tantissime novità, tra cui, per quanto riguarda la programmabilità, il supporto al formato JSON. vedremo com'è possibile serializzare i risultati delle nostre query tramite la clausola FOR JSON, inclusa negli ultimi rilasci della piattaforma.
Exercícios sobre conferências ambientais, conceitos demográficos, globalização, geopolítica e comércio internacional. Gabarito na última página do arquivo.
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
Con quanto segue andremo ad approfondire il concetto di unit test e, nella fattispecie, del testing tramite il framework free tSQLt, utilizzando t-sql e SQL Server Management Studio.
#DOAW16 - DevOps@work Roma 2016 - Testing your databasesAlessandro Alpi
In these slides we will speak about how to unit test our programmability in SQL Server and how to move from a manual process to an automated one in order to achieve the goals of DevOps
This is the work shop that I gave today at the Urban Media Makers Film Festival. The audition w watched is on my youtube channel. Rosalyncwilliams@gmail.com
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...Alessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
#DOAW16 - DevOps@work Roma 2016 - Databases under source controlAlessandro Alpi
In these slides we will speak about how we can put our databases under source control. What are the type of source control models and links, and, last but not least, how to move from a manual process to an automated one, in order to achieve the goals of DevOps
PASS Virtual Chapter - SQL Server Continuous DeploymentAlessandro Alpi
Dopo aver visto come effettuare la continuous integration terminiamo il ciclo di vita del nostro database effettuandone il deploy, includendo concetti come DevOps e automazione dei processi
SQL Server 2016 porterà tantissime novità, tra cui, per quanto riguarda la programmabilità, il supporto al formato JSON. vedremo com'è possibile serializzare i risultati delle nostre query tramite la clausola FOR JSON, inclusa negli ultimi rilasci della piattaforma.
Exercícios sobre conferências ambientais, conceitos demográficos, globalização, geopolítica e comércio internacional. Gabarito na última página do arquivo.
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
Con quanto segue andremo ad approfondire il concetto di unit test e, nella fattispecie, del testing tramite il framework free tSQLt, utilizzando t-sql e SQL Server Management Studio.
#DOAW16 - DevOps@work Roma 2016 - Testing your databasesAlessandro Alpi
In these slides we will speak about how to unit test our programmability in SQL Server and how to move from a manual process to an automated one in order to achieve the goals of DevOps
This is the work shop that I gave today at the Urban Media Makers Film Festival. The audition w watched is on my youtube channel. Rosalyncwilliams@gmail.com
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...Alessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
Visual Studio Online è uno strumento che fornisce molte funzionalità per l'ALM (Application Lifecycle management) e ad ogni release diventa sempre più completo, funzionale e davvero utile. Si tratta di una piattaforma completa e gratuita di strumenti per lo sviluppo e servizi utili per creare applicazioni multi-piattaforma, progettata per soddisfare i più alti requistiti a livello di disponibilità, scalabilità e complessità di sviluppo.
In questo webcast introduttivo, primo di una serie, vedremo quali sono le caratteristiche di questo strumento, impareremo come utilizzarlo per gestire il lavoro di ogni giorno e prenderemo confidenza con le sue funzionalità. Andremo infine alla scoperta delle nuove feature aggiunte alla suite.
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
Continuous Integration con Visual Studio OnlineDavide Benvegnù
Più velocemente il nostro software viene deployato, più velocemente possiamo renderlo disponibile ai nostri clienti ed avere feedback a riguardo.
Vedremo come deployare in modo semplice una nostra applicazione (anche sul cloud di Microsoft Azure) utilizzando gli strumenti che Visual Studio e Visual Studio Online ci mettono a disposizione.
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
Similar to DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visual Studio Team Services (20)
Despite the word "DevOps" has been made recently, I've been one of the lucky ones who could work in the way this culture suggests, since 20 years. At that time, no Powershell was available, there was poor internet connection (at least in Italy), there weren't any tools for automation. Anyways my team have understood that mindset before it became mainstream. During my professional experience, I've gathered many scenarios in different businesses and I've learned many lessons. Straight to the point, the problem is focused on "change ourselves". In this session we will try to reply to the following questions:
As a legacy DBA, how to change our way of work? How to forget the bad habits? How to take advantage from our experience and awareness? Just my two cents. Hopefully interesting.
In un mondo in cui il termine smart è ovunque e la coppia smart-working è abusata, meglio concentrarsi sul vero significato del termine. Autonomia, responsabilità, fiducia e flessibilità, unitamente a strumenti tecnologici a supporto.
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Alessandro Alpi
How to solve three of he most tricky problems:
- isolating and repeating tests on production data without affecting production databases
- debug and resolve bugs using production-like databases
- review deploy scripts before executing them in production databases
It's a matter of Provisioning
Presentazione su HomeGen (CloudGen): utilizzo di Cloni e Container per l'automazione dei processi DevOps SQL Server. Utilizzo di VS Code e Azure DevOps.
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
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.
Wpc2019 - Distruggere DevOps, la storia di un vero teamAlessandro Alpi
Consigli per evitare la distruzione della migrazione culturale verso DevOps. Vedremo un team con "attori" importanti provare a migrare verso buone pratiche e capiremo quanto è difficile arrivare, ma semplice distruggere tutto.
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
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.
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
How to manage changes and configuration management using the Disciplined Agile Framework for DevOps (classic and prescriptive vs automated and iterative solutions). Software Configuration Management (SCM) summit: http://www.snescm.org/Common/Italian-chapter/Summits/2018/index.html
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.
Automatizzare il processo di link dei database con redgate source controlAlessandro Alpi
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.
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBAlessandro Alpi
Azure Cosmos DB is a globally distributed database service designed to enable you to elastically and independently scale throughput and storage across any number of geographical regions with a comprehensive SLA. In this session we will discover how Cosmos DB works and what are the key features that enables you to become polyglot in persistency. A single "database" for multiple models.
Sql Saturday a Pordenone - Sql Server journey, da dev a opsAlessandro Alpi
DevOps e SQL Server, l'importanza di automatizzare i processi ripetibili, collaborare, condividere ed integrarsi per velocizzare e rendere più affidabile i nostri processi di deploy per il database.
In this presentation we'll learn about the native JSON support in SQL Server 2016. We will speak about Import/Export features, storage considerations and advantages/limitations on using this format in SQL Server.
4. Chi sono
Microsoft MVP – SQL Server dal 2008
Blog ITA: http://blogs.dotnethell.it/suxstellino
Blog ENG: http://suxstellino.wordpress.com/
Website: http://www.alessandroalpi.net
CTO Engage IT Services S.r.l.
www.engageitservices.it
Team leader (Agile)
Communities
Getlatestversion.it
5. Continuous integration
È una pratica che consiste
nell’allineamento frequente (più volte al
giorno) degli ambienti di lavoro di sviluppo
verso l’ambiente condiviso. Si applica in
contesti in cui lo sviluppo avviene tramite
un sistema di versioning (version control
system).
(fonte Wikipedia)
7. Best practices
Check-in frequenti durante la giornata
Merge dei cambiamenti per ogni check-in
Evitare la «rottura» delle build
Fare check-in solo se la build è ok (vabbeh..)
Notificare quando è possibile fare una get da source control
8. Su database
Cambia?
Poter fare get/commit dei cambiamenti come per il codice
Commit frequenti sulla linea principale come per il codice
Le build costruiscono una sandbox su cui eseguire i test
Rendere atomici database e applicazione
Sfruttare strumenti condivisi (Visual Studio, Team Explorer)
9. Vantaggi
Annulla la problematica «sul mio pc funziona»
Consente l’automazione dei processi
Migliora la qualità del codice (proprio per i processi frequenti)
Rende subito disponibile il sorgente/db ad un nuovo dev
Disaccoppia le problematiche di sviluppo
Aumenta la disponibilità del «prodotto» immediata al team
11. Source control manager
Gestore delle versioni
cambiamenti del nostro codice (ddl, programmabilità)
cambiamenti di altri elementi (snippet, strumenti dev)
cambiamenti sui dati «statici»
Entità condivisa in sviluppo (e team management)
Dotato di interfaccia (anche grafica)
Può sembrare scomodo su database
12. Strumenti
Visual Studio Database Projects
Red-Gate Source Control
ApexSQL Source Control
…
Management studio non basta!
Unitamente al Team Explorer (per chi usa Visual Studio)
14. Strumenti
Team Explorer consente:
Migliore gestione dei changeset
Associazione dei changeset ai task
Controllo sulle fasi di commit e di review
Centralizzazione delle policy di checkin
Single point di gestione del team project
18. Unit testing
Testare funzionalità mission-critical di business
Sviluppo evolutivo
Per capire precocemente alcuni bug
Supporto di alert automatici
Per prevenire regressioni il più possibile
Avere copertura di test
Scrivere in maniera «testabile» i nostri metodi
22. Build
Build codice = compilazione automatica dopo check-in
Build database:
Parte al check-in dei changeset
Crea un package (nuget in questo caso)
Crea un database per i test
Valida gli oggetti creati
23. Automazione
Red Gate SQL CI + TFS + Script SC (DLM Automation Suite)
1) Al check-in su source control fa partire la build
1) Crea automaticamente un database per i test
1) Crea un package nuget
2) Esegue i test
3) Allinea il package su db di QA/Staging
4) Pubblica il package su un nuget feed
24. Processo completo
using System;
using
System.Collections.Generic;
{
class Program
{
static void Main(string[]
args)
{
MakeGetOrders();
Console.ReadLine();
Create table Orders
( OrderID int
, OrderDate datetime)
Create procedure GetOrders
@o datetime
As
Begin
Select *
from orders
Where orderdate > @o
Development
Dev
Testing
Alter table Orders
Add status tinyint;
Create procedure
GetOrders
….. QA
Build
Commit
Test
Publish
Continuous Integration
25. using System;
using
System.Collections.Generic;
{
class Program
{
static void Main(string[]
args)
{
MakeGetOrders();
Console.ReadLine();
Create table Orders
( OrderID int
, OrderDate datetime)
Create procedure GetOrders
@o datetime
As
Begin
Select *
from orders
Where orderdate > @o
Development
Dev
Testing
Alter table Orders
Add status tinyint;
Create procedure
GetOrders
….. QA
Build
Commit
Test
Publish
Continuous Integration
27. DevOps
Solo buzzword?
Automazione vs tempi ottimizzati
Effort vs ripetibilità e affidabilità
Senza CI non esiste DevOps
Rilasciare i change non appena disponibili
Automatizzare il processo di delivery
.. verso Operations
Il DevOps continua anche dopo il Delivery
28. Conclusioni
Capire quale source control è il migliore per noi:
già utilizzato in passato?
servizio oppure on-premises?
costi?
Capire quale strumento per il source control del database:
curva di apprendimento dell’IDE usato
costi
comodità (dati statici, filtri, team management)
29. Conclusioni
Per il testing:
Esistono tool per testare
Esiste la possibilità di isolare
È semplice creare un database nuovo su cui testare
Miglioriamo la qualità del nostro software
Preveniamo le regressioni
30. Risorse
Source control resources
https://msdn.microsoft.com/it-it/library/dn894015.aspx (Article on Source Control)
http://www.red-gate.com/products/sql-development/sql-source-control/
http://apexsql.com/sql_tools_source_control.aspx
http://suxstellino.wordpress.com/tag/alm/
http://blogs.dotnethell.it/suxstellino/Category_2927.aspx
Unit testing resources
http://www.red-gate.com/products/sql-development/sql-test/
http://tsqlt.org/
http://sourceforge.net/projects/tsqlunit/
https://msdn.microsoft.com/it-it/library/mt169842 (Article on Unit Testing)
http://en.wikipedia.org/wiki/Unit_testing
https://www.simple-talk.com/sql/t-sql-programming/getting-started-testing-databases-with-tsqlt/
https://github.com/chrisoldwood/SS-Unit
CI resources
http://msdn.microsoft.com/it-it/library/dn383992.aspx (Article on CI)
http://www.red-gate.com/products/dlm/dlm-automation-suite/
http://www.red-gate.com/products/dlm/dlm-automation-suite/sql-ci
http://www.red-gate.com/products/dlm/dlm-automation-suite/sql-release
http://documentation.red-gate.com/display/DAS/DLM+Automation+Suite
https://marketplace.visualstudio.com/items?itemName=redgatesoftware.redgateDl
mAutomationBuild