BT

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

Contribuir

Tópicos

Escolha a região

Início Notícias A infraestrutura de teste do Docker

A infraestrutura de teste do Docker

Jessie Frazzelle, membro da equipe do núcleo do Docker, é responsável pela infraestrutura de teste do Docker. Ela descreveu como essa infraestrutura é construída com os próprios containers do Docker.

A infraestrutura de teste é composta por cerca de 50 servidores. Eles respondem pelos seis diferentes controladores de armazenamento, que determinam como o Docker armazena os containers, todas as distribuições Linux e as várias versões do kernel do Linux que o Docker suporta. O cliente do Docker para Windows, que fornece uma VM leve para executar hosts Docker no Windows, também é levado em conta.

Push para o projeto master do Docker e Pull Requests (PR) têm seus próprios fluxos de trabalho. Além de executar todos os testes do Docker, cada push bem sucedido para o master publica os binários e documentações para aqueles que querem testar a versão "bleeding edge". O Docker Binary Builder, ou docker-bb como é chamado, lida com a construção dos binários principais.

Pull Requests possuem o seu próprio fluxo de trabalho e seus próprios servidores. Cada Pull Request - existem mais de 100 por semana - é executado com os testes do Docker, no novo binário experimental e no cliente para Windows. Leeroy, um pequeno aplicativo construído por Frazzelle, gerencia todos os builds dos Pull Requests. As suas responsabilidades incluem a atualização do status (pendente, sucesso, falha ou erro) do Pull Request e validação do certificado de origem do desenvolvedor Docker.

O servidor de integração contínua do Docker é o Jenkins, uma vez que ele fornece a flexibilidade e o controle que a equipe precisa. Como esperado, Frazzelle usa a imagem oficial para executar o Jenkins dentro de um container.

O Consul, uma ferramenta para descoberta de serviço, é parte fundamental da infraestrutura de teste. Frazelle utiliza a sua capacidade de tags (marcações) de serviços para rastrear dados, tal como as versões do kernel do Linux ou drivers de armazenamento. Isto, por sua vez, ajuda nas atividades de resolução de problemas. A verificação de status do Consul tem o suporte dos consul-alerts para notificar a equipe quando um serviço fica indisponível ou comprometido.

A equipe de Docker usa nsq, uma plataforma de mensagens distribuídas em tempo real, para integrar muitos desses processos. Por exemplo para conectar hooks do GitHub ao docker-bb ou para gerar documentações no master.

Todos os serviços permitem que os testes de infraestrutura sejam executado dentro dos containers do Docker. A infraestrutura de teste utiliza a versão mais recente do Release Candidate do Docker sempre que houver uma. Às vezes, são usados os últimos binários principais para pegar os bugs o mais cedo possível.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT