Migracao colaborativa

Preview:

Citation preview

Migração colaborativa para PostgreSQL

Leonardo Cezar

MotivaçãoMotivação

● Evolução no desenvolvimento de projetos de Evolução no desenvolvimento de projetos de pequena porte pequena porte

● Reutilização de rotinas e processosReutilização de rotinas e processos● Unir os esforços de migração e Unir os esforços de migração e

desenvolvimento dentro das empresasdesenvolvimento dentro das empresas● Compartilhar conhecimento e reduzir retrabalhoCompartilhar conhecimento e reduzir retrabalho

Por que PostgreSQL?Por que PostgreSQL?

suporte da comunidade extensível escalável Administração simples grandes volumes de dados segurança gratuito e

livre licença adequada relacional MVCC

LDAP over deployment custo

confiabilidade integridade estabilidade

multiplataforma ACID Rules Integridade Referencial SSL Kerberos linguagens

procedurais LDAP tipos customizados

Processo de migraçãoProcesso de migração● Tipos de migração

– Migração de aplicação

– Migração de base de dados

– Migração de aplicação e base de dados (desenvolvimento)

Migração: IdentificaçãoMigração: Identificação

● Informações sobre a infraestrutura● Cópia de segurança● Disponibilidade● Compatibilidade da aplicação

Migração: PlanejamentoMigração: Planejamento

● Documento de visão– Informações sobre a aplicação

– Requisitos da aplicação

– Cenário de utilização de aplicação

● Documento de escopo● Cronograma preliminar

Migração: AnáliseMigração: Análise

● Características da aplicação● Rastreabilidade de dependências

– Estudo preliminar (obter poucas informações)

– Análise completa (visões, SPs, JOBs, &c)

Migração: ExecuçãoMigração: Execução● Migração de logins e usuários● Migração de DDL● Exportação de dados● Procedimentos armazenados● Views● Triggers● Jobs e Cargas

Migração: FerramentasMigração: Ferramentas● Processo

– Eclipse EPF

● Funcionalidades– ora2pg

– mssql2pg

Ferramentas de apoioFerramentas de apoio● Estrutura/Dados

– mssqltopg

– freetds

– SQLFairy

– dump2pg

● Integração– DBI Link

– dblink

5 Tipos de Projetos de software livre(por Josh Berkus)

Tipos de projetos Tipos de projetos

Solo● Poucos colaboradores● Derivação de outros projetos● Suporte imediato● Exemplos:

– apgdiff

– E-Maj

– pgloader

Tipos de projetosTipos de projetos

Monarquia● Evolução do modelo Solo● Decisões realizadas pelos líderes● Geralmente mais formais● Muitos colaboradores

● Exemplos– pgBouncer

– pgsnmp

Tipos de projetosTipos de projetos

Comunidade● Decisões baseadas na meritocracia e consenso● Suporte através de listas, fóruns, &c● Muitos contribuintes● Exemplos

– PostgreSQL

– Slony

– Pgpool

Tipos de projetosTipos de projetosCorporativo● Código liberado por empresa ● Contribuição difícil● Maioria dos colaboradores são empregados ● Normalmente bi-licenciado● Suporte através de parceiros ● Exemplos

– skytools

– apgdiff

– edb-debugger

Tipos de projetosTipos de projetos

Fundação● Último estágio da evolução de um projeto● Decisões formalizadas pelas necessidades

estruturais● Suporte através de patrocinadores● Exemplo:

– Apache

– LibreOffice

Nem tudo são flores...Nem tudo são flores...● Cultura● Vícios● Ferramentas de modelagem● Ferramentas de administração● Capacitação da equipe

RepositóriosRepositórios

● http://www.pgfoundry.org● http://projects.postgresql.org● http://www.pgxn.org● http://www.github.com

Dúvidas?lhcezar@postgresql.org.br