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