Keep calm and Database Continuous Deployment

617 visualizações

Publicada em

Manter uma aplicação rodando 24x7 é um desafio para qualquer time de desenvolvimento. Mas para isso é preciso se preocupar um pouco mais do que apenas alta disponibilidade, é preciso aplicar boas práticas, padrões e técnicas de refatoração de banco de dados relacionais para evitar os temidos, e até então ?inevitáveis? downtimes.

Seu conceito de alta disponibilidade irá mudar depois desta palestra ;-)

Publicada em: Dados e análise
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
617
No SlideShare
0
A partir de incorporações
0
Número de incorporações
13
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Keep calm and Database Continuous Deployment

  1. 1. Quem Somos @fabriziomello @guilhermelias
  2. 2. Presumimos que você já ... ● Conhece o que é versionamento ● Utiliza alguma ferramenta/técnica de automação ● Faz isso em seu database
  3. 3. Alguém NÃO “versiona” seu DB ???
  4. 4. Para quem respondeu SIM!!!! Te esperamos na “Picareta Solutions”
  5. 5. 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
  6. 6. AFINAL REQUISITOS MUDAM ... ALTERAÇÃO BÁSICA ... ALTER TABLE “tabela_mais_acessada_e_mais_gigante” ADD “sabe_de_nada_inocente” BIGINT DEFAULT 69;
  7. 7. E SENTA O DEDO NO PIPELINE ....
  8. 8. ENTÃO TUDO É “VALIDADO” ...
  9. 9. MAS É AÍ QUE SURGE A DOR ....
  10. 10. ONDE FOI QUE EU ERREI ??? #WTF
  11. 11. ESTAMOS LIDANDO COM RDBMS
  12. 12. ACID PROPERTIES
  13. 13. CONCURRENCY CONTROL
  14. 14. LOCK STRATEGY
  15. 15. ALTER TABLE “tabela_mais_acessada_e_mais_gigante” ADD “sabe_de_nada_inocente” BIGINT DEFAULT 69; LEMBRAM DA ALTERAÇÃO BÁSICA?
  16. 16. 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”
  17. 17. 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?
  18. 18. 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 ...
  19. 19. DATABASE REFACTORING
  20. 20. Dev … é criar / modificar / alterar Ops … é manter / zelar / NÃO MEXER! Dev & Ops
  21. 21. E por que não … … DBDevOps?! Dev & Ops
  22. 22. @fabriziomello @guilhermelias DÚVIDAS???

×