การนำระบบออกใช้แบบทยอยหลัง Load Balancer
เผยแพร่โดยไม่หยุดให้บริการด้วยการทำงานแบบ serial
การนำระบบออกใช้แบบทยอยหลัง Load Balancer เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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: lb1max_fail_percentage ช่วยป้องกันคุณ
ตั้งค่า max_fail_percentage เพื่อให้การเปิดตัวหยุดลงหากมีโฮสต์ล้มเหลวมากเกินไป ป้องกันไม่ให้รุ่นที่มีปัญหาแพร่กระจายต่อ
- hosts: web
serial: 1
max_fail_percentage: 20run_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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนำระบบออกใช้แบบทยอยหลัง Load Balancer”
เผยแพร่โดยไม่หยุดให้บริการด้วยการทำงานแบบ serial คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การนำระบบออกใช้แบบทยอยหลัง Load Balancer” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- วางสถาปัตยกรรมโครงการ: Roles และ Inventory
- จัดเตรียม เสริมความปลอดภัย และเริ่มต้นโฮสต์
- การนำระบบออกใช้แบบทยอยหลัง Load Balancer
- การทดสอบเบื้องต้น การย้อนกลับ และการแจ้งเตือน