Rullende udrulning bag load balanceren
Udgiv sekventielt uden nedetid.
Rullende udrulning bag load balanceren er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Nul nedetid er løftet
Opdatér alle webnoder uden at miste en eneste forespørgsel. Tricket er en rullende udrulning: ændr nogle få værter ad gangen. 🔄
serial styrer batchen
Tilføj serial til dit play, så Ansible arbejder sig gennem værterne i små bølger i stedet for på dem alle på én gang.
- hosts: web
serial: 1
tasks:
- import_role:
name: webappProcenter virker også
serial accepterer en procentdel eller en liste med størrelser, så du kan trappe op: først en canary og derefter større batches.
serial:
- 1
- 25%
- 50%Dræn før du rører ved noden
Før du opdaterer en node, skal du tage den ud af rotationen. Brug delegate_to til at fortælle belastningsfordeleren, at den ikke længere skal sende trafik til noden.
- name: Drain node
community.general.haproxy:
state: disabled
host: "{{ inventory_hostname }}"
delegate_to: lb1Hvorfor delegate_to til LB'en
Webværten kan ikke deaktivere sig selv i belastningsfordeleren; det skal belastningsfordeleren gøre. delegate_to kører opgaven på lb1 for hver webvært.
Udrul den nye version
Når noden er drænet, skal du udrulle kode og gengive konfigurationen, hvorefter en handler genindlæser applikationstjenesten – kun for den pågældende vært.
- name: Pull release
ansible.builtin.git:
repo: "{{ app_repo }}"
version: "{{ app_version }}"
dest: /srv/app
notify: Reload appSundhedstjek før genaktivering
Bekræft med uri, at noden er sund, før du sender brugere tilbage. Føj aldrig en ødelagt vært til puljen igen.
- name: Wait for health
ansible.builtin.uri:
url: http://localhost:8080/health
status_code: 200
retries: 5
delay: 3Aktivér igen i belastningsfordeleren
Når noden er sund, skal du sætte den tilbage i rotationen, igen via delegate_to til belastningsfordeleren. Trafikken går nu til den nye version.
- name: Enable node
community.general.haproxy:
state: enabled
host: "{{ inventory_hostname }}"
delegate_to: lb1max_fail_percentage beskytter dig
Indstil max_fail_percentage, så udrulningen stopper, hvis for mange værter fejler, og forhindrer dermed en dårlig udgivelse i at sprede sig yderligere.
- hosts: web
serial: 1
max_fail_percentage: 20run_once til fælles trin
Nogle trin, f.eks. en engangsmigrering af databasen, skal kun køres én gang. Brug run_once, så kun én vært udfører dem.
- name: Migrate db
ansible.builtin.command: /srv/app/migrate
run_once: trueHele løkken
Pr. vært: dræn, udrul, udfør sundhedstjek, aktivér igen. serial gentager løkken i sikre bølger, indtil hele serverflåden er opdateret. ✅
Hurtigt tjek
Ét nøgleord får LB-trinnet til at fungere.
Opsummering
Du byggede en rullende udrulning: serial-batches, dræning og genaktivering via delegate_to, sundhedstjek og en fejlbegrænser. Nul nedetid. 🟢
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Rullende udrulning bag load balanceren” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Rullende udrulning bag load balanceren”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Rullende udrulning bag load balanceren”?
Udgiv sekventielt uden nedetid. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Rullende udrulning bag load balanceren”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Design projektet: Roles & inventory
- Provisionér, hærd og bootstrap værter
- Rullende udrulning bag load balanceren
- Smoke tests, rollback & notifikationer