EventStore no Docker

2

Estou ocupado investigando o uso do Docker para um sistema em que estou trabalhando. Nós usamos o EventStore e eu fiquei feliz em ver que existe um contêiner do Docker para ele já.

Mas quando eu estava olhando, vi isso postado várias vezes.

Note: This container is for development purposes only

Estou tentando descobrir o que torna esse contêiner inadequado para a produção, mas não consigo encontrar uma resposta direta de ninguém. O mais próximo que cheguei é que todos os nós ES estarão no mesmo contêiner, então se ele ficar inativo, tudo fica inativo.

Existe também este tópico .

Então alguém pode me dar uma razão concisa sobre o motivo de o ES não ser adequado ao Docker em um ambiente de produção?

    
por David Pilkington 19.02.2017 / 18:53

1 resposta

1

Isenção de responsabilidade: não sou especialista em Loja de Eventos . Pode haver recursos específicos para o Event Store que o tornam menos adequado para executar a partir de um contêiner que não conheço.

Em geral, você pode "dockerize" a maioria dos serviços e eles podem funcionar igualmente bem como um serviço que é executado nativamente em um servidor.

As coisas que você precisa saber são:

  • onde você guarda seus dados
  • onde você guarda seus arquivos de configuração
  • qual desempenho é necessário
  • e a segurança

Data : Devido à maneira como o contêiner é executado no exemplo, seus dados estarão "dentro" do contêiner. Exclua ou atualize o contêiner e seus dados se foram para sempre.

Para tornar seus dados persistentes, use volumes de dados ou contêineres de volume de dados . Estes mantêm seus dados no host (seu Dockerfile já tem suporte para ele, veja VOLUME ).

Há também soluções de armazenamento que permitem acessar dados remotamente usando plug-ins de volume .

Arquivos de configuração : a mesma história de seus dados. Você pode manter seus arquivos de configuração em um volume de dados (container) ou passá-los através do Dockerfile (como eles fizeram no Dockerfile).

Desempenho : pode haver um pequeno impacto no desempenho em algumas situações ao usar o Docker versus o nativo. Consulte o link

Safety : Devido à forma como o contêiner é executado no exemplo, o Event Store será exposto na máquina host. Qualquer um pode acessá-los externamente. Para mantê-los locais para o host, use -p 127.0.0.1:1113:1113 .

Na empresa em que trabalho, configurei um mysql server em um contêiner. Os dados e arquivos de configuração são 'armazenados' em um contêiner de volume de dados. Eu também configurei um cron job que executa outro contêiner para fazer o backup dos mysql data no host.

Vários aplicativos (também "dockerised") estão felizes em usar mysql dessa maneira. Nós não vimos nenhuma diferença em executar mysql nativamente. Pode haver mais de 50 usuários por vez.

    
por 11.03.2017 / 00:12

Tags