gestão de ciclo de vida de banco de dados: já passou da hora! (tdc poa 2016)
TRANSCRIPT
![Page 1: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/1.jpg)
Globalcode – Open4education
Gestão de ciclo de vida de banco de dados: Já passou da hora!
Igor Abade V. Leite@igorabade
Lambda3Microsoft MVP – Visual Studio ALM
Professional Scrum Trainer – Scrum.org
![Page 2: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/2.jpg)
Globalcode – Open4education
@IgorAbadeblog.lambda3.com.br/L3/IgorAbade
![Page 3: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/3.jpg)
É DevOps!
É DevOps!
É DevOps!É
DevOps!O que é DevOps?
“DevOps é a colaboraçãoEntre Desenvolvimento e Infra (Ops)”
“DevOps é tratar suaInfraestrutura como
código”
“DevOps é usar automação”
“Kanban para Ops?”
“DevOps é usarfeature switches”
“DevOps é fazer pequenas implantações”
![Page 4: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/4.jpg)
Globalcode – Open4education
Tudo muito lindo, mas…
Falar é fácilHistoricamente bancos de dados têm sido implementados usando ferramentas e processos desconexos do desenvolvimento de aplicações
![Page 5: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/5.jpg)
Globalcode – Open4education
Infrastructure As Code
Se bancos de dados fazem parte da infraestrutura...
... Precisam estar definidos como código!
![Page 6: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/6.jpg)
Globalcode – Open4education
Duas abordagens
CodeFirst
DatabaseFirst
![Page 7: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/7.jpg)
Globalcode – Open4education
Code First
Preferido dos desenvolvedoresClasses primeiro, banco depoisFerramenta: Migrations
![Page 8: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/8.jpg)
Globalcode – Open4education
Demo
![Page 9: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/9.jpg)
Globalcode – Open4education
Mas Code First não resolve tudo
“Developer-centric”Não funciona na cultura de todas as empresas
Pode ser difícil de ler e manter
Dev precisa criar “up” e “down”É preciso aprender outro “dialeto”Por que não usar DDL?
Fácil para green fieldMas trabalhoso para legado
![Page 10: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/10.jpg)
Globalcode – Open4education
Database First
Primeiro o banco de dados, depois o códigoMais comum para projetos legadosTipicamente envolve DAs e DBAsSQL DDL é lingua francaDeclarativo x Imperativo
![Page 11: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/11.jpg)
Globalcode – Open4education
Versionamento Imperativo
11
-- version 1CREATE TABLE dbo.Auction( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL)
-- version 2ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_PK
-- version 3ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name)
Histórico de VersõesV 1 V 2 V 3
![Page 12: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/12.jpg)
Globalcode – Open4education
Versionamento Declarativo
-- version 1CREATE TABLE dbo.Auction( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL)
-- version 2CREATE TABLE dbo.Auction( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL)
-- version 3CREATE TABLE dbo.Auction( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL UNIQUE, start DATETIME NULL, len INT NULL)
Histórico de VersõesV 1 V 2 V 3
![Page 13: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/13.jpg)
Globalcode – Open4education
SQL Server Data Tools
Gestão Declarativa de Mudanças
Versionamento dos schemasImplantação incrementalRefatoração
Análise de Código e TestesValidação de dependênciasT-SQL Static Code AnalysisTestes Unitários
Integração no Ciclo de Vida da Aplicação (ALM)
Continuous Integration, Deployment e/ou Delivery
![Page 14: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/14.jpg)
Globalcode – Open4education
Deployment AgentTFS
Build Agent
Fluxo SSDT
Desenvolvedor
Visual Studio
Git/TFVC
Continuous Integration
Deploy/Test
MSBuildMSTest
SQL
SQL
DacPac
SQL
ContinuousDeployment
DBA
SQLPackage
PublishDeploy/Test
![Page 15: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/15.jpg)
Globalcode – Open4education
Continuous Deployment
![Page 16: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/16.jpg)
Globalcode – Open4education
Demo
![Page 17: Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)](https://reader036.vdocuments.pub/reader036/viewer/2022062522/58ab60511a28abbc2a8b57a7/html5/thumbnails/17.jpg)
Globalcode – Open4education
Obrigado!Gestão de ciclo de vida de banco de dados:
Já passou da hora!
Igor Abade V. Leite@igorabade
Microsoft MVP – Visual Studio ALMProfessional Scrum Trainer – Scrum.org