LinkedIn แทนที่ Argo CD ด้วย GitOps Engine ส่วนตัวสำหรับ Kubernetes

LinkedIn เดิมใช้ Argo CD หนึ่งอินสแตนซ์ต่อคลัสเตอร์ ซึ่งเป็นรูปแบบที่เลือกเพราะ Argo CD จัดการ add-ons ของคลัสเตอร์ในลักษณะนั้นอยู่แล้ว

อย่างไรก็ตาม การทำงานของ Argo CD อาจทำให้เกิดสถานการณ์ที่แอปพลิเคชันที่ Sync และ Healthy นั้นถูก Resolve ไปยัง Revision ที่ไม่ตั้งใจ หากมีการใช้ cache ของ repo-server ที่เก่า

ในสภาพแวดล้อม AI workloads ของ LinkedIn ซึ่งรันหลายคอนเทนเนอร์ต่อ Pod การเปลี่ยนแปลงใน manifest อาจทำให้คอนเทนเนอร์ถูกลบไปจาก Pod ที่ใช้งานจริงได้

ระบบของ LinkedIn ตรวจจับความคลาดเคลื่อน (drift) ผ่านการเปรียบเทียบ 3-way diff ระหว่าง object ที่ใช้งานจริง, manifest ที่เคย Deploy, และ manifest ที่เรนเดอร์ใหม่ และจะถือว่าการ Deploy ล้มเหลวหากมีความคลาดเคลื่อนที่แท้จริง

การย้ายระบบนี้กินเวลาตั้งแต่เดือนกรกฎาคม 2025 ถึงเมษายน 2026 โดยเดือนพฤษภาคม 2026 คือเดือนแรกหลังการย้ายระบบอย่างสะอาด

LinkedIn ไม่ใช่ผู้ให้บริการรายใหญ่เพียงรายเดียวที่สร้างตรรกะการ Deploy รอบ Kubernetes แทนที่จะใช้ GitOps controller ทั่วไป

ในงาน QCon London 2019 นั้น Melanie Cebula ได้แนะนำ kube-gen ซึ่งมีเครื่องมือ Deploy ที่สามารถ Apply หรือแทนที่ object และรีสตาร์ท Pod เพื่อให้การเปลี่ยนแปลงมีผลทันที

ศัพท์ที่ควรรู้

  • Argo CD – เป็นเครื่องมือ GitOps ที่ LinkedIn เคยใช้ในการจัดการการ Deploy บนคลัสเตอร์ของตนเอง
  • GitOps engine – คือระบบอัตโนมัติที่ใช้ Git เป็นแหล่งความจริงเดียวในการควบคุมสถานะของระบบ
  • Kubernetes – คือแพลตฟอร์มสำหรับจัดการและรันคอนเทนเนอร์ ซึ่ง LinkedIn ใช้เป็นโครงสร้างพื้นฐาน
  • Drift – คือความแตกต่างระหว่างสถานะปัจจุบันของระบบกับสถานะที่ควรจะเป็นตามที่กำหนดไว้
  • 3-way diff – คือการเปรียบเทียบความแตกต่างระหว่างสามสถานะ คือ สถานะจริง, สถานะเก่า, และสถานะใหม่

ที่มา: infoq.com

Leave a Comment