Upgrade to Pro — share decks privately, control downloads, hide ads and more …

12+ factor databases

12+ factor databases

Apresentei essa talk no devops extreme realizado pela linux tips em 2021.

Mesma disponivel nessa URL: https://www.youtube.com/watch?v=LD4m3sABLi8

Sebastian Webber

August 12, 2021
Tweet

More Decks by Sebastian Webber

Other Decks in Technology

Transcript

  1. 12+ factor
    databases
    Sebastian Webber

    View Slide

  2. ● Super fã do PostgreSQL
    ● Aprendiz de ninja
    ● Gosta dos Golang e Ruby
    ● Organiza uns evento por aí
    ● Tende a falar bobagem nos
    eventos
    ● Faz uns rango que fica bonito
    ● Humildão que não toma IPA
    @sebaWebber

    View Slide

  3. ● Super fã do PostgreSQL
    ● Aprendiz de ninja
    ● Gosta dos Golang e Ruby
    ● Organiza uns evento por aí
    ● Tende a falar bobagem nos
    eventos
    ● Faz uns rango que fica bonito
    ● Humildão que não toma IPA
    @sebaWebber

    View Slide

  4. ● Super fã do PostgreSQL
    ● Aprendiz de ninja
    ● Gosta dos Golang e Ruby
    ● Organiza uns evento por aí
    ● Tende a falar bobagem nos
    eventos
    ● Faz uns rango que fica bonito
    ● Humildão que não toma IPA
    @sebaWebber

    View Slide

  5. View Slide

  6. 12factors.net

    View Slide

  7. 0 - Persistência
    On Premises: Storage dedicado
    com discos, rede e energia
    redundantes tolerantes a falhas
    Na cloud: EBS ou similar

    View Slide

  8. Até Agora

    View Slide

  9. 1 - Base de código
    Automação do deployment ou
    rollback das mudanças no banco
    armazenadas no git - também
    conhecido como migrations.
    Capricha no `git log`.

    View Slide

  10. Até Agora

    View Slide

  11. 2 - Dependências
    Setup do ambiente que o banco vai
    rodar seja vm/equipamento físico
    ou containers.
    Lembre-se do drama do Alpine e a
    GLib C.

    View Slide

  12. Até Agora

    View Slide

  13. 3 - Configurações
    Salve suas configurações no git e
    faça do deploy delas como se
    fosse uma app no servidor.

    View Slide

  14. Até Agora

    View Slide

  15. 4 - Serviços de apoio
    Não esqueça tratar as ferramentas
    externas, como backup e
    monitoramento, como parte do
    próprio banco.

    View Slide

  16. Até Agora

    View Slide

  17. 5 - Construa, lance e Execute
    Use IaC para criar os
    servers/containers , instalar e
    configurar seus banco de dados.
    Objetivo final da infra *deve*
    server imutável.

    View Slide

  18. 6 - Processos e 7 -Vínculo de portas
    Crie suas configurações a fim de
    garantir que sejam independentes
    do ambiente, podendo rodar em
    portas e locais diferentes.
    Cada banco vai precisar de seu
    disco independente.

    View Slide

  19. 8 - Concorrência
    Limite os recursos do banco e
    garanta que ele sempre execute
    num equipamento que tenha os
    recursos mínimos.
    Evite bancos com alta concorrência
    rodarem no mesmo host.

    View Slide

  20. 9 - Descartabilidade
    Tarefas de upgrade ou mudanças
    de configuração considere
    aplicá-las em outro host, movendo
    os dados até ele - ou através da
    promoção de uma réplica.

    View Slide

  21. 10 - Paridade entre desenvolvimento e produção
    Use a mesma arquitetura pra
    todos os ambientes.
    Sério.

    View Slide

  22. Até Agora
    Dev Produção

    View Slide

  23. 11 - Logs
    Use os logs pra pegar insights
    sobre o que o banco está
    trabalhando e no que ele precisa
    de ajuda.

    View Slide

  24. Até Agora

    View Slide

  25. 12 - Processos administrativos
    Tenha um host/container
    configurado e pronto pra executar
    manutenções no banco.
    Não improvise. tenha tudo
    instalado *antes* da manutenção.

    View Slide

  26. Até Agora

    View Slide

  27. Ok, agora me
    mostra!

    View Slide

  28. No K8S...
    Persistência + Deps

    View Slide

  29. No K8S...
    Base de código

    View Slide

  30. No K8S...
    Configurações

    View Slide

  31. No K8S...
    Serviços de apoio

    View Slide

  32. No K8S...
    Logs

    View Slide

  33. No K8S...
    Processos administrativos

    View Slide

  34. Pra resumir...

    View Slide

  35. lets check
    the DEMO

    View Slide

  36. StackGres Architecture

    View Slide

  37. Anatomy of the Pod

    View Slide

  38. Pra resumir...

    View Slide