BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Como escolher uma imagem de container Linux

Como escolher uma imagem de container Linux

Foi publicada uma comparação de imagens de container Linux, onde são abordadas as melhores práticas na escolha de uma imagem. Arquitetura, segurança e desempenho são alguns requisitos, enquanto usuários comerciais procuram também por opções de suporte.

Um container Linux permite o gerenciamento de espaços do kernel, componentes e usuários de maneira separada, através da utilização de cgroups e namespaces, que são mecanismos de isolamento de recursos e processos. Sistemas Operacionais como Solaris e BSD também possuem abstrações semelhantes aos containers Linux, mas o foco deste artigo é apenas em containers Linux.

O host que está executando o container possui o kernel do Sistema Operacional e um conjunto de bibliotecas e ferramentas necessárias para executar containers. A imagem do container, por outro lado, possui bibliotecas e interpretadores necessários para executar a aplicação que está sendo distribuída no container, os quais dependem de bibliotecas de sistemas subjacentes. Isso também é válido para as linguagens interpretadas, pois os próprios interpretadores estão escritos em linguagens de baixo nível.

O tamanho do espaço em disco de várias imagens de container varia de 230 MB para o Fedora até 4 MB para o Alpine Linux. O tamanho, no entanto, não é a única consideração que deve ser dada ao escolher uma distribuição. Os principais grupos são Debian / Ubuntu, RHEL, Centos, Fedora e Alpine.

As vulnerabilidades de segurança em containers têm sido objeto de vários relatórios. As imagens públicas de containers Debian no DockerHub têm a menor quantidade de vulnerabilidades, de acordo com um estudo recente, enquanto as imagens do Ubuntu possuem o máximo. O espaço de amostra deste estudo foi limitado às imagens públicas do Docker. Ferramentas de código aberto, como Clair e Vuls, e comerciais, como o Twistlock, oferecem diferentes recursos e graus de proteção. A maioria dos fornecedores possuem testes automatizados para vulnerabilidades conhecidas na distribuição, bem como para software padrão, como servidores web e bancos de dados. Existem esforços conhecidos para minimização de vulnerabilidades de contêineres, (slides 7-9) que afetam a comunicação do host com os containers, e também o contrário.

Os formatos de pacotes e as principais bibliotecas como o glibc afetam a segurança e o desempenho do container. Bibliotecas maduras como o glibc e o gcc tornaram-se robustas ao longo de muitos anos de uso e possuem uma grande comunidade de usuários, sendo a principal razão para que as imagens de container utilizem-nas. Entretanto, algumas distribuições como Alpine permaneceram com alternativas que levaram a problemas.

Para além destes três critérios, os clientes empresariais também procuram se informar sobre o ciclo de vida e as opções de suporte. RHEL e Ubuntu possuem opções de suporte comercial através de fóruns da comunidade disponíveis para todos os gostos. O Ubuntu e RHEL lideram em termos de duração do ciclo de vida - o período de tempo para o qual uma versão é suportada em termos de correções de bugs, correções de backport, recursos e suporte.

A conclusão é que escolher uma imagem de container é semelhante à escolha de uma distribuição Linux. As imagens "desconstruidas" oferecem um subproduto interessante sobre este tópico. As imagens desconstruídas são imagens apenas da aplicação e de suas dependências em tempo de execução. Elas não contêm nenhum programa como shells e gerenciadores de pacotes geralmente encontrados em uma distribuição Linux.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT