0Pricing
Ansible Academy · Aula

Implantação progressiva atrás do balanceador de carga

Faça a liberação em série sem tempo de inatividade.

Implantação progressiva atrás do balanceador de carga é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ansible Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ansible Academy inclui 4 aulas no total.

Tempo de inatividade zero é a promessa

Atualize todos os nós web sem perder uma única solicitação. O segredo é uma implantação gradual: altere alguns servidores por vez. 🔄

serial controla o lote

Adicione serial ao seu play para que o Ansible processe os servidores em pequenas ondas, em vez de todos de uma vez.

- hosts: web
  serial: 1
  tasks:
    - import_role:
        name: webapp

Porcentagens também funcionam

serial aceita uma porcentagem ou uma lista de tamanhos, permitindo aumentar gradualmente: primeiro um canário, depois lotes maiores.

serial:
  - 1
  - 25%
  - 50%

Drene antes de tocar no servidor

Antes de atualizar um nó, retire-o da rotação. Use delegate_to para instruir o balanceador de carga a parar de enviar tráfego para ele.

- name: Drain node
  community.general.haproxy:
    state: disabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

Por que usar delegate_to para o LB

O servidor web não pode se desativar no balanceador; o balanceador de carga precisa fazer isso. delegate_to executa essa tarefa em lb1 para cada servidor web.

Implante a nova versão

Com o nó drenado, implante o código, gere a configuração e deixe um manipulador recarregar o serviço da aplicação somente nesse servidor.

- name: Pull release
  ansible.builtin.git:
    repo: "{{ app_repo }}"
    version: "{{ app_version }}"
    dest: /srv/app
  notify: Reload app

Verifique a integridade antes de reativar

Confirme que o nó está saudável com uri antes de enviar os usuários de volta. Nunca readicione um servidor com problemas ao conjunto.

- name: Wait for health
  ansible.builtin.uri:
    url: http://localhost:8080/health
    status_code: 200
  retries: 5
  delay: 3

Reative no balanceador

Quando estiver saudável, coloque o nó novamente na rotação, mais uma vez usando delegate_to para o balanceador de carga. O tráfego será direcionado para a nova versão.

- name: Enable node
  community.general.haproxy:
    state: enabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

max_fail_percentage protege o processo

Defina max_fail_percentage para interromper a implantação se muitos servidores falharem, impedindo que uma versão defeituosa se espalhe ainda mais.

- hosts: web
  serial: 1
  max_fail_percentage: 20

run_once para etapas compartilhadas

Algumas etapas, como uma migração única do banco de dados, devem ser executadas uma só vez. Use run_once para que apenas um servidor as execute.

- name: Migrate db
  ansible.builtin.command: /srv/app/migrate
  run_once: true

O ciclo completo

Por servidor: drenar, implantar, verificar a integridade e reativar. serial repete esse ciclo em ondas seguras até que toda a frota seja atualizada. ✅

Verificação rápida

Uma palavra-chave faz a etapa do LB funcionar.

Recapitulação

O senhor criou uma implantação gradual: lotes com serial, drenagem e reativação por meio de delegate_to, verificações de integridade e uma proteção contra falhas. Tempo de inatividade zero. 🟢

Perguntas Frequentes

A aula “Implantação progressiva atrás do balanceador de carga” é grátis?

Sim — o texto completo de “Implantação progressiva atrás do balanceador de carga” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ansible Academy, atualize para CoddyKit PRO. O curso de Ansible Academy inclui 4 aulas no total.

O que vou aprender em “Implantação progressiva atrás do balanceador de carga”?

Faça a liberação em série sem tempo de inatividade. Você pratica Ansible Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ansible Academy?

Nenhuma experiência prévia é necessária. Ansible Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Implantação progressiva atrás do balanceador de carga”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ansible Academy?

Sim. Cada aula de Ansible Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Projete o projeto: roles e inventário
  2. Provisione, proteja e prepare hosts
  3. Implantação progressiva atrás do balanceador de carga
  4. Testes básicos, reversão e notificações
← Voltar para Ansible Academy