traga seu banco de dados para o alm (lightning talk - trilha alm)

23
Traga seu banco de dados para o ALM TDC 2011 – Trilha ALM Igor Abade V. Leite @igorabade Microsoft MVP – Visual Studio ALM

Upload: igor-abade

Post on 25-May-2015

1.889 views

Category:

Technology


1 download

DESCRIPTION

Palestra "Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)"Evento: TDC 2011 (06a 10/07/2011)

TRANSCRIPT

Page 1: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Traga seu banco de dados para o ALM

TDC 2011 – Trilha ALM

Igor Abade V. Leite@igorabade

Microsoft MVP – Visual Studio ALM

Page 2: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

O Problema

• Historicamente bancos de dados têm sido implementados usando ferramentas e processos desconexos do desenvolvimento de aplicações

• Difícil de implementar controle de mudança

Page 3: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

O Problema

• Difícil de integrar o desenvolvimento de BDs na Gestão do Ciclo de Vida de Aplicações (Application Lifecycle Management - ALM)

• Hoje em dia o mesmo desenvolvedor tipicamente implementa a camada de acesso a dados e o próprio banco de dados

Page 4: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

A Solução

• Estabelecer e suportar um Ciclo de Vida de Desenvolvimento de Bancos de Dados (Database Development Lifecycle - DDLC)– Ferramentas, metodologias

e processos para o desenvolvedor de BDs

• Integrar o DDLC ao resto do ciclo de ALM

Page 5: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Database Development Lifecycle (DDLC)

• Desenvolva bancos de dados usando ferramentas e processos similares a desenvolvimento de aplicações

• Escreva código T-SQL direto no Visual Studio– Deixe o desenvolvedor declarar o que ele quer

– CREATE TABLE Clientes(…);– A ferramenta que “se vire” para descobrir como

criar/modificar o banco de dados

• Use as mesmas ferramentas de autoria e gestão de código– Controle de Versão, Refactoring, Análise de

Código, Testes de Unidade, Automação de Build

Page 6: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Integrando DDLC com ALM

• Implemente as mudanças em cada camada da aplicação a partir da mesma Solução do Visual Studio

• Use Controle de Versão (ex. TFS) para acompanhar e gerenciar mudanças feitas a cada camada

• Use Testes de Unidade para verificar automaticamente as interações entre aplicação/camada de negócios e o banco de dados

Page 7: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Roadmap

• Controle offline de mudanças• SQL 2000/2005• ALM para bancos de dados

VS 2005 VS 2008 “GDR” VS 2010 vNext

• Suporte a SQL 2008• Separação de Build e Deploy• Remoção do “DesignDB”

• Suporte a SQL 2008 R2• SQL IntelliSense• Suporte a bancos de

dados de terceiros

• Introdução a projetos Data-tier Application

• Projetos Data-tier Application (DAC) e Database (SQL) operam SxS

• Suporte a SQL Azure• Designers Visuais• Mecanismo unificado de implantação• Suporte a apps missão crítica• Suporte completo a objetos SQL• Melhorias no sistema de projetos• Melhorias nas funcionalidades de ALM

Visão para vNextCombinar o melhor dos

projetos SQL e DAC

SQL Server Development Tools (SSDT) Codename “Juneau”

Page 8: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Projetos de Bancos de DadosProjeto de Banco de Dados (SQL)

Modelos para projetos de bancos de dados estão disponíveis para SQL Server 2005 e SQL Server 2008. eles podem ser usados para definir um banco de dados de usuários (“catálogo”). Todos os objetos implementados em suas respectivas versões de SQL Server são suportados em projetos de banco de dados.

Projeto de Servidor (SQL)

Modelos para projetos de servidor estão disponíveis para SQL Server 2005 e SQL Server 2008. Eles podem ser usados para definir objetos em nível de servidor tal como para controlar alterações no banco de dados Master. Exemplos de objetos em nível de servidor são Logins e Mensagens de Erro Personalizadas.

Data-tier Application (DAC)

Projetos Data-tier application (DAC) podem ser usados para definir bancos que serão implantados em SQL Server Utilities. Um DAC é uma unidade de gerenciamente auto-contida que define e incorpora objetos de banco de dados, objetos de instância do SQL Server que estão associados ao banco de dados e requisitos de implantação.

Page 9: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

SQL Server Utility

Page 10: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Projetos de Banco de Dados vs.Projetos de Camada de Dados de Aplicação

Projetos de Banco de Dados (SQL) Projetos DAC (V1)

Aplicações-alvo Missão Crítica, Grandes Aplicativos Departmental

Suporte a banco de dados SQL 2005, 2008, 2010 e bancos de terceiros (ex. Oracle)

SQL 2008 R2, SQL 2008 SP2, SQL Azure

Intenção da Implantação N/AUnidade singular de implantação; captura db + intenção (pré-requisitos) da implantação.

Complexidade de esquema Missão Crítica, Grandes Aplicativos Departamental: 1000 objetos/projeto

Upgrade(esquema + dados)

Compilação gera scripts .sql para atualizar o esquema. Dados permanecem no lugar, a menos que “data motion” seja necessário

Sem scripts .sql.Esquema + dados gerados automaticamente na implantação

SQL Server object types Completo ParcialIntelliSense, Debugging,T-SQL Editor Igual para ambos

Os dois tipos de projeto podem operar lado-a-lado

Page 11: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Que projeto devo usar?

Use DAC se

• Você está criando um banco de dados que será implantando numa estrutura “SQL Server Utility”

• Seu banco de dados é do tipo “Tier 1”

Use SQL se

• Você está desenhando um banco de dados que requer objetos SQL não suportados pelo DAC

• O banco de dados será implantado em uma instância SQL que não é parte de uma SQL Server Utility

Page 12: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Matriz de FuncionalidadesFuncionalidade Projeto DAC Projeto SQL

IntelliSense

Validação Semântica e Sintática

Compilação do projeto gera artefato de implantação

Controle de Versão

Núm. de Versão do Banco de Daoos

Cria novo banco de dados

Atualiza banco existente

Mapeamento de requisitos do banco para recursos do SQL ×

Suporte para objetos SQL 2008 R2 Parcial Completo

Page 13: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Matriz de Funcionalidades de ALMFuncionalidade VS Professional VS Premium & Ultimate

DAC SQL DAC SQL

Schema Compare × ×

Data Compare × ×

Unit Test Execução Execução

Refactoring × ×

Static Code Analysis Execução Execução

Data Generation Execução Execução

TFS Build Integration

Command line deploy

Page 14: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

14

Projetos de Aplicações de Camada de Dados (DAC)

Page 15: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Projeto DAC

• Subconjunto de objetos SQL– Logins, Database Roles, Users– Tables, Views, User Defined Types,

Stored Procedures, Triggers & Functions

Page 16: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Conceitos Básicos de DAC• Projeto de Aplicação de Camada de Dados

– Novo tipo de projeto de banco de dados no VS 2010. Baseado no modelo de projetos pré-existente (SQL)

– Experiência de primeira classe para desenvolvimento T-SQL/DAC

– Desenvolvedores podem declarar intenção

– Resultado da compilação = .dacpac

• Componente para Aplicação de Camada de Dados– Melhora colaboração entre Dev e DBA– Move desenvolvedores de um modelo

procedural para um declarativo – Fim do “ALTER TABLE”

• Foco da V1 é aplicativo departamental

Data-tier Application Component

Schema

LOGICALTables, Views,

Constraints, SProcs, UDFs,

PHYSICALUsers, Logins,

Indexes

DAC Deployment ProfileDeployment Requirements, Management

Policies, Failover Policies

Unit of D

eployment

Page 17: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Bancos de Dados Alvos do DAC

• 100 - 1000s de pequenas aplicações

• Grandes LOBs não são o alvo

App Sophistication

Num

ber o

f App

s

CRM ERP

Focus of DAC v1

Page 18: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Objetos Programáveis Suportados

Define as políticas que a instância do SQL deve suportar para receber o DAC

Objetos de Segurança Suportados

Estrutura de Projetos DAC

Page 19: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

19

Projeto Banco de Dados (SQL)

Page 20: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Projeto de Banco de Dados (SQL)

• Desenvolvimento declarativo de bancos de dados para SQL Server 2005 e 2008 (Oracle com plugin Toad)

• Suporta referências para projetos do tipo– SQL CLR– XSDs– Outros projetos de banco de dados

• Design de grandes bancos de dados podem ser fatorados em projetos menores– Suporta reuso de código– Simplifica gerenciamento de projetos multi-time e multi-local

Page 21: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

Estrutura de Projetos SQL

Projetos de banco de dados representam a definição de um banco de dados de usuário

Variáveis SQLCMD permitem que você compile seu projeto de banco de dados uma única vez e o implante em servidores/bases diferentes

Projetos de Servidor representam a definição do banco de dados Master, bem como objetos de servidor como logins e mensagens de erro

Configurações SQL permitem ajustar as propriedades do banco de dados quando da sua implantação

Configurações de implantação permitem controlar o processo de implantação das alterações de um banco de dados no servidor de destino

Page 22: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

O que houve com os projetos DBP?

• Os projetos DBP (ou “projetos de banco de dados”) não estão mais disponíveis no VS 2010– Foram substituídos pelos projetos SQL– Projetos DBP não são migrados

automaticamente para projetos SQL

• Para migrar, é possível criar um novo projeto SQL e depois importar os scripts do projeto DBP. Outra alternativa é importar o esquema do banco de dados

• Para mais informações, consulte a documentação no site MSDN.

Page 23: Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)

www.lambda3.com.br