Intensiv DevOps-uddannelse · Lektion

Rullende udrulning bag load balanceren

Udgiv sekventielt uden nedetid.

Lektion 3 af 413 trin

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: webapp

Procenter 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: lb1

Hvorfor 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 app

Sundhedstjek 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: 3

Aktivé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: lb1

max_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: 20

run_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: true

Hele 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. 🟢

Gratis at komme i gang

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

  1. Design projektet: Roles & inventory
  2. Provisionér, hærd og bootstrap værter
  3. Rullende udrulning bag load balanceren
  4. Smoke tests, rollback & notifikationer
← Tilbage til Intensiv DevOps-uddannelse