Vantagens de usar banco de dados e aplicação no mesmo Pod
Falando sobre Kubernetes, você sabe qual é a grande vantagem de se usar banco de dados e aplicação no mesmo Pod?
A resposta para essa pergunta é: NENHUMA!
Eu imagino que você já saiba o que é um Pod, mas vou reforçar: Pod é a menor unidade entregável no Kubernetes. Um Pod pode conter um ou mais containers.
Um Pod deve ser projetado para conter todos os containers que compartilham o mesmo ciclo de vida. Como a maioria das aplicações dependem de uma base de dados, isso pode dar a impressão de que acoplar ambos os recursos em um mesmo Pod pode parecer uma boa prática. Isso facilitaria a conexão, bastando apenas apontar a configuração da aplicação para o localhost. No entanto, vamos analisar outro cenário comum.
Imagine que você precise escalar sua aplicação. Se ela estiver acoplada ao banco, ao escalar um recurso, você estará automaticamente escalando o outro. Ao escalar ambos você terá falhas, já que o banco não foi projetado para ser um cluster.
Outro ponto importante a ser lembrado: mesmo que essa abordagem seja tecnicamente possível, elementos de uma arquitetura de microsserviços não devem ser fortemente acoplados, ou seja, colocar todos esses elementos em um único Pod definitivamente não é uma abordagem recomendada.
Espero que este post responda alguma das suas dúvidas.