อย่าหลงเชื่อ Serverless
(world.hey.com)- บทความจาก DHH ผู้สร้าง RoR
- แฟนคลาวด์บอกว่าทุกอย่างอย่างต้นทุน ประสิทธิภาพ ความซับซ้อน ฯลฯ จะเหมือนถูกแก้ได้อย่างน่าอัศจรรย์ถ้าย้ายไปเป็น "serverless"
- คลาวด์/VPS ทำงานตามหลักการซื้อจำนวนมากแล้วขายแยกเป็นรายย่อย
- ซื้อเซิร์ฟเวอร์ขนาดใหญ่ในราคา $1000 แล้วปล่อยเช่าให้ 7 คน คนละ $200 ทำกำไรต่อเดือน $400
- ถ้าทั้ง 7 คนไม่ได้สร้างภาระหนักให้เซิร์ฟเวอร์ หรือใช้งานกันคนละช่วงเวลา ก็ทำงานได้ดี
- ถ้าคุณต้องการความจุทั้งหมดของเซิร์ฟเวอร์ ก็เท่ากับใช้คอมพิวเตอร์ราคา $1000 ด้วยค่าใช้จ่าย $1400
- ถ้าทำสัญญาใช้ 1 ปี ก็อาจลดเหลือเดือนละ $1250 ได้ (โดยพื้นฐานคือสัญญาสินเชื่อที่คิดดอกเบี้ยรายปี 25%)
- Serverless ก็คล้ายกัน แต่สามารถซอยเซิร์ฟเวอร์ให้เล็กลงได้มากกว่าเดิม
- แทนที่จะให้ลูกค้า 7 คนเช่าเซิร์ฟเวอร์ใหญ่เครื่องเดียวเดือนละ $200 ก็เปลี่ยนเป็นให้ลูกค้า 100 คนที่รันแต่ละฟังก์ชันจ่ายเดือนละ $20
- แบบนี้ไม่ใช่กำไรเดือนละ $400 แต่เป็นกำไร $1000
- จึงไม่ใช่เรื่องน่าแปลกใจที่ผู้ให้บริการคลาวด์ชอบ serverless
- ถ้าคุณต้องการเพียงไม่กี่ฟังก์ชันที่ทำงานเป็นครั้งคราว มันก็เหมาะสม (อย่างน้อยก็ในระยะสั้น)
- แต่ถ้าคุณอยู่ในระดับที่ต้องใช้ความสามารถทั้งเครื่องคอมพิวเตอร์ มันแย่มาก
- เพราะคุณจ่ายแพงขึ้นต่อ clock เท่าเดิม แถมยังถูกล็อกอินอย่างหนักด้วย
- ยิ่งใช้บริการ "cloud native" บน serverless มากเท่าไร ก็ยิ่งย้ายออกได้ยากขึ้นเท่านั้น
-
"อย่าหลงเชื่อ serverless ไม่มีเวทมนตร์อะไรที่จะเปลี่ยนความจริงที่ว่า ถ้าคุณต้องการใช้รอบการประมวลผลทั้งหมดของคอมพิวเตอร์ คุณก็ต้องซื้อคอมพิวเตอร์เครื่องนั้น ถ้าคุณเริ่มต้นด้วยโครงสร้าง serverless แบบปิด คุณจะพบว่าตัวเองหนี lock-in ไม่ออก"
-
"คลาวด์เหมาะสำหรับบริษัทที่มีความต้องการใช้งานขึ้นลงอย่างมาก เช่น Amazon ที่มีดีมานด์มหาศาลในช่วง Black Friday/Christmas และมีความจุส่วนเกินที่ไม่จำเป็นในช่วงเวลาอื่น ๆ
หรือสำหรับธุรกิจที่ยังไม่ใหญ่พอจะครอบครองคอมพิวเตอร์ทั้งเครื่องเอง หรือสตาร์ทอัพระยะเริ่มต้นที่ค่าใช้จ่ายคลาวด์ยังน้อยมากจนไม่ใช่ปัญหา ซึ่ง serverless ไม่ได้เปลี่ยนเรื่องนั้น"
8 ความคิดเห็น
ก็มีความต่างด้วยว่าเป็นบริการที่มีช่วงเวลาใช้งานพุ่งสูงหรือไม่ด้วย กรณีแอปเดลิเวอรีจะมีช่วงเวลาที่คนใช้งานหนาแน่นอย่างชัดเจน ดังนั้นคลาวด์ที่สเกลเอาต์ได้เฉพาะตอนนั้นจึงน่าสนใจ แต่ฝั่ง IoT ที่ทราฟฟิก 99% คงที่ การรันบนเซิร์ฟเวอร์จริงอาจดีกว่าก็ได้
นอกเหนือจากประโยชน์ใช้สอยที่แท้จริงของ serverless แล้ว ดูเหมือนว่าจะมีด้านที่ถูกปั่นกระแสมากเกินไปอยู่เหมือนกัน เลยคิดว่านี่น่าจะเป็นมุมมองที่ชวนให้ลองคิดดูสักครั้ง
ถ้าคิดและตัดสินใจเกี่ยวกับ 2 ประเด็นนี้ก่อน ก็น่าจะไม่พลาดครั้งใหญ่ได้ง่าย ๆ นะครับ
โดยส่วนตัวผมสงสัยว่า serverless เป็น abstraction ที่ถูกต้องหรือไม่ แต่คิดว่าเวลาเท่านั้นที่จะพิสูจน์ได้ ส่วนปัญหาเรื่อง lock-in ของ serverless ก็คงจะยังชวนปวดหัวต่อไป และผมคิดว่านี่เป็นปัญหาที่แก้ได้ไม่ง่ายนัก ซึ่งทั้งอุตสาหกรรมต้องช่วยกันหาทางคลี่คลายครับ
แม้จะไม่มีเงิน แต่สำหรับสตาร์ทอัปที่ยิ่งขาดทั้งคนและเวลา Serverless ก็เป็นตัวเลือกที่น่าดึงดูดมากจริง ๆ
ท้ายที่สุดแล้ว นี่คือพื้นที่ที่สามารถตัดสินใจอย่างมีเหตุผลตามอุปสงค์และอุปทานได้ ผมจึงไม่คิดว่าเป็นเรื่องของการถูกหลอกหรือหลอกใคร
ในตลาดย่อมมีทั้งบริษัทและผู้คนที่ต้องการ cloud, on-premise และ serverless อย่างเหมาะสม ตามขนาดองค์กร ลักษณะธุรกิจ และประเภทของบริการอยู่แล้ว
สุดท้ายแล้ว จะเลือกใช้เซิร์ฟเวอร์เครื่องละ 200 ดอลลาร์ หรือจะใช้ function ในราคา 20 ดอลลาร์ ก็เป็นเรื่องที่ CEO/CTO ของแต่ละบริษัทต้องไตร่ตรองและตัดสินใจอย่างสมเหตุสมผลเอง ผมคิดว่าถ้าติดเรื่องต้นทุนและเวลาในตอนนี้ 20 ดอลลาร์อาจดีกว่า แต่ถ้ามี余裕มากขึ้น การเลือกแบบ 200 ดอลลาร์หรือ 1,000 ดอลลาร์ก็อาจเป็นการตัดสินใจที่สมเหตุสมผลได้เช่นกัน จากมุมมองของผู้ใช้ กลับกลายเป็นว่าการมีตัวเลือกที่หลากหลายสำหรับสถานการณ์ต่าง ๆ น่าจะเป็นเรื่องที่ดีกว่าด้วยซ้ำ อีกทั้งนี่ก็ไม่ใช่เทคโนโลยีผูกขาด แต่เป็นตลาดที่บริษัทยักษ์ใหญ่แข่งขันกันอย่างดุเดือด ดังนั้นราคาจึงมีแต่จะลดลงเรื่อย ๆ
ถ้าไม่มีวิศวกรโครงสร้างพื้นฐานประจำทีม (
deops,sre,platform engineerหรืออื่น ๆ) ดูเหมือนว่าขีดจำกัดจะอยู่แค่ประมาณaws fargateหรือgcp cloud runเท่านั้นcontainer as a serviceแน่นอนว่าสิ่งเหล่านั้นเองก็มีทั้งข้อดีข้อเสียหลายอย่างเหมือนกัน...
ที่เกี่ยวกัน ยังมีบทความที่วิจารณ์ว่าแม้ AWS จะเก็บเงินจาก Lambda ไปมากขนาดนั้น แต่กลับไม่ปรับปรุง runtime อย่างจริงจัง
https://www.lastweekinaws.com/blog/aws-is-asleep-at-the-lambda-wheel/
เห็นด้วยครับ
พอมองวงจรการอัปเกรดแพลตฟอร์มของ Lambda หรือบริการอื่น ๆ ของ AWS แล้ว ก็ไม่ได้รู้สึกว่าคล่องตัวเป็นพิเศษ กลับให้ความรู้สึกว่าค่อนข้างอนุรักษ์นิยม หรือไม่ก็ไม่ได้ทุ่มทรัพยากรมากนัก น่าจะเป็นเพราะการเพิ่มเวอร์ชันของแพลตฟอร์มต้องใช้การทดสอบจำนวนมาก และการเพิ่มเข้ามาแต่ละครั้งก็ทำให้ต้นทุนการซัพพอร์ตสูงขึ้นมาก จึงน่าจะให้ความสำคัญกับเสถียรภาพ และควบคุมจำนวนเวอร์ชันของแพลตฟอร์มให้อยู่ในขอบเขตที่กำหนดไว้... นี่เป็นแค่การคาดเดาของผมครับ
ก็เหมือนทุกครั้ง DHH เป็นคนที่พูดแรงไปสักหน่อย โปรดอ่านโดยคำนึงถึงจุดนี้ด้วย 555