มีใครที่รันระบบขนาดใหญ่โดยไม่ใช้เทคโนโลยีคอนเทนเนอร์อยู่บ้างไหม?
(news.ycombinator.com)คำถามและคำตอบจาก HN
- ใช้ Nix ในการรันหลายร้อยประเภทของ data pipeline พร้อม CPU หลายพันคอร์ เพื่อประมวลผลข้อมูลระดับเพตะไบต์ทุกเดือน
- WhatsApp ก่อนถูก Facebook เข้าซื้อกิจการ รันบนเซิร์ฟเวอร์ bare metal ด้วย FreeBSD โดยจัดการ BEAM และโค้ดแอปพลิเคชันด้วย
rsync - Grooveshark รองรับผู้ใช้ต่อเดือน 45M MAU ได้ด้วยฟิสิคัลเซิร์ฟเวอร์เพียงไม่กี่เครื่อง ใช้ nginx + PHP + MySQL + memcache + เซิร์ฟเวอร์ส่งข้อความแบบเรียลไทม์ที่เขียนด้วย Go
- ในปี 2010 ระบบวิเคราะห์ของ MySpace ทำงานบน EC2 instance 14 เครื่อง และบริการสตรีมมิงของ ESPN ก็รองรับการเชื่อมต่อพร้อมกันหลายล้านครั้งได้ด้วย VM เท่านั้น รวมถึงเว็บไซต์ที่มีผู้เข้าชม 45M ต่อเดือนก็รันบน EC2 instance เดียว
→ K8s + Docker หนักกว่าที่คนทั่วไปรับรู้มาก - Fly.io ให้คอนเทนเนอร์กับลูกค้า แต่ในอินฟราของตัวเองกลับไม่ได้ใช้คอนเทนเนอร์มากนัก (ยกเว้น API server สำหรับลูกค้า เป็นต้น)
- Guardian ใช้ EC2 image ที่สร้างจาก official image ติดตั้งลงบน EC2 instance หลายร้อยเครื่อง (วางระบบไว้ก่อนที่ Docker จะกลายเป็น de facto) เคยพิจารณาจะย้ายไป Docker แต่เพราะสแตกเป็น JVM-based จึงไม่ได้ประโยชน์มากนักจากการใช้ Docker
- กำลังดูแลเซิร์ฟเวอร์ราว 200 เครื่องบน bare metal ด้วย Ansible จัดการอิมเมจผ่าน PXE boot ใช้ custom Arch Linux image กับสคริปต์ไม่กี่ตัว และใช้งานรูปแบบนี้ได้ดีมา 20 ปีแล้ว
- Stack Overflow ไม่ได้ใช้คอนเทนเนอร์จนถึงปี 2016
- ใช้ FreeBSD Jails และเครื่องมือ orchestration น้ำหนักเบาที่เขียนด้วย Rust กำลังรันเครื่อง Ryzen 64 คอร์หลายร้อยเครื่อง โดยมีต้นทุนถูกกว่าการรันบน Amazon ราว 1/6 และประสิทธิภาพก็ดีกว่ามาก
3 ความคิดเห็น
ผมใช้ Docker เพื่อความสะดวกในการจัดการ แต่ Kubernetes ในกรณีส่วนใหญ่มักเกินความจำเป็นไปครับ ต่อให้ต้องดูแลหลายโหนด ผมก็มองว่าส่วนใหญ่ Docker Swarm ระดับนั้นก็ครอบคลุมได้ทั้งหมดแล้ว
นี่เป็นโพสต์ที่เพิ่งเห็นบน HN ครับ
ในทางกลับกัน เป็นเคล็ดลับในการรัน Kubernetes ให้มีประสิทธิภาพสูงครับ
https://medium.com/pinterest-engineering/…
แม้คำว่าใหญ่จะนิยามต่างกันไปตามเกณฑ์ แต่สำหรับ HPC ก็มักจะรันกันบนเบร์เมทัลอยู่แล้วครับ..
ที่ทำงานเก่าของผมก็เคยประกอบและดูแลระบบ HPC ขนาดประมาณ 50 แร็ก ไซซ์ 42U เลยครับ
มันเป็นเรื่องของการปฏิบัติการครับ พอมีปัญหาเกิดขึ้น เดิมทีก็ต้องไล่หาจากแค่ HW, OS, Grid Engine, User Script
จะมีเหตุผลอะไรให้ต้องขยายขอบเขตไปถึงคอนเทนเนอร์อีก...