การตั้งค่าคุกกี้และการสมัครรับจดหมายข่าว
- เว็บไซต์นี้ใช้คุกกี้, พิกเซลแท็ก และ local storage เพื่อวัตถุประสงค์ด้านประสิทธิภาพ การปรับแต่งเฉพาะบุคคล และการตลาด
- คุกกี้ที่จำเป็นเท่านั้นที่เปิดใช้งานเป็นค่าเริ่มต้น
- สามารถสมัครรับจดหมายข่าวได้
การย้ายของ Figma ไปสู่ Kubernetes
- ผู้เขียน: Ian VonSeggern, Engineering Manager ฝ่ายซอฟต์แวร์ของ Figma
- หัวข้อ: กระบวนการและเหตุผลที่ Figma ย้ายไปใช้ Kubernetes ภายใน 12 เดือน
แพลตฟอร์มคอมพิวติ้งของ Figma
- ต้นปี 2023 ได้ทำงานย้ายให้ทุกบริการรันอยู่ในคอนเทนเนอร์เสร็จสิ้น
- ใช้ AWS Elastic Container Service (ECS) เพื่อเริ่มต้นงานแบบคอนเทนเนอร์ได้อย่างรวดเร็ว
- ในมุมมองระยะยาว จึงเริ่มพิจารณาแพลตฟอร์มคอมพิวติ้งเวอร์ชันถัดไป
ข้อจำกัดด้านความสามารถของ Kubernetes ที่ขาดหายไป
- ข้อจำกัดบางประการของ ECS ทำให้ต้องใช้เวลาเชิงวิศวกรรมจำนวนมาก
- ECS ไม่มีความสามารถ StatefulSets ของ Kubernetes จึงทำให้รันคลัสเตอร์ etcd ได้ยาก
- ขาดการรองรับการกำหนดบริการผ่าน Helm chart
- เมื่อต้องรัน EC2 บน ECS การยุติเครื่อง EC2 เพียงเครื่องเดียวทำได้ยาก
การเข้าถึงระบบนิเวศของ Cloud Native Computing Foundation
- เมื่อใช้ ECS จะไม่สามารถใช้เทคโนโลยีโอเพนซอร์สในระบบนิเวศ CNCF ได้
- ระบบนิเวศของ Kubernetes มีความสามารถด้าน autoscaling ที่ยอดเยี่ยม
- มีการพิจารณาความเป็นไปได้ในการนำ service mesh มาใช้
ข้อดีของแพลตฟอร์มยอดนิยม
- Kubernetes ถูกใช้งานโดยองค์กรขนาดใหญ่จำนวนมาก จึงผ่านการพิสูจน์ด้านเสถียรภาพแล้ว
- สามารถหลีกเลี่ยง vendor lock-in ได้
- จ้างวิศวกรที่มีประสบการณ์กับ Kubernetes ได้ง่ายกว่า
การกำหนดขอบเขตของการย้ายระบบ
- เพื่อลดความเสี่ยงของการย้ายระบบ ได้ลดการเปลี่ยนแปลงระบบแกนกลางให้น้อยที่สุด
- ตั้งเป้าย้ายไปยัง EKS
- ได้นำการปรับปรุงบางส่วนรวมไว้ในขอบเขตการย้ายระบบด้วย
การปรับปรุงที่รวมอยู่ในการย้ายระบบ
- ประสบการณ์นักพัฒนา: ทำให้การกำหนดบริการและกระบวนการดีพลอยง่ายขึ้น
- ความน่าเชื่อถือที่ดีขึ้น: ใช้ EKS สามคลัสเตอร์เพื่อเพิ่มความน่าเชื่อถือของบริการ
- ความคุ้มค่าด้านต้นทุน: รองรับการขยายโหนดอัตโนมัติเพื่อลดค่าใช้จ่าย
งานที่ไม่รวมอยู่ในขอบเขต
- ไม่รวมงานแก้ปัญหาความซับซ้อนของล็อกไปป์ไลน์
- ไม่รวมงาน autoscaling ระดับพ็อด
การย้ายระบบอย่างปลอดภัย
- การทดสอบโหลด: ทำ load test เพื่อทำความเข้าใจประสิทธิภาพของคลัสเตอร์
- กลไก rollout แบบค่อยเป็นค่อยไป: ใช้รายการ DNS แบบถ่วงน้ำหนักเพื่อย้ายทราฟฟิกทีละน้อย
- การรันบริการจริง: รันบริการจริงในสภาพแวดล้อม staging เพื่อค้นหาปัญหาได้ตั้งแต่เนิ่น ๆ
- ลดการใช้ YAML แบบกำหนดเองให้น้อยที่สุด: ลดการนิยาม YAML ที่อาจทำให้ผู้ใช้สับสน
- ทำงานใกล้ชิดกับเจ้าของบริการ: ร่วมมือกับเจ้าของบริการเพื่ออัปเดตการมอนิเตอร์และการแจ้งเตือน
- การจัดสรรบุคลากรที่เหมาะสม: จัดทีมที่สามารถแก้ปัญหาที่ไม่คาดคิดได้
ผลลัพธ์ของการย้ายระบบ
- ภายในเดือนมกราคม 2024 ได้ย้ายบริการหลักไปยังคลัสเตอร์ EKS
- ได้ประโยชน์ทั้งด้านการลดต้นทุน ความน่าเชื่อถือที่ดีขึ้น และประสบการณ์นักพัฒนาที่ดีขึ้น
ช่วงหลังเปิดใช้งาน
- ปรับปรุงเครื่องมือการเข้าถึงของผู้ใช้ผ่านการอนุมานคลัสเตอร์และบทบาทโดยอัตโนมัติ
- มีแผนทำงานต่อในด้านการทำให้ล็อกไปป์ไลน์ง่ายขึ้น การรองรับ horizontal pod autoscaling และการย้ายไปใช้โปรเซสเซอร์ Graviton
สรุปโดย GN⁺
- Figma บรรลุการลดต้นทุน เพิ่มความน่าเชื่อถือ และปรับปรุงประสบการณ์นักพัฒนา จากการย้ายจาก ECS ไปยัง Kubernetes
- ใช้เทคโนโลยีโอเพนซอร์สในระบบนิเวศ CNCF เพื่อเพิ่มความเป็นไปได้ในการทำ autoscaling และนำ service mesh มาใช้
- ระหว่างกระบวนการย้ายระบบ ได้ใช้วิธีที่ปลอดภัย เช่น load test, rollout แบบค่อยเป็นค่อยไป และการรันบริการจริง
- หลังเปิดใช้งาน ได้ปรับปรุงเครื่องมือการเข้าถึงของผู้ใช้ และวางแผนงานเพิ่มเพื่อการเพิ่มประสิทธิภาพต่อไป
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีผู้ใช้ที่ชอบ k8s
การย้ายระบบเพื่อปรับปรุงอินฟราสตรักเจอร์เป็นเรื่องที่ดี
รู้สึกแปลกใจที่ใน HN มีความเห็นต่อต้าน k8s เยอะมาก
การจัดการการดีพลอยด้วย Terraform และ ECS ซับซ้อนเกินไป
ตั้งคำถามกับความเห็นที่บอกว่าการย้ายไป Kubernetes ใช้เวลาหลายปี
รู้สึกว่าการตัดสินใจขององค์กรขนาดใหญ่ไม่ได้ตั้งอยู่บนความต้องการของผู้ใช้หรือบริษัท
สงสัยว่ามีระบบหรือบริการสมัยใหม่อะไรบ้างที่น่าภูมิใจเรื่องการย้ายระบบให้เสร็จภายใน 1 ปี
ชอบอ่านรายงานจากภาคสนาม
บทความนี้อธิบายข้อดีของ Kubernetes ได้อย่างชัดเจน
สงสัยว่าจะใช้เวลานานแค่ไหนกว่าจะเลิกใช้การย้ายระบบ