SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Put databases in ALM backgrounds
Alessandro Alpi
@suxstellino

Gian Maria Ricci
@alkampfer

December 13th, 2013

#sqlsat264
Sponsors & Media Partners

December 13th, 2013

#sqlsat264
Organizers

December 13th, 2013

#sqlsat264
About us
 Both MVPs (SQL and VS ALM) 
 Both Microsoft Certified * 
 blogs:
 http://blogs.dotnethell.it/suxstellino
 http://www.codewrecks.com/blog/

 More details on:
 http://www.alessandroalpi.net
 http://www.getlatestversion.it/

December 13th, 2013

#sqlsat264
Agenda










ALM concepts
Source control manager
Database vs Code
Database ALM tools
Development solutions
Testing solutions
Deployment solutions
Conclusions
Q&A

December 13th, 2013

#sqlsat264
ALM definition
ALM is the product lifecycle management
(governance, development, and maintenance) of
application software. It encompasses requirements
management, software architecture, computer
programming, software testing, software
maintenance, change management, project
management, and release management.

(source Wikipedia)
December 13th, 2013

#sqlsat264
Why ALM?








Breaking the team barriers (integration)
Release high quality software
Release software in quickly
Customer satisfaction
Improved work organization
Monitoring and tracking the activities
Improved code (clear and easy to read)

December 13th, 2013

#sqlsat264
Continuous integration





Database integrity check verification
Unit test automation
Code analysis automation
«build» phases

December 13th, 2013

#sqlsat264
Continous delivery/deployment






Database drifts
Data sync
Deploy pipeline
Integration tests
Automated deploy from a «package»

December 13th, 2013

#sqlsat264
Task based work





Modifications vs. «reason»
Agile project  BACKLOG
Traditional project  REQUIREMENTS
Tasks developed on iterations (sprints)

December 13th, 2013

#sqlsat264
ALM and database
 The database needs analysis and development
 The databases must be redistributed
 The databases must be synchronized within the
development environment
 The database will have «changes» associated to
«activities»
 The database should be tested
 And, of course, it’s a good thing to deploy 
December 13th, 2013

#sqlsat264
Source Control Manager






Management of versions
Changes of the code (and not only those)
Shared entity during development stages,
Deploy and team management
Provides an interface (also graphic)

December 13th, 2013

#sqlsat264
SCM – Why?







Versions of our code
Safe storage of our files
Share development lines within the team
Creation of a central point for deploying
Automate build and test processes
The real needs of every team..

December 13th, 2013

#sqlsat264
SCM – Talking about database






DB can be a file «inside the application»
DB is «located on the server»
DB persists user data
DB is not all and only code
However the changes on DB must be reflected
on the whole team

The Source Control seems «uncomfortable»

December 13th, 2013

#sqlsat264
But without a SCM
 How can we easily manage the fix?
 How can we prevent regressions?
 How quickly can we have multiple development
environments?
 How can we easily create a new dev branch?
 How to create different versions of the DB?
 How can we synchronize the DB with the latest
application changes?

December 13th, 2013

#sqlsat264
DB vs. code – so different?
 The database IS code (programmability,
ddl, grant, etc.)
 The «domain» tables are like many enums
(static data).
 The DB should be changed in more
development branches.

December 13th, 2013

#sqlsat264
DB vs. code – so different?
 The pointers to the linked servers are
configurations (as ‘app.config’)
 The login server are environment
configurations
 The database persist the data. It’s not a
*source control* problem

December 13th, 2013

#sqlsat264
Why put the DB under SCM
 Make versions of our objects (DDL) and
our programmability on database
 Make labels including the database, so we
can return to a previous situation
 Team synchronized to the get of the
version (usually the latest)
 To do versioning also of the static data
December 13th, 2013

#sqlsat264
And more..
 Continuous Integration (tests)
 Branch (more development lines)
 Isolated environments for geographically
located teams
 Atomicity between application and DB
 Saving documentation of the DB

December 13th, 2013

#sqlsat264
SCM – Here are some








TFS (on-premises and VSOnline)
Git
Mercurial
Subversion
CVS
Perforce
…

December 13th, 2013

#sqlsat264
Possible actions with SCM
 Some actions are:
 Get
 Commit/Checkin
 Undo
 Save (working folder)
 Delete (working folder)
 Edit (working folder)

December 13th, 2013

#sqlsat264
Management Tool for SCM - DB
 Visual Studio
 Database projects
 Red-Gate Source Control
 SQL Test (for CI)
 ApexSQL Versions
…

December 13th, 2013

#sqlsat264
The Team Explorer
Regardless of the tool we use, Team Exploder
allows us to:
 Improve management of the changesets
 Improve association of changesets to tasks
 Improve control on commit and checkin phases
 Centralize management of checkin policy
 Single point for management of the team project

December 13th, 2013

#sqlsat264
Solutions and tools – development/change
 Management Studio – not enough
 Visual Studio + database projects
 Third party add-ons with SSMS (i.e. Red-Gate
SQL Source Control)
 Third party stand-alone tools

December 13th, 2013

#sqlsat264
Visual Studio + Database projects
 Connected database development

December 13th, 2013

#sqlsat264
Visual Studio + Database projects
 Project based development

December 13th, 2013

#sqlsat264
DEMO
VSOnline connection
Visual Studio Database Project intro
 Project template
 Connections
 Development
 Refactor
 Checkin/Checkout
 Changeset management

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Integration with SQL Server Management Studio

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Integration with Visual Studio (SQLConnect)

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Shared development model

 Dedicated development model (recommended)

December 13th, 2013

#sqlsat264
DEMO
VSOnline connection
Intro to Red-Gate SQL Source Control
 SSMS Integration
 Development type
 SCM
 Working folder
 SCM direct connection

 Static data
 Checkin/Save
 Changeset management
December 13th, 2013

#sqlsat264
Soluzioni e tool – Unit testing
 Visual Studio
 Database sandbox
 Database unit testing
 Backdoor manipulation

 Red-Gate SQL Source Control
 Framework tSQLt
 SQLTest plugin
 Integrated with SSMS
 Builtin test classes
 Naming conventions
December 13th, 2013

#sqlsat264
DEMO
Unit testing:
 Visual Studio
 Red-Gate SQL Source Control

December 13th, 2013

#sqlsat264
Soluzioni e tool – Deployment
 Visual Studio Data compare
Live database
Snapshot
Database project

 Deploy da:
Data compare
Publish
F5
Data with post build script
December 13th, 2013

#sqlsat264
Soluzioni e tool – Deployment
 Red-Gate SQL Compare and Data Compare








Live database
Working folder
Backup
Integrated with SSMS
Migration scripts
Compare Projects customization
Two kind of projects for Data and Structures (DDL)

 Deploy from:





Compare project (DDL)
Compare project (Data)
Script folder
Nuget

December 13th, 2013

#sqlsat264
DEMO
Deployment:
 Visual Studio
 Red-Gate SQL Source Control

December 13th, 2013

#sqlsat264
Conclusions




Which tools to use?
 Every tool has its own peculiarity
 SQL Source Control allows us to manage data in the easiest way
 Visual Studio ensures the same structure of the database project
 Visual Studio is more simple for the developers (or SQL Connect)
Which parameters should we consider?
 How is our team structured?
 Which are the minimum requirements?
 How much can I afford to spend?
 Can I afford the learning curve if I change IDE?

Last but not least, I should use the Source Control 

December 13th, 2013

#sqlsat264
Resources



http://www.getlatestversion.it/ (ALM italian community)
http://www.getlatestversion.it/2013/11/28/la-difficile-arte-della-stima/



http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)







http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM)
http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html
http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx
http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx
http://www.red-gate.com/products/sql-development/sql-source-control/
http://vsaralmassessment.codeplex.com
http://it.wikipedia.org/wiki/Application_lifecycle_management







December 13th, 2013

#sqlsat264
Q&A
 Questions?

December 13th, 2013

#sqlsat264
#sqlsat264

THANKS!

December 13th, 2013

#sqlsat264

Mais conteúdo relacionado

Destaque

Cwit interview
Cwit interviewCwit interview
Cwit interviewakhtarsaad
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databasesAlessandro Alpi
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentAlessandro Alpi
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source controlAlessandro Alpi
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.fullKier Francisco
 
Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)CastilloAguilera
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2alexandersaa2013
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source controlAlessandro Alpi
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON supportAlessandro Alpi
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerAlessandro Alpi
 
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...Alessandro Alpi
 

Destaque (16)

Lista 2 - geografia
Lista 2 - geografiaLista 2 - geografia
Lista 2 - geografia
 
Cwit interview
Cwit interviewCwit interview
Cwit interview
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous Deployment
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL Server
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full
 
Gordonas sausio
Gordonas sausioGordonas sausio
Gordonas sausio
 
Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 
Lista 5
Lista 5Lista 5
Lista 5
 
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
 

Mais de Alessandro Alpi

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldAlessandro Alpi
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Alessandro Alpi
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Alessandro Alpi
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Alessandro Alpi
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamAlessandro Alpi
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOpsAlessandro Alpi
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAlessandro Alpi
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBAlessandro Alpi
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsAlessandro Alpi
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON supportAlessandro Alpi
 

Mais de Alessandro Alpi (13)

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero team
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile Framework
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source control
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
 

Último

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Último (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

[ENG] SQL Saturday 264 - Put databases in ALM backgrounds

  • 1. Put databases in ALM backgrounds Alessandro Alpi @suxstellino Gian Maria Ricci @alkampfer December 13th, 2013 #sqlsat264
  • 2. Sponsors & Media Partners December 13th, 2013 #sqlsat264
  • 4. About us  Both MVPs (SQL and VS ALM)   Both Microsoft Certified *   blogs:  http://blogs.dotnethell.it/suxstellino  http://www.codewrecks.com/blog/  More details on:  http://www.alessandroalpi.net  http://www.getlatestversion.it/ December 13th, 2013 #sqlsat264
  • 5. Agenda          ALM concepts Source control manager Database vs Code Database ALM tools Development solutions Testing solutions Deployment solutions Conclusions Q&A December 13th, 2013 #sqlsat264
  • 6. ALM definition ALM is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management. (source Wikipedia) December 13th, 2013 #sqlsat264
  • 7. Why ALM?        Breaking the team barriers (integration) Release high quality software Release software in quickly Customer satisfaction Improved work organization Monitoring and tracking the activities Improved code (clear and easy to read) December 13th, 2013 #sqlsat264
  • 8. Continuous integration     Database integrity check verification Unit test automation Code analysis automation «build» phases December 13th, 2013 #sqlsat264
  • 9. Continous delivery/deployment      Database drifts Data sync Deploy pipeline Integration tests Automated deploy from a «package» December 13th, 2013 #sqlsat264
  • 10. Task based work     Modifications vs. «reason» Agile project  BACKLOG Traditional project  REQUIREMENTS Tasks developed on iterations (sprints) December 13th, 2013 #sqlsat264
  • 11. ALM and database  The database needs analysis and development  The databases must be redistributed  The databases must be synchronized within the development environment  The database will have «changes» associated to «activities»  The database should be tested  And, of course, it’s a good thing to deploy  December 13th, 2013 #sqlsat264
  • 12. Source Control Manager      Management of versions Changes of the code (and not only those) Shared entity during development stages, Deploy and team management Provides an interface (also graphic) December 13th, 2013 #sqlsat264
  • 13. SCM – Why?       Versions of our code Safe storage of our files Share development lines within the team Creation of a central point for deploying Automate build and test processes The real needs of every team.. December 13th, 2013 #sqlsat264
  • 14. SCM – Talking about database      DB can be a file «inside the application» DB is «located on the server» DB persists user data DB is not all and only code However the changes on DB must be reflected on the whole team The Source Control seems «uncomfortable» December 13th, 2013 #sqlsat264
  • 15. But without a SCM  How can we easily manage the fix?  How can we prevent regressions?  How quickly can we have multiple development environments?  How can we easily create a new dev branch?  How to create different versions of the DB?  How can we synchronize the DB with the latest application changes? December 13th, 2013 #sqlsat264
  • 16. DB vs. code – so different?  The database IS code (programmability, ddl, grant, etc.)  The «domain» tables are like many enums (static data).  The DB should be changed in more development branches. December 13th, 2013 #sqlsat264
  • 17. DB vs. code – so different?  The pointers to the linked servers are configurations (as ‘app.config’)  The login server are environment configurations  The database persist the data. It’s not a *source control* problem December 13th, 2013 #sqlsat264
  • 18. Why put the DB under SCM  Make versions of our objects (DDL) and our programmability on database  Make labels including the database, so we can return to a previous situation  Team synchronized to the get of the version (usually the latest)  To do versioning also of the static data December 13th, 2013 #sqlsat264
  • 19. And more..  Continuous Integration (tests)  Branch (more development lines)  Isolated environments for geographically located teams  Atomicity between application and DB  Saving documentation of the DB December 13th, 2013 #sqlsat264
  • 20. SCM – Here are some        TFS (on-premises and VSOnline) Git Mercurial Subversion CVS Perforce … December 13th, 2013 #sqlsat264
  • 21. Possible actions with SCM  Some actions are:  Get  Commit/Checkin  Undo  Save (working folder)  Delete (working folder)  Edit (working folder) December 13th, 2013 #sqlsat264
  • 22. Management Tool for SCM - DB  Visual Studio  Database projects  Red-Gate Source Control  SQL Test (for CI)  ApexSQL Versions … December 13th, 2013 #sqlsat264
  • 23. The Team Explorer Regardless of the tool we use, Team Exploder allows us to:  Improve management of the changesets  Improve association of changesets to tasks  Improve control on commit and checkin phases  Centralize management of checkin policy  Single point for management of the team project December 13th, 2013 #sqlsat264
  • 24. Solutions and tools – development/change  Management Studio – not enough  Visual Studio + database projects  Third party add-ons with SSMS (i.e. Red-Gate SQL Source Control)  Third party stand-alone tools December 13th, 2013 #sqlsat264
  • 25. Visual Studio + Database projects  Connected database development December 13th, 2013 #sqlsat264
  • 26. Visual Studio + Database projects  Project based development December 13th, 2013 #sqlsat264
  • 27. DEMO VSOnline connection Visual Studio Database Project intro  Project template  Connections  Development  Refactor  Checkin/Checkout  Changeset management December 13th, 2013 #sqlsat264
  • 28. Red-Gate SQL Source Control  Integration with SQL Server Management Studio December 13th, 2013 #sqlsat264
  • 29. Red-Gate SQL Source Control  Integration with Visual Studio (SQLConnect) December 13th, 2013 #sqlsat264
  • 30. Red-Gate SQL Source Control  Shared development model  Dedicated development model (recommended) December 13th, 2013 #sqlsat264
  • 31. DEMO VSOnline connection Intro to Red-Gate SQL Source Control  SSMS Integration  Development type  SCM  Working folder  SCM direct connection  Static data  Checkin/Save  Changeset management December 13th, 2013 #sqlsat264
  • 32. Soluzioni e tool – Unit testing  Visual Studio  Database sandbox  Database unit testing  Backdoor manipulation  Red-Gate SQL Source Control  Framework tSQLt  SQLTest plugin  Integrated with SSMS  Builtin test classes  Naming conventions December 13th, 2013 #sqlsat264
  • 33. DEMO Unit testing:  Visual Studio  Red-Gate SQL Source Control December 13th, 2013 #sqlsat264
  • 34. Soluzioni e tool – Deployment  Visual Studio Data compare Live database Snapshot Database project  Deploy da: Data compare Publish F5 Data with post build script December 13th, 2013 #sqlsat264
  • 35. Soluzioni e tool – Deployment  Red-Gate SQL Compare and Data Compare        Live database Working folder Backup Integrated with SSMS Migration scripts Compare Projects customization Two kind of projects for Data and Structures (DDL)  Deploy from:     Compare project (DDL) Compare project (Data) Script folder Nuget December 13th, 2013 #sqlsat264
  • 36. DEMO Deployment:  Visual Studio  Red-Gate SQL Source Control December 13th, 2013 #sqlsat264
  • 37. Conclusions   Which tools to use?  Every tool has its own peculiarity  SQL Source Control allows us to manage data in the easiest way  Visual Studio ensures the same structure of the database project  Visual Studio is more simple for the developers (or SQL Connect) Which parameters should we consider?  How is our team structured?  Which are the minimum requirements?  How much can I afford to spend?  Can I afford the learning curve if I change IDE? Last but not least, I should use the Source Control  December 13th, 2013 #sqlsat264
  • 38. Resources   http://www.getlatestversion.it/ (ALM italian community) http://www.getlatestversion.it/2013/11/28/la-difficile-arte-della-stima/  http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)      http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM) http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx http://www.red-gate.com/products/sql-development/sql-source-control/ http://vsaralmassessment.codeplex.com http://it.wikipedia.org/wiki/Application_lifecycle_management      December 13th, 2013 #sqlsat264