O Docker é adequado para o meu caso de uso? [fechadas]

1

Precisamos de uma maneira eficiente e robusta de enviar atualizações para nossos usuários no campo, que possuem caixas Ubuntu idênticas fornecidas por nós. Nós também precisamos de algo que, como podemos atualizar o sistema operacional (estamos muito atrasados para uma atualização do Ubuntu, como você pode dizer), podemos sentir relativamente seguro sobre os nossos pacotes "apenas trabalhando".

Eu inicialmente pensei no Docker, mas quanto mais eu pensava nisso, eu sentia que talvez não, como essas caixas são nossas, nós controlamos o sistema operacional que é uma grande parte da proposta de valor do Docker, ou então eu Compreendo. Então, se nós sabemos que nossas caixas serão sempre Ubuntu e nós basicamente temos apenas um aplicativo Django mais alguns processos para executar, Docker é melhor do que um pacote deb?

Pacotes TL: DR: Docker vs deb para um dispositivo distribuído que sempre executará o Ubuntu, de modo que a independência de plataforma não é tão importante.

    
por Alberto Sancho 16.05.2017 / 19:29

1 resposta

1

É bom que os contêineres sejam forçados a empacotar seu aplicativo e suas dependências juntos e basicamente são forçados a automatizá-lo. Então é relativamente fácil acionar um (ou mais) em uma máquina, automaticamente.

Isso pode ajudar com upgrades. De volta a isso em um momento.

We need a way to efficiently and robustly push updates out to our users out in the field.

O Docker e o rkt têm suas próprias lojas de contêineres; O rkt, pelo menos, também oferece verificação completa de integridade criptográfica. Os contêineres Docker são construídos em camadas, o que proporciona alguma eficiência (só é necessário puxar camadas alteradas). rkt atualmente exibe uma imagem completa toda vez, ou pelo menos na versão que eu instalei.

É possível converter imagens entre os dois - por exemplo, em um projeto recente aqui eu uso o Docker para desenvolvimento (porque as camadas podem ajudar muito lá), então converto a imagem para rkt para implantação (porque rkt é mais sysadmin amigável e menos de uma preocupação de segurança, pelo menos para mim).

Observe que essas duas tecnologias estão se desenvolvendo rapidamente atualmente. O formato do contêiner, por exemplo, está mudando. Portanto, você deve esperar fazer atualizações frequentes se decidir no Docker ou no rkt.

BTW: Todas as suas dependências são empacotadas no contêiner, portanto, a versão do sistema operacional em execução fora do contêiner é menos importante. Mas você normalmente envia um novo contêiner para a atualização every . Isso pode consumir um pouco de largura de banda.

We also need something that as we upgrade the OS (we are way overdue for a Ubuntu upgrade as you can tell) we can feel relatively secure about our packages "just working".

O que você precisa aqui é um laboratório de testes. A confiança de que uma atualização funcionará deve-se principalmente ao fato de você ter testado , repetidamente, em todas as variações que você suporta.

Os contêineres podem ajudar - você pode usá-los para executar testes automaticamente (por exemplo, veja a configuração de teste automatizada do GitLab). Os contêineres são bastante leves, tanto quanto os recursos do host, muito mais do que as VMs. Então você pode testar frequentemente - até mesmo todo commit. E deve executar os testes usando os mesmos scripts automatizados que criam os contêineres que você enviaria, para que você possa ter certeza de que sua imagem de contêiner funciona.

Mas, para as atualizações reais do SO básico, você precisará testar isso no hardware real. Você pode testar atualizações de sistema operacional com VMs também (o que é bom, já que é possível retroceder a imagem com facilidade - e você pode automatizar isso), mas também é necessário testar o hardware real. Especialmente desde que eles estão no campo e que a falha na atualização é provavelmente cara.

Resumindo: os contêineres são úteis para muitas coisas como essa, mas eu não acho que o software ainda esteja maduro o suficiente para que eu fique confortável dependendo de sua estabilidade através do próximos 5 anos. Espero que dentro de um ano ou dois, no entanto, isso mude, por isso é uma boa ideia pensar nisso agora.

PS: Uma coisa não técnica a ser considerada: Se você está baixando pacotes dos arquivos do Ubuntu, o Ubuntu provavelmente está lidando com sua conformidade com a GPL, tendo a fonte disponível no mesmo lugar. Se você enviar imagens de contêiner, terá que se preocupar com isso. (Claro, você também deveria estar fazendo isso ao enviar as máquinas.)

    
por 16.05.2017 / 20:07

Tags