0Pricing
Ansible Academy · บทเรียน

การนำระบบออกใช้แบบทยอยหลัง Load Balancer

เผยแพร่โดยไม่หยุดให้บริการด้วยการทำงานแบบ serial

การนำระบบออกใช้แบบทยอยหลัง Load Balancer เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

การไม่ให้เกิดช่วงหยุดให้บริการคือคำมั่นสัญญา

อัปเดตโหนดเว็บทั้งหมดโดยไม่ทำให้คำขอแม้แต่รายการเดียวหลุดหาย เคล็ดลับคือการนำไปใช้งานแบบทยอยปรับใช้ โดยเปลี่ยนแปลงโฮสต์ทีละไม่กี่เครื่อง 🔄

serial ควบคุมชุดการทำงาน

เพิ่ม serial ให้กับเพลย์ เพื่อให้ Ansible ทำงานกับโฮสต์เป็นกลุ่มเล็ก ๆ แทนที่จะทำงานกับทุกโฮสต์พร้อมกัน

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

ใช้เปอร์เซ็นต์ได้เช่นกัน

serial รับค่าเปอร์เซ็นต์หรือรายการขนาดได้ ดังนั้นคุณจึงค่อย ๆ เพิ่มขนาดได้ โดยเริ่มจากแคนารี แล้วจึงใช้ชุดที่ใหญ่ขึ้น

serial:
  - 1
  - 25%
  - 50%

ระบายการเชื่อมต่อก่อนลงมือ

ก่อนอัปเดตโหนด ให้นำโหนดนั้นออกจากการหมุนเวียน ใช้ delegate_to เพื่อบอกตัวกระจายโหลดให้หยุดส่งทราฟฟิกไปยังโหนดนั้น

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

เหตุใดจึงใช้ delegate_to กับ LB

โฮสต์เว็บไม่สามารถปิดใช้งานตัวเองในตัวกระจายโหลดได้ ตัวตัวกระจายโหลดต้องเป็นผู้ดำเนินการ delegate_to จะเรียกใช้งานนั้นบน lb1 สำหรับโฮสต์เว็บแต่ละเครื่อง

นำรุ่นใหม่ไปใช้งาน

เมื่อระบายการเชื่อมต่อโหนดแล้ว ให้นำโค้ดไปใช้งาน สร้างการกำหนดค่า และให้ตัวจัดการโหลดบริการแอปใหม่เฉพาะสำหรับโฮสต์นั้น

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

ตรวจสอบสุขภาพก่อนเปิดใช้งานอีกครั้ง

ยืนยันว่าโหนดมีสุขภาพดีด้วย uri ก่อนส่งผู้ใช้กลับไป อย่าเพิ่มโฮสต์ที่เสียหายกลับเข้าไปในกลุ่มเด็ดขาด

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

เปิดใช้งานอีกครั้งในตัวกระจายโหลด

เมื่อมีสุขภาพดีแล้ว ให้นำโหนดกลับเข้าสู่การหมุนเวียนอีกครั้งผ่าน delegate_to ไปยังตัวกระจายโหลด ทราฟฟิกจะถูกส่งไปยังรุ่นใหม่

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

max_fail_percentage ช่วยป้องกันคุณ

ตั้งค่า max_fail_percentage เพื่อให้การเปิดตัวหยุดลงหากมีโฮสต์ล้มเหลวมากเกินไป ป้องกันไม่ให้รุ่นที่มีปัญหาแพร่กระจายต่อ

- hosts: web
  serial: 1
  max_fail_percentage: 20

run_once สำหรับขั้นตอนที่ใช้ร่วมกัน

ขั้นตอนบางอย่าง เช่น การย้ายข้อมูลฐานข้อมูลเพียงครั้งเดียว ควรทำงานเพียงครั้งเดียว ใช้ run_once เพื่อให้มีเพียงโฮสต์เดียวที่ดำเนินการ

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

วงจรทั้งหมด

สำหรับแต่ละโฮสต์ ให้ระบายการเชื่อมต่อ นำไปใช้งาน ตรวจสอบสุขภาพ และเปิดใช้งานอีกครั้ง serial จะทำวงจรนี้ซ้ำเป็นชุดที่ปลอดภัยจนกว่าโฮสต์ทั้งหมดจะได้รับการอัปเดต ✅

ตรวจสอบความเข้าใจอย่างรวดเร็ว

คีย์เวิร์ดหนึ่งรายการทำให้ขั้นตอนของ LB ทำงานได้

สรุปทบทวน

คุณสร้างการนำไปใช้งานแบบทยอยปรับใช้แล้ว โดยมีชุดการทำงานจาก serial การระบายและเปิดใช้งานอีกครั้งผ่าน delegate_to การตรวจสอบสุขภาพ และตัวป้องกันความล้มเหลว ไม่เกิดช่วงหยุดให้บริการ 🟢

คำถามที่พบบ่อย

บทเรียน “การนำระบบออกใช้แบบทยอยหลัง Load Balancer” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การนำระบบออกใช้แบบทยอยหลัง Load Balancer” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การนำระบบออกใช้แบบทยอยหลัง Load Balancer”

เผยแพร่โดยไม่หยุดให้บริการด้วยการทำงานแบบ serial คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การนำระบบออกใช้แบบทยอยหลัง Load Balancer” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม

ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. วางสถาปัตยกรรมโครงการ: Roles และ Inventory
  2. จัดเตรียม เสริมความปลอดภัย และเริ่มต้นโฮสต์
  3. การนำระบบออกใช้แบบทยอยหลัง Load Balancer
  4. การทดสอบเบื้องต้น การย้อนกลับ และการแจ้งเตือน
← กลับไปที่ Ansible Academy