Serverless สิ่งที่นักพัฒนาระบบเว็บยุคใหม่ต้องรู้

Kaseres
Under Ledger
Published in
3 min readApr 26, 2022
Ref : nasscom.in

ในช่วงก่อนหน้านี้ หากเราต้องการพัฒนาเว็บไซต์ซักเว็บนึง สิ่งที่จำเป็นคือต้องมี Web Server (Hosting) ไว้เก็บข้อมูล ซึ่งค่าใช้จ่ายจะเริ่มตั้งแต่เราตั้ง Web Server แล้ว และการ Config ต่างๆ ค่อนข้างยุ่ง ไหนจะเรื่อง Security อีก หากคำนวณพื้นที่ไม่ดี หรือ Config ไม่ดี เว็บไซต์อาจโดน Hack หรือมีค่าใช้จ่ายที่ Over Rate ก็ได้

Serverless คืออะไร

ในปัจจุบันเราจะได้ยินคำว่า Serverless กันค่อนข้างเยอะแล้ว Serverless หมายความตรงตัวว่า “ไม่มี Server” แต่ก็ไม่ใช่ว่าไม่มี Server เลย แต่หมายถึง เมื่อมีการเรียกใช้งานอะไรซักอย่าง จะมีการสร้าง “Server ชั่วคราว” ขึ้นมาเพื่อทำการประมวลผล แล้วส่งผลลัพธ์ให้เรา เมื่อมีการเรียกใช้เสร็จสิ้นแล้ว Server ก็จะหยุดทำงานไป

โดย Concept ของ Serverless นั้น เราจะผลักภาระที่ยุ่งยาก อย่างเช่น การหาเครื่อง การดูแลระบบ การติดตั้งโปรแกรม การรักษาความปลอดภัยของระบบ ไปให้กับผู้ให้บริการของเรา โดยเรามีหน้าที่เขียนโปรแกรมเพื่อไป Run เว็บไซต์ของระบบที่เป็น Serverless ก็พอ

ส่วนประกอบหลักของ Serverless นั้นแบ่งเป็น 2 ส่วนได้แก่

  1. Function-as-a-Services (FaaS) ส่วนนี้ทำหน้าที่รันโค้ดที่เราเขียนและอัพโหลดขึ้น ทาง Provider ก็จะจัดการดูแลเรื่อง Provision, Availability, Scaling ให้หมด
  2. Backend-as-a-Services (Baas) ส่วนนี้คือ Managed Services ต่างๆที่เราใช้จาก Provider เช่น Database, User Management System, API system, Storage, Synchronization services ที่ผมเล่าให้ฟังก่อนหน้านี้
Ref : https://blog.back4app.com/serverless-hosting-providers/

ในปัจจุบัน มีผู้ให้บริการด้าน Serverless หลายเจ้าด้วยกัน โดยมีทั้งแบบฟรีไม่เสียเงิน ไปยังแบบเสียเงินเพื่อให้มีฟีเจอร์ให้ใช้งานมากมาย ให้เราลองใช้ โดยจะมีเจ้าดังๆ อย่างเช่น

Ref : https://blog.back4app.com/serverless-hosting-providers/

1.AWS Lambda

Ref: https://aws.amazon.com/lambda/?nc1=h_ls

AWS Lambda โดยผู้ให้บริการคือ Amazon เป็น FaaS (Function as a Service) จะมี Feature หลายอย่างให้ใช้ และยังสามารถเข้าถึง Resource ของ AWS ได้เช่น S3 buckets, Amazon DynamoDB และยังสามารถใช้ CloudWatch ได้

2.Cloudflare

Ref : https://www.cloudflare.com/

Cloudflare ถือเป็น Serverless ที่สามารถใช้ฟรีและตั้งค่าง่าย อีกทั้งยังเป็นผู้ให้บริการด้าน Network เครือข่ายข้อมูลที่ใหญ่อันดับต้นๆของโลก โดย CDN เปิดเว็บทุกที่ทั่วโลกได้เร็วขึ้น อีกทั้งยังมี DNS Server ให้เราสามารถกำหนด DNS Records ให้กับ Domain เราได้ครบทุกชนิด อีกทั้ง Cloudflare จะซ่อน IP ของ Server จริงและช่วยเรารับมือการโจมตี DDos Attack ได้ด้วย

โดยวิธีการ Deploy Project ขึ้น Cloudflare นั้น ผมได้มีการเขียน Blog ไว้แล้ว สามารถดูได้ที่ วิธีการ Deploy Project ขึ้น Cloudflare

3.Google Cloud Functions

Ref : https://cloud.google.com/functions

Google Cloud Functions โดย Google เป็นผู้ให้บริการ เป็น FaaS (Function as a Service) เหมือน AWS Lambda โดยข้อดีของ Google Cloud Functions คือสามารถรองรับ PHP เวอร์ชัน 7.4 ขึ้นไปได้ ถ้าหากเทียบกับ AWS Lambda, Azure Functions, Cloudflare ที่ไม่ได้รองรับ PHP โดยสามารถเข้าไปทดลองใช้ฟรีได้

4.Azure Functions

Ref : https://azure.microsoft.com/en-us/services/functions/

Azure Functions โดย Microsoft เป็นผู้ให้บริการ สามารถทดลองใช้งานได้ฟรี 12 เดือน และมี Credit ให้ฟรี $200 โดยจุดเด่นของ Azure Functions สามารถทำงานกับ Blob Storage, Event Hub, Service Bus, Storage Tables, OneDrive และ DropBox ได้

สรุป

Serverless มีข้อดีคือ ช่วยลดค่าใช้จ่ายที่ไม่จำเป็นบางอย่างทิ้ง อีกทั้งเราไม่จำเป็นต้องมาดูแลเครื่อง Server ให้ยุ่งยาก ทำให้เรามีหน้าที่ในการเขียนโปรแกรมเพื่อไป Run บนเว็บไซต์อย่างเดีย โดยในปัจจุบันนั้น Serverless มีผู้ให้บริหลายเจ้า แต่ละเจ้าจะมีข้อดีที่แตกต่างกันไป

--

--