Serverless Computing Guide Cloud

Serverless Computing Guide

📅 2026-02-09 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

Serverless Computing Guide คืออะไร / ทำไมถึงสำคัญ

น้องๆ เคยสงสัยมั้ยว่า Serverless Computing มันคืออะไรกันแน่? สมัยผมทำร้านเน็ต SiamCafe เมื่อ 20 กว่าปีก่อนเนี่ย การมี Server เป็นเรื่องใหญ่มาก ต้องมีห้องแอร์ ต้องมี UPS ไฟดับทีวุ่นวายไปหมด แต่ Serverless เนี่ย มันพลิกโฉมวงการไปเลย

พูดง่ายๆ Serverless คือการที่เราไม่ต้องไปยุ่งกับ Server เองเลย! ไม่ต้องดูแล ไม่ต้องอัพเกรด ไม่ต้องกลัวไฟดับ ผู้ให้บริการ Cloud (เช่น AWS, Google Cloud, Azure) จัดการให้หมด เราแค่เขียน Code แล้ว Deploy ไป พวกเขาจัดการเรื่อง Scaling, Security, Maintenance ให้เองทั้งหมด

ทำไมมันถึงสำคัญน่ะเหรอ? ลองคิดดูสิ สมัยผมต้องจ้างคนมาดูแล Server ตลอด 24 ชั่วโมง เสียทั้งเงิน เสียทั้งเวลา Serverless ช่วยให้เราโฟกัสไปที่การพัฒนา Application ได้เต็มที่ ลดค่าใช้จ่าย และเพิ่มความเร็วในการพัฒนาไปอีก

พื้นฐานที่ต้องรู้

Function as a Service (FaaS)

FaaS คือหัวใจหลักของ Serverless Computing เลยครับ มันคือการที่เราเอา Code ของเราไปรันเป็น Function เล็กๆ แต่ละ Function ทำงานเฉพาะอย่าง แล้วระบบจะเรียก Function เหล่านี้เมื่อมี Event เกิดขึ้นเท่านั้น

ยกตัวอย่างเช่น เรามี Function ที่ใช้ Resize รูปภาพ เมื่อมีคน Upload รูปภาพใหม่เข้าระบบ ระบบก็จะเรียก Function Resize นี้ให้ทำงานเองอัตโนมัติ เราไม่ต้องไปนั่งเขียน Code คอยเช็คว่ามีรูปใหม่เข้ามาหรือยัง


# Python example using AWS Lambda
import boto3
from PIL import Image
import io

def lambda_handler(event, context):
    s3 = boto3.client('s3')
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']

    image = s3.get_object(Bucket=bucket, Key=key)['Body'].read()
    img = Image.open(io.BytesIO(image))
    img.thumbnail((128, 128)) # Resize the image

    buffer = io.BytesIO()
    img.save(buffer, 'JPEG')
    buffer.seek(0)

    s3.put_object(Bucket=bucket, Key='thumbnail/' + key, Body=buffer)

    return {
        'statusCode': 200,
        'body': 'Thumbnail created!'
    }

Event-Driven Architecture

Serverless มักจะทำงานร่วมกับ Event-Driven Architecture ซึ่งหมายความว่า Application ของเราจะตอบสนองต่อ Event ต่างๆ ที่เกิดขึ้น เช่น การ Upload ไฟล์, การ Login, การกด Like เป็นต้น

เมื่อมี Event เกิดขึ้น ระบบก็จะ Trigger Function ที่เกี่ยวข้องให้ทำงาน ทำให้ Application ของเราทำงานแบบ Asynchronous และ Scalable มากขึ้น

Stateless Functions

Function ที่เราเขียนใน Serverless ควรจะเป็น Stateless หมายความว่า Function แต่ละครั้งที่ถูกเรียก จะไม่มีการเก็บ State หรือข้อมูลจากครั้งก่อนหน้า ทำให้แต่ละ Function สามารถทำงานได้อย่างอิสระ และ Scalable ได้ง่าย

ถ้าเราต้องการเก็บข้อมูล เราจะต้องใช้ Database หรือ Storage ภายนอก เช่น AWS S3, DynamoDB เป็นต้น

วิธีใช้งาน / เริ่มต้นยังไง

การเริ่มต้นใช้งาน Serverless ไม่ยากอย่างที่คิดครับ เดี๋ยวผมจะเล่าจากประสบการณ์ให้ฟัง สมัยผมทำ SiamCafe Blog ก็ลองเอา Serverless มาใช้เหมือนกัน ปรากฏว่ามันช่วยลดค่าใช้จ่ายไปได้เยอะเลย

ขั้นตอนง่ายๆ คือ เลือก Cloud Provider ที่เราถนัดก่อน (AWS, Google Cloud, Azure) จากนั้นก็ศึกษา Service ที่เกี่ยวข้อง เช่น AWS Lambda, Google Cloud Functions, Azure Functions

ขั้นตอนปฏิบัติจริง

เลือก Cloud Provider และ Service

อย่างที่บอกไป เลือก Cloud Provider ที่เราถนัดก่อนครับ แต่ละ Provider ก็มีข้อดีข้อเสียต่างกัน ลองศึกษาดูว่า Service ไหนตอบโจทย์เรามากที่สุด

ถ้าเป็น AWS Lambda ก็เหมาะสำหรับคนที่คุ้นเคยกับ AWS ถ้าเป็น Google Cloud Functions ก็เหมาะสำหรับคนที่ใช้ Google Cloud อยู่แล้ว

เขียน Function และ Deploy

หลังจากเลือก Service ได้แล้ว ก็เริ่มเขียน Function ของเราได้เลยครับ ภาษาที่ใช้ก็มีหลากหลาย เช่น Python, Node.js, Java, Go

เมื่อเขียน Function เสร็จ ก็ Deploy ขึ้น Cloud Provider ได้เลย ขั้นตอนการ Deploy ก็ขึ้นอยู่กับแต่ละ Service แต่ส่วนใหญ่ก็จะมี CLI หรือ Web Console ให้เราใช้งานได้ง่ายๆ

ตั้งค่า Trigger และ Monitoring

หลังจาก Deploy Function เสร็จ เราต้องตั้งค่า Trigger เพื่อให้ Function ของเราทำงานเมื่อมี Event เกิดขึ้น เช่น เมื่อมีไฟล์ Upload เข้า S3 ให้ Trigger Lambda Function ที่ใช้ Resize รูปภาพ

นอกจากนี้ เราก็ควรตั้งค่า Monitoring เพื่อติดตามการทำงานของ Function เช่น จำนวน Request, Error Rate, Latency เพื่อให้เราสามารถแก้ไขปัญหาได้ทันท่วงที

เปรียบเทียบกับทางเลือกอื่น

Serverless ไม่ได้เหมาะกับทุก Use Case นะครับ เราต้องเปรียบเทียบกับทางเลือกอื่นก่อน เช่น Virtual Machine (VM) หรือ Container เพื่อดูว่าอะไรตอบโจทย์เรามากที่สุด

VM เหมาะสำหรับ Application ที่ต้องการ Control Server อย่างละเอียด และต้องการ Resource ที่แน่นอน ส่วน Container เหมาะสำหรับ Application ที่ต้องการความยืดหยุ่น และ Scalability ในระดับหนึ่ง

Serverless เหมาะสำหรับ Application ที่ต้องการ Scalability สูง, มี Event ที่ไม่แน่นอน และต้องการลดภาระในการดูแล Server

คุณสมบัติ Virtual Machine (VM) Container Serverless
การจัดการ Server ต้องจัดการเองทั้งหมด ต้องจัดการ Container Runtime ไม่ต้องจัดการเลย
Scaling ต้อง Scale เอง Scale ได้ง่ายกว่า VM Scale อัตโนมัติ
ค่าใช้จ่าย จ่ายตาม Resource ที่จองไว้ จ่ายตาม Resource ที่ใช้จริง จ่ายตามการใช้งานจริง
เหมาะสำหรับ Application ที่ต้องการ Control สูง Microservices, Application ที่ต้องการความยืดหยุ่น Event-Driven Applications, API

สรุปแล้ว Serverless เป็นทางเลือกที่น่าสนใจสำหรับ Application สมัยใหม่ ที่ต้องการความ Scalable, ลดค่าใช้จ่าย และเพิ่มความเร็วในการพัฒนา ลองศึกษาและนำไปปรับใช้กันดูนะครับ และอย่าลืมแวะไปอ่านบทความอื่นๆ ที่ SiamCafe Blog ด้วยนะ

ถ้าอยากรู้เรื่อง Cloud เพิ่มเติม ลองดูที่ SiamCafe Blog ได้เลย มีบทความดีๆ อีกเยอะ

Best Practices / เคล็ดลับจากประสบการณ์

เอาล่ะ มาถึงช่วงเคล็ดลับที่กลั่นมาจากประสบการณ์โชกโชนของอ.บอมกันบ้าง สมัยผมทำร้านเน็ตฯ SiamCafe บอกเลยว่าเจอมาหมดทุกรูปแบบ ทั้งเรื่อง network, server, client… serverless นี่ถ้ามีตั้งแต่สมัยนั้นนะ ชีวิตคงง่ายขึ้นเยอะ!

Serverless ไม่ใช่ยาวิเศษที่จะแก้ได้ทุกปัญหา เลือกใช้ให้ถูกงาน สำคัญสุดคือ “เข้าใจข้อจำกัด” ของมันก่อน อย่าคิดว่าโยนทุกอย่างขึ้น cloud แล้วจะจบเห่ ต้องวางแผนดีๆ ไม่งั้นบานปลายนะน้อง

เทคนิคที่ 1: Monitoring is King

Serverless เนี่ยมัน Abstracted ไปเยอะ เราแทบไม่เห็นเลยว่าเบื้องหลังมันเกิดอะไรขึ้นบ้าง ดังนั้น Monitoring สำคัญมาก! ต้องมีเครื่องมือคอยสอดส่อง Log, Metrics ทุกอย่าง ต้อง alert ได้ทันทีที่เริ่มมีปัญหา

สมัยก่อนร้านเน็ตฯ ผมใช้ Nagios คอยเช็คสถานะเครื่อง Server เดี๋ยวนี้มีเครื่องมือ Cloud-Native ให้เลือกใช้เยอะแยะ เลือกที่มัน integrate กับ Serverless Function ของเราได้เลย

เทคนิคที่ 2: Optimize Function Size and Execution Time

จำไว้ว่า Serverless Function คิดเงินตาม execution time และ memory ที่ใช้ ถ้า function เราใหญ่เทอะทะ กิน resource เยอะ ก็จ่ายแพงหูฉี่! ต้อง Optimize code ให้ดี ลด dependency ที่ไม่จำเป็น ใช้เทคนิค lazy loading อะไรก็ว่ากันไป

เคยเจอเคสลูกค้าเขียน script แปลงไฟล์รูปภาพในร้านเน็ตฯ ผม code ไม่ optimize กิน CPU 100% กว่าจะเสร็จแต่ละรูป ทำเอาเครื่อง hang ไปเลย Serverless ก็เหมือนกัน ถ้าเขียนไม่ดี มีหวังโดนค่าบริการฟาดหัวแบะ

เทคนิคที่ 3: Secure Your Functions

เรื่อง security ห้ามละเลย! Serverless Function ก็เหมือน code ทั่วไป ต้องป้องกัน injection, XSS, CSRF อะไรพวกนี้เหมือนเดิม ที่สำคัญคือจัดการเรื่อง permission ให้ดี อย่าให้ Function มีสิทธิ์เข้าถึง resource มากเกินความจำเป็น

สมัยทำร้านเน็ตฯ เคยโดน Hack เว็บไซต์เพราะ permission ไม่รัดกุม จำจนตาย! Serverless ก็เหมือนกัน ถ้าไม่ระวัง โดน Hack ที เสียหายหนักกว่าเดิม

เทคนิคที่ 4: Embrace Event-Driven Architecture

Serverless เหมาะมากกับงานที่ trigger ด้วย event ต่างๆ เช่น มี file upload เข้ามา, มี message ถูกส่งเข้ามาใน queue, มี record ถูกแก้ไขใน database ลองออกแบบระบบให้เป็นแบบ event-driven ดู จะเห็นข้อดีของ Serverless ชัดเจน

คิดง่ายๆ เหมือนระบบเติมเงินเกมส์ออนไลน์ สมัยก่อนต้องมี Server คอย poll database ตลอดเวลา เดี๋ยวนี้ใช้ Serverless Function รับ event จากระบบ payment gateway ได้เลย สะดวกกว่าเยอะ

FAQ คำถามที่พบบ่อย

Serverless เหมาะกับงานประเภทไหน?

งานที่ scale ได้ง่าย, งานที่ไม่ต้องการ server ตลอดเวลา, งานที่ trigger ด้วย event ต่างๆ เช่น API endpoint, image processing, data transformation

Serverless มีข้อเสียอะไรบ้าง?

เรื่อง cold start, debugging ยากกว่าเดิม, vendor lock-in, latency ที่อาจจะสูงกว่า server แบบเดิมๆ

เลือก Cloud Provider เจ้าไหนดี?

อยู่ที่ความถนัดและความต้องการของแต่ละคน AWS, Azure, Google Cloud ก็มี Serverless Function ให้เลือกใช้หมด ลองศึกษาดูว่าเจ้าไหนตอบโจทย์เรามากที่สุด

Serverless จะมาแทนที่ Server แบบเดิมๆ ไหม?

ไม่ทั้งหมด! Serverless เหมาะกับบาง workload เท่านั้น Server แบบเดิมๆ ก็ยังมีบทบาทสำคัญอยู่ ต้องเลือกใช้ให้เหมาะสมกับสถานการณ์

สรุป

Serverless เป็นเทคโนโลยีที่น่าสนใจ มีศักยภาพในการเปลี่ยนแปลงวิธีการพัฒนาและ deployment application แต่ต้องศึกษาให้เข้าใจ เลือกใช้ให้ถูกงาน และอย่าลืมเรื่อง monitoring, optimization, security ที่สำคัญที่สุดคือ อย่าเชื่อทุกอย่างที่อ่านเจอในอินเทอร์เน็ต ลองทำเอง เจอปัญหาเอง จะเข้าใจเอง

หวังว่าบทความนี้จะเป็นประโยชน์สำหรับน้องๆ ที่กำลังสนใจ Serverless นะครับ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย! แล้วอย่าลืมแวะไปเยี่ยมชม iCafeForex และ SiamCafe Blog ด้วยนะ