BT

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

Contribuir

Tópicos

Escolha a região

Início Notícias Lições para construir entrega contínua na infra-estrutura

Lições para construir entrega contínua na infra-estrutura

Lindsay Holmwood recentemente contou suas experiências aprendidas na construção de Entrega Contínua (Continuous Delivery - CD) para os serviços de infra-estrutura. Holmwood oferece conselhos sobre ciclos de feedback rápidos, especialmente de conformidade com Acordos de Nível de Serviço (SLA) e de apoio à alterações pequenas e discretas. Holmwood é o criador do Flapjack, um sistema de processamento de roteamento de monitoramento e notificação de eventos.

Holmwood define serviços de infra-estrutura como "uma configuração de software e dados que são consumidos por outros softwares". Isso inclui, por exemplo, DNS, bancos de dados ou serviços de monitoramento.

Holmwood garante que existem cinco coisas para se pensar a fim de se obter feedback de qualidade, e não apenas rápido. Comece com o teorema CAP (da sigla em inglês que significa Consistência, Disponibilidade, Tolerância a Partição). Decida se os serviços que serão construidos devem atender a consistência ou a disponibilidade. Exemplos de consistência incluem bancos de dados, disponibilidade e balanceadores de carga. Assim que a escolha for feita, é hora da equipe acordar com os usuários de infra-estrutura os SLAs para eles se comprometerem. Por exemplo, "95% do tempo de resposta para monitorar consultas de métricas em uma janela de uma hora é < 1 segundo". Terceiro, sempre que possível use seu pipeline de entrega contínua para verificar seus SLAs. Também será necessário ter interfaces claras e bem definidas entre os serviços de infra-estrutura. Essas interfaces claras ajudam a verificar as interações entre as partes, tanto durante os testes como na operação normal. Finalmente, Holmwood defende o envio de dados para um lugar que forneça infra-estrutura imutável.

No feedback rápido, Holmwood e sua equipe descobriram que a colocação do sistema de integração contínua (Continuous Integration - CI) perto do provedor de IaaS (seja localmente ou na nuvem) é crucial para reduzir o tempo de latência. Holmwood cita um projeto no qual o tempo de construção foi reduzido de 20 minutos para 5 minutos, apenas movendo o CI para perto da API da IaaS.

Se sua equipe faz a maior parte do trabalho via linha de comando, a troca do contexto (para a interface web da integração contínua) pode ser um entrave para a experiência do usuário. Para garantir que todos respeitem a regra de enviar cada mudança através do pipeline da entrega contínua, Holmwood sugere ferramentas como jenkins-cli. O processo de construção pode ser seguido a partir da linha de comando:

git push // jenkins start $job // jenkins tail $job

Pode-se até plotar dados no terminal com a ajuda do gnuplot.

Feedback rápido requer mudanças rápidas e discretas. Isso significa que os testes devem rodar rápido. Holmwood aconselha que cada rodada de testes execute em menos de dez segundos. Dado o contexto de infra-estrutura, rodar testes rapidamente também significa fazer compromissos. Holmwood então automatiza os testes que procuram por problemas inequívocos, como verificar se serviços estão rodando e executar consultas simples. Verificações de monitoramento complementa o pipeline de entrega contínua verificando comportamento fim-a-fim.

Deve se notar que com o passar do tempo a entrega contínua para infra-estrutura tem ganho mais suporte dos fornecedores. O Atlas, da Hashicorp e a proximidade do Chef Delivery são exemplos desses desenvolvimentos.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT