‫Trocadilho.
‫Fui informado muito recentemente para não se preocupar em receber o D. B. Postgres executando em um
‫contêiner de docker, pode ser melhor manter o banco de dados em pensamentos simples, especialmente com replicação.
‫OK, então se você está executando seu DBS hoje no bare metal e eles estão funcionando bem, você
‫deve se perguntar se o container está subindo apenas porque parece legal ou o container subindo por um motivo específico para
‫obter algo de que precisa .
‫Certo.
‫Os bancos de dados provavelmente são ótimos em contêineres.
‫Devo dizer que também muitos gateways estão executando bancos de dados.
‫Eu corro nos meus bancos de dados em contêineres quando preciso.
‫A opção que eu prefiro é usar a hospedagem em nuvem do banco de dados para eles mesmos.
‫Em outras palavras, se estiver em um W. S. e posso usar o RDX como solução própria. Prefiro fazer isso.
‫Prefiro não precisar executar e manter meus próprios servidores de banco de dados, porque a maioria de nós não é DB em
‫tempo integral, pois os engenheiros de nuvem que executam a nuvem tendem a ser melhores dias em DB e nós somos.
‫Por isso, eu sempre prefiro executar meus bancos de dados corretamente na nuvem.
‫Dito isto, se este é apenas um projeto pessoal ou se você não tem permissão para fazer isso ou se você tem
‫razões muito específicas para não determinar o preço, não deve ser uma delas, porque na maioria dos casos eu posso
‫argumentar claramente que será mais barato para você hospedar isso em seu armazenamento em seu ambiente, porque
‫você obterá redundância automática, obterá melhor registro e monitoramento fora do
‫portão e, caso contrário, precisará fazer tudo isso sozinho.
‫E se você não fizer tudo isso sozinho, provavelmente será mais caro que o próprio armazenamento em nuvem.
‫Portanto, apenas a hospedagem em si pode ser mais cara que um servidor bare metal, mas você custa algo para
‫a organização e o gerenciamento de todas essas coisas custa algo.
‫Por isso, prefiro recuperar meu tempo trabalhando em outras coisas que talvez a nuvem não faça muito bem para mim e uma das coisas
‫que elas podem fazer bem são os bancos de dados.
‫Dito isso, se for necessário executar seus bancos de dados, um banco de dados bare metal e um banco de dados
‫nesse mesmo bare metal em um contêiner não farão diferença no desempenho.
‫Há, com exceção de poucos casos raros, a maneira como talvez seus volumes funcionem.
‫E desde que você esteja armazenando adequadamente os logs do banco de dados e nos próprios volumes, e assumindo que esse volume
‫esteja no mesmo armazenamento que você possuía no caso bare metal, você sabe porque, obviamente,
‫o Io de armazenamento mudaria se você movesse o arquivo para outro lugar. tudo será o mesmo.
‫Não há camada de emulação ou atraso ou algum tipo de calço no meio de um recipiente.
‫É o bare metal que está sendo executado corretamente no sistema operacional host.
‫Portanto, se o sistema operacional
‫host e o kernel host estiverem no bare metal, o desempenho do bare metal será garantido
‫e posso dizer isso com confiança, porque fiz isso de fato na
‫página de recursos do Docker, se você pesquisar em HP e HP, há um white paper que Eu fiz alguns anos atrás com Docker e
‫Hewlett-Packard HP Hewlett-Packard Enterprise. Acho que é isso que significa.
‫E fizemos o desempenho da minha sequência em três cenários diferentes, usando bancos de dados como um mecanismo de banco de dados e banco de dados
‫em uma VM e, em seguida, várias vítimas em um único host.
‫Certo.
‫Qual é o modelo de nuvem para a maioria das pessoas.
‫Esse é o modelo que eles fazem no modelo tradicional ou com algumas VMs com muitos contêineres executando
‫uma instância única separada.
‫Isso significa que menos SO é apenas o mesmo número geral de meus mecanismos de sequela ou executando o mesmo número
‫de meus mecanismos de sequela em bare metal em contêineres sem virtualização.
‫Certo.
‫Por isso, criamos três modelos diferentes, provavelmente os que você usaria ao passar
‫dos aspiradores tradicionais para os contêineres e, sem dúvida, o bare metal ganha as mãos.
‫Ele vence em termos de desempenho e ganha em termos de sobrecarga de gerenciamento porque agora você tem apenas um
‫SO em vez de oito ou mais SO, dependendo de quantos mouses com volumes iguais você criar.
‫Ele também economiza muito espaço e recursos de memória, porque você não precisa executar cada sistema operacional e usar tarefas
‫conhecidas de RAM apenas para executar os sistemas operacionais repetidamente.
‫Certo.
‫Então, se você pensa em eficiência, foi muito melhor no meu metal.
‫São recipientes rodando em metal puro.
‫Se eu tivesse executado esse banco de dados no bare metal sem um contêiner, provavelmente não desejaria executar vários mecanismos
‫de banco de dados no mesmo sistema operacional.
‫Certo.
‫Portanto, agora, se você não estiver usando contêineres em metal puro, precisará de todos os recursos
‫dessa máquina física.
‫Certo.
‫Então, talvez ele tenha um banco de dados muito grande ou você não consiga utilizar
‫totalmente os recursos dele, porque não pode empilhar, sabe cinco instâncias únicas diferentes, todas no mesmo
‫metal.
‫Portanto, essa é a vantagem que vejo nos contêineres: permite que você isole discretamente os mecanismos de banco de
‫dados separados, todos da mesma maneira.
‫E porque não.
‫Quando faço isso, se você tem acesso a muito metal, está disposto a fazer isso.
‫Portanto, eu não iria correr e colocar o Postgres em contêineres apenas porque pensei que
‫esfriaria.
‫Definitivamente, eu faria uma lista de prós e contras e um profissional é que é isolado.
‫Você pode adicionar mais coisas como mais contêineres e precisa se preocupar com o conflito
‫entre eles.
‫E se seu banco de dados possuir hardware dedicado e não houver
‫compartilhamento de recursos, talvez o contêiner não seja necessário.
‫Talvez você possa se safar disso agora.
‫Tudo o que você tem.
‫Quando todos estiverem em contêineres, você desejará que todo o resto também estivesse em contêineres.
‫Certo.
‫Você terá todas as suas ferramentas de gerenciamento procurando por contêineres.
‫Portanto, há prós e contras lá.
‫Certo.
‫Eu não iria apenas correr para a área de contêineres, mas certamente não diria que pegar algo de um
‫sistema operacional e depois colocá-lo em um contêiner nesse sistema operacional para mim normalmente não altera
‫o desempenho.
‫É realmente o mesmo processo no mesmo sistema operacional.
‫É apenas um limite de segurança em torno dele.
‫Agora isso limita potencialmente o acesso a recursos e limita sua capacidade de fazer outras coisas
‫na máquina.
‫Tudo certo.
‫Espero que isso ajude a diminuir, mas essa é uma ótima pergunta sobre bancos de dados e, se você
‫estiver interessado em saber mais, consulte os documentos aqui na minha página do Docker e no médico de barra de
‫Brett Fisher e você pode ler sobre seu desempenho mental versus o In Performance para bancos de dados.