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: webappPorcentagens 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: lb1Por 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 appVerifique 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: 3Reative 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: lb1max_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: 20run_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: trueO 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
- Projete o projeto: roles e inventário
- Provisione, proteja e prepare hosts
- Implantação progressiva atrás do balanceador de carga
- Testes básicos, reversão e notificações