EP02 มีไดอะแกรม

IaaS / PaaS / SaaS และคอนเซปต์คลาวด์

Cloud Computing Fundamentals

9 นาที·9 หัวข้อ
ตอนนี้เจาะ "พื้นฐานคลาวด์" ให้ลึกพอจะตอบคำถามต่อเนื่องได้ ไม่ใช่แค่นิยาม โทนพี่ติวน้อง ความยาวเหมาะ 15–20 นาที ศัพท์เทคนิคอังกฤษ อธิบายไทย เน้นว่า DCE ต้องอธิบายให้ลูกค้าธุรกิจเข้าใจ ไม่ใช่ท่องสเปก

คำถามพื้นฐานพวก IaaS PaaS SaaS คือด่านวัดว่าเราเข้าใจ "แก่น" หรือแค่ท่องจำ ผู้สัมภาษณ์ไม่ได้อยากได้นิยามจาก textbook แต่อยากเห็นว่าเราอธิบายด้วยภาษาที่ลูกค้าเข้าใจได้ ยกตัวอย่างได้ และบอกได้ว่าเมื่อไหร่ควรเลือกอะไร เพราะหน้างานจริง ลูกค้าจะถามว่า "แล้วบริษัทผมควรใช้แบบไหน" ดังนั้นตอบให้เห็นทั้งนิยาม ตัวอย่าง และเกณฑ์การตัดสินใจ

วิธีที่ดีที่สุดในการเข้าใจสามโมเดลนี้คือมองเป็นเส้นแบ่งความรับผิดชอบ (responsibility line) ที่เลื่อนไปมา ลองนึกถึง stack จากล่างขึ้นบน: ชั้นล่างสุดคือ data center ตึก ไฟ เครือข่ายกายภาพ เหนือขึ้นมาคือ hardware เซิร์ฟเวอร์ storage แล้วก็ virtualization layer ถัดมาคือ operating system แล้ว runtime/middleware แล้ว application แล้วบนสุดคือ data และผู้ใช้

ใน on-premises ลูกค้าดูแลทั้ง stack เองตั้งแต่ตึกยันแอป

ใน IaaS ผู้ให้บริการดูแลตั้งแต่ data center ถึง virtualization ลูกค้ารับช่วงตั้งแต่ OS ขึ้นไป

ใน PaaS ผู้ให้บริการดูแลขึ้นมาถึง runtime และ OS ลูกค้าโฟกัสแค่ application และ data

ใน SaaS ผู้ให้บริการดูแลเกือบทั้งหมด ลูกค้าแค่ใช้งานและจัดการข้อมูลกับผู้ใช้ของตัวเอง

เส้นแบ่งนี้สำคัญมากเพราะมันกำหนดทั้ง "ภาระงาน" และ "ความรับผิดชอบด้านความปลอดภัย" ยิ่งขึ้นไปทาง SaaS ลูกค้ายิ่งดูแลน้อย แต่ก็ยิ่งปรับแต่งได้น้อยและพึ่งพาผู้ให้บริการมากขึ้น

Shared Responsibility
On-premises
IaaS
PaaS
SaaS
Data
คุณดูแล
คุณดูแล
คุณดูแล
คุณดูแล
Application
คุณดูแล
คุณดูแล
คุณดูแล
Google ดูแล
Runtime / Middleware
คุณดูแล
คุณดูแล
Google ดูแล
Google ดูแล
Operating System
คุณดูแล
คุณดูแล
Google ดูแล
Google ดูแล
Virtualization
คุณดูแล
Google ดูแล
Google ดูแล
Google ดูแล
Hardware
คุณดูแล
Google ดูแล
Google ดูแล
Google ดูแล
Data center
คุณดูแล
Google ดูแล
Google ดูแล
Google ดูแล
ลูกค้าดูแล (customer)ผู้ให้บริการดูแล (provider)
เส้นแบ่งความรับผิดชอบเลื่อนขึ้นเรื่อย ๆ จาก On-premises ไป SaaS ยิ่งไปทาง SaaS ผู้ให้บริการยิ่งดูแลมาก ลูกค้ายิ่งดูแลน้อย (แต่ปรับแต่งได้น้อยลง)

IaaS (Infrastructure as a Service): ให้ทรัพยากรพื้นฐานแบบ virtual เช่น VM, storage, network ลูกค้าเลือก OS เอง ลง software เอง คุมได้ละเอียดสุด เหมาะกับการ lift-and-shift ระบบเดิม หรือ workload ที่ต้องการคุม OS เต็มที่ ข้อแลกเปลี่ยนคือภาระดูแล patch security และ scaling ตกที่ลูกค้า ตัวอย่าง GCP คือ Compute Engine เทียบ AWS คือ EC2

PaaS (Platform as a Service): ให้แพลตฟอร์มพร้อม deploy โค้ด ผู้ให้บริการจัดการ OS, patch, scaling ให้ ลูกค้าโฟกัสแค่เขียนแอป เหมาะกับทีมที่อยากเร่งความเร็วในการพัฒนาและไม่อยากดูแล server ข้อแลกเปลี่ยนคือยืดหยุ่นระดับ OS น้อยลง ตัวอย่าง GCP คือ App Engine และ Cloud Run ส่วน Cloud Functions เป็น FaaS ซึ่งเป็น PaaS แบบ event-driven ที่ละเอียดถึงระดับฟังก์ชัน

SaaS (Software as a Service): ซอฟต์แวร์สำเร็จรูปใช้ผ่านเว็บ ไม่ต้องติดตั้งหรือดูแลอะไร จ่ายแบบ subscription เหมาะกับงานมาตรฐานที่ไม่ต้องสร้างเอง ตัวอย่างคือ Google Workspace, Gmail, Salesforce ข้อแลกเปลี่ยนคือปรับแต่งได้จำกัดและผูกกับผู้ให้บริการ

มีโมเดลที่ลึกขึ้นที่ควรรู้: CaaS (Containers as a Service) เช่น GKE ที่อยู่กึ่งกลางระหว่าง IaaS กับ PaaS และ serverless ที่ขยับภาระ infra ออกจากลูกค้าเกือบหมด เช่น Cloud Run และ BigQuery (serverless analytics)

Control ↔ Effort Spectrum
▲ คุมได้มาก · ภาระสูงคุมน้อย · จัดการให้ ▼
Compute EngineVM / IaaS
GKEKubernetes
App EnginePaaS
Cloud RunServerless container
Cloud FunctionsFaaS
ยิ่งซ้าย = คุมได้ละเอียดแต่ภาระดูแลสูง (Compute Engine) ยิ่งขวา = จัดการให้เกือบหมด จ่ายตามใช้ (Cloud Functions) เลือกให้เหมาะกับความพร้อมของทีม

อุปมายอดนิยมคือเรื่องพิซซ่า: ทำพิซซ่าเองที่บ้านตั้งแต่นวดแป้ง = on-premises คุมทุกอย่างแต่เหนื่อยสุด; ซื้อแป้งและซอสสำเร็จมาประกอบแล้วอบเองที่บ้าน = IaaS ได้ของพื้นฐานมาแต่ยังต้องลงมือ; สั่ง delivery มากินที่บ้าน = PaaS ได้พิซซ่าเสร็จแค่จัดโต๊ะเอง; ไปนั่งกินที่ร้าน = SaaS ไม่ต้องทำอะไรเลยแค่กิน อุปมานี้ทำให้ลูกค้าที่ไม่ใช่สายเทคนิคเข้าใจได้ใน 30 วินาที ซึ่งเป็นทักษะที่ DCE ต้องมี

ผู้สัมภาษณ์มักต่อยอดจาก IaaS/PaaS/SaaS ไปถามคอนเซปต์คลาวด์อื่น เตรียมเล่าให้ได้:

  • On-demand self-service: ขอทรัพยากรได้เองทันทีไม่ต้องรอจัดซื้อ
  • Elasticity: ขยายและหดตามโหลดอัตโนมัติ ต่างจาก scalability ที่เน้นรองรับการโตระยะยาว
  • Pay-as-you-go: จ่ายตามใช้จริง เปลี่ยน capital expenditure เป็น operating expenditure ซึ่งเป็นจุดขายเชิงการเงินที่ DCE ใช้คุย CFO ได้
  • Resource pooling และ multi-tenancy: ทรัพยากรถูกแชร์อย่างปลอดภัยระหว่างลูกค้าหลายราย
  • High availability และ fault tolerance: ออกแบบให้ทนความล้มเหลว
  • Deployment models: public cloud, private cloud, hybrid (ผสม on-prem กับ cloud), multicloud (ใช้หลายผู้ให้บริการ) โดย GCP ชูจุดแข็ง hybrid/multicloud ผ่าน GKE Enterprise และ Anthos
  • Region และ zone: region คือพื้นที่ทางภูมิศาสตร์ แต่ละ region มีหลาย zone ที่แยกความเสี่ยงกัน การกระจาย workload ข้าม zone และ region คือพื้นฐานของ availability

จุดที่แยก DCE ออกจาก engineer ทั่วไปคือการเล่าคุณค่าเชิงการเงิน on-premises ต้องลงทุนก้อนใหญ่ล่วงหน้าซื้อ hardware (CapEx) ที่เสื่อมราคาและอาจใช้ไม่เต็ม คลาวด์เปลี่ยนเป็นจ่ายตามใช้ (OpEx) ทำให้เริ่มเล็กแล้วค่อยโตได้ ลดความเสี่ยงการลงทุนเกิน และ GCP ยังมี committed use discount และ sustained use discount ที่ช่วยลดต้นทุนเมื่อใช้ต่อเนื่อง การเล่ามุมนี้ทำให้ลูกค้าฝั่งบริหารเห็นคุณค่า ไม่ใช่แค่ฝั่งเทคนิค

ถาม: "อธิบายความต่างของ IaaS PaaS SaaS" ตอบ: ใช้เส้นแบ่งความรับผิดชอบ ไล่ว่าใครดูแลอะไร พร้อมตัวอย่าง GCP และปิดด้วยเกณฑ์เลือก

ถาม: "ลูกค้ามีทีม dev เล็กอยากออกแอปเร็ว ควรใช้อะไร" ตอบ: PaaS อย่าง Cloud Run หรือ App Engine เพราะลดภาระดูแล infra ให้ทีมโฟกัสโค้ด ลด time-to-market

ถาม: "ลูกค้ามีระบบเก่าบน VM อยากขึ้นคลาวด์เร็วโดยไม่แก้โค้ด" ตอบ: IaaS อย่าง Compute Engine เพื่อ lift-and-shift ก่อน แล้วค่อย modernize ทีหลัง

ถาม: "Cloud Run กับ Compute Engine ต่างกันอย่างไร เลือกอย่างไร" ตอบ: Compute Engine คุม OS ได้เต็มเหมาะ workload ที่ต้องคุมสภาพแวดล้อม; Cloud Run เป็น serverless container จ่ายตามใช้ scale ลงถึงศูนย์ได้ เหมาะ workload ที่ traffic ไม่สม่ำเสมอและไม่อยากดูแล server

ท่องนิยามโดยไม่มีตัวอย่าง; สับสนว่า Cloud Run เป็น IaaS (จริง ๆ เป็น serverless/PaaS-like); ตอบเรื่องโมเดลแต่ลืมโยงเกณฑ์การเลือกซึ่งเป็นสิ่งที่ลูกค้าอยากรู้; ไม่แตะมุมการเงิน CapEx/OpEx ทั้งที่เป็นจุดที่ DCE สร้างคุณค่า; สับสนระหว่าง elasticity กับ scalability; ลืมว่า shared responsibility เปลี่ยนไปตามโมเดล ทำให้ตอบเรื่อง security ผิดบริบท

IaaS PaaS SaaS คือเรื่องของเส้นแบ่งความรับผิดชอบที่เลื่อนไปมา ยิ่งขึ้นไปทาง SaaS ลูกค้ายิ่งดูแลน้อยแต่ปรับแต่งน้อย อธิบายด้วยอุปมาพิซซ่าให้ลูกค้าเข้าใจเร็ว จับคู่กับ service GCP จริง (Compute Engine, Cloud Run/App Engine, Workspace) เสมอตอบด้วยเกณฑ์การเลือกและมุมการเงิน CapEx/OpEx และอย่าลืมว่า shared responsibility เปลี่ยนตามโมเดล ซึ่งจะโยงไปถึงเรื่อง security ในตอนต่อ ๆ ไป