keep calm and database continuous deployment

27

Upload: fabrizio-mello

Post on 24-Jan-2017

613 views

Category:

Data & Analytics


4 download

TRANSCRIPT

Quem Somos

@fabriziomello

@guilhermelias

Presumimos que você já ...

● Conhece o que é versionamento

● Utiliza alguma ferramenta/técnica de automação

● Faz isso em seu database

Alguém NÃO “versiona” seu DB ???

Para quem respondeu SIM!!!!

Te esperamos na

“Picareta Solutions”

Introdução ...

Não iremos falar de NoSQL ...

Não temos nenhuma “bala de prata” ...

… mas iremos apresentar dicas legais sobre deploy em RDBMS 24x7

AFINAL REQUISITOS MUDAM ...

ALTERAÇÃO BÁSICA ...

ALTER TABLE “tabela_mais_acessada_e_mais_gigante”ADD “sabe_de_nada_inocente” BIGINT DEFAULT 69;

E SENTA O DEDO NO PIPELINE ....

ENTÃO TUDO É “VALIDADO” ...

MAS É AÍ QUE SURGE A DOR ....

ONDE FOI QUE EU ERREI ???

#WTF

ESTAMOS LIDANDO COM RDBMS

ACID PROPERTIES

CONCURRENCY CONTROL

LOCK STRATEGY

ALTER TABLE “tabela_mais_acessada_e_mais_gigante”ADD “sabe_de_nada_inocente” BIGINT DEFAULT 69;

LEMBRAM DA ALTERAÇÃO BÁSICA?

O QUE É IMPORTANTE ENTENDER ...

● Criação de nova coluna “sabe_de_nada_inocente”

● Update gradual dos registros existentes para o valor default “69”

● Definição do valor default para novos registros “69”

ALTER TABLE “tabela_mais_acessada_e_mais_gigante”ADD “sabe_de_nada_inocente” BIGINT;

UPDATE “tabela_mais_acessada_e_mais_gigante” SET “sabe_de_nada_inocente” = 69 WHERE “id” BETWEEN 1 AND 10000... WHERE “id” BETWEEN 10001 AND 20000...

ALTER TABLE “tabela_mais_acessada_e_mais_gigante”ALTER “sabe_de_nada_inocente” SET DEFAULT 69;

LEMBRAM DA ALTERAÇÃO BÁSICA?

ALGUMAS OUTRAS DICAS ...

● Uso de triggers (INSERT / UPDATE)

● Criação de novas colunas ao invés de modificação de tipos

● Deploy especifíco para remoção de objetos Sufixo TO_DROP ...

DATABASE REFACTORING

Dev … é criar / modificar / alterar

Ops … é manter / zelar / NÃO MEXER!

Dev & Ops

E por que não …… DBDevOps?!

Dev & Ops

@fabriziomello@guilhermelias

DÚVIDAS???