การ Scaling Batch Processing
แนวคิดด้าน Streaming
Mike Metzger
Data Engineer
Scaling คืออะไร?
การปรับปรุง
ประสิทธิภาพ
ประมวลผล
เร็วขึ้น
ใช้เวลาน้อยลงในการประมวลผลข้อมูลปริมาณเท่าเดิม
ประมวลผล
ข้อมูลได้มากขึ้น
ประมวลผลข้อมูลได้มากขึ้นในเวลาเท่าเดิม
Vertical Scaling
ฮาร์ดแวร์ที่ดีขึ้น
CPU เร็วขึ้น
IO เร็วขึ้น
หน่วยความจำมากขึ้น
โดยทั่วไปเป็น Scaling ที่
ง่ายที่สุด
ความซับซ้อนน้อยที่สุด
แทบไม่ต้องเปลี่ยนโปรแกรมหรืออัลกอริทึมที่ใช้งานอยู่
1
Images courtesy https://unsplash.com/@jeremy0
ข้อเสียของ Vertical Scaling
มี
ข้อจำกัด
โดยธรรมชาติ
อาจ
มีค่าใช้จ่ายสูง
/ ROI ต่ำ
การพัฒนาของอุตสาหกรรม
ไม่มีการรับประกัน
Horizontal Scaling
แบ่ง
งานออกเป็นหลายส่วน
ใช้คอมพิวเตอร์หลายเครื่อง
หรืออาจใช้หลาย CPU
เหมาะที่สุดกับงานที่
"embarrassingly parallel"
งานที่แบ่งให้ผู้ประมวลผลหลายรายได้ง่าย
คุ้มค่า
ด้านต้นทุนสูง
อาจมี
การปรับปรุงประสิทธิภาพแบบเกือบเชิงเส้น
สำหรับบางประเภทของกระบวนการ
ข้อเสียของ Horizontal Scaling
ความซับซ้อน
ต้องใช้เฟรมเวิร์กสำหรับประมวลผล (เช่น Apache Spark หรือ Dask)
ต้องการระบบเครือข่ายที่ครอบคลุมมากขึ้น
การจัดการอย่างต่อเนื่อง
ค่าใช้จ่ายสูง
ขึ้นอยู่กับความต้องการ
งาน
"Non-parallel"
มาฝึกกันเถอะ!
แนวคิดด้าน Streaming
Preparing Video For Download...