Apesar de todos os avanços que DevOps tem trazido para o mundo do desenvolvimento de sistemas, bancos de dados (em especial os RDBMS) têm ficado para trás. Ainda que haja ferramentas disponíveis para controle de versão e automação, poucas são as empresas que as usam. Venha conhecer algumas dessas ferramentas e estratégias que pode ajudar na gestão do ciclo de vida de seu banco de dados.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
1. Globalcode – Open4education
Gestão de ciclo de vida de banco
de dados: Já passou da hora!
Igor Abade V. Leite
@igorabade
Lambda3
Microsoft MVP – Visual Studio ALM
Professional Scrum Trainer – Scrum.org
3. “DevOps é a colaboração
Entre Desenvolvimento e
Infra (Ops)”
“DevOps é tratar sua
Infraestrutura como
código”
“DevOps é usar
automação”
“Kanban
para Ops?”
“DevOps é usar
feature switches”
“DevOps é fazer
pequenas implantações”
4. Globalcode – Open4education
Tudo muito lindo, mas…
Falar é fácil
Historicamente bancos
de dados têm sido
implementados usando
ferramentas e
processos desconexos
do desenvolvimento de
aplicações
9. 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 field
Mas trabalhoso para
legado
10. Globalcode – Open4education
Database First
Primeiro o banco de
dados, depois o código
Mais comum para projetos
legados
Tipicamente envolve DAs
e DBAs
SQL DDL é lingua franca
Declarativo x Imperativo
11. Globalcode – Open4education
Versionamento Imperativo
11
-- version 1
CREATE TABLE dbo.Auction
(
id INT NOT NULL,
name VARCHAR(25) NOT NULL,
start DATETIME NULL,
len INT NULL
)
-- version 2
ALTER TABLE dbo.Auction
WITH CHECK ADD CONSTRAINT Au_PK
-- version 3
ALTER TABLE dbo.Auction
WITH CHECK
ADD CONSTRAINT Au_SK UNIQUE (name)
Histórico de VersõesV 1 V 2 V 3
12. Globalcode – Open4education
Versionamento Declarativo
-- version 1
CREATE TABLE dbo.Auction
(
id INT NOT NULL,
name VARCHAR(25) NOT NULL,
start DATETIME NULL,
len INT NULL
)
-- version 2
CREATE TABLE dbo.Auction
(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(25) NOT NULL,
start DATETIME NULL,
len INT NULL
)
-- version 3
CREATE 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
13. Globalcode – Open4education
SQL Server Data Tools
Gestão Declarativa de
Mudanças
Versionamento dos schemas
Implantação incremental
Refatoração
Análise de Código e Testes
Validação de dependências
T-SQL Static Code Analysis
Testes Unitários
Integração no Ciclo de
Vida da Aplicação (ALM)
Continuous Integration,
Deployment e/ou Delivery
17. 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 ALM
Professional Scrum Trainer – Scrum.org