2339 คำ
12 นาที
Database 101 EP.11 — มุม Startup: Serverless DB Stack (เปิด SaaS ทีม 3 คนได้ยังไง)
สารบัญ
ฉากเปิด: เปิดร้านอาหารโดยไม่มีครัว Backend-as-a-Service (BaaS) — ครัวกลางที่รวมทุกอย่างในตัวเดียว Supabase — Postgres + Auth + Storage + Realtime + Vector ในตัวเดียว Firebase — NoSQL + Auth + Hosting + Functions ของ Google Appwrite — open-source alternative ของ BaaS PocketBase — single binary ที่เริ่มได้ใน 5 นาที Serverless Postgres — เน้นเฉพาะ database Neon — branch database ได้เหมือน Git Supabase Postgres (ตัวเดี่ยว) Xata — Postgres + search + analytics ในตัวเดียว Serverless MySQL — มีน้อยกว่า Postgres เยอะ PlanetScale — กรณีศึกษาที่ทุกคนต้องเรียนรู้ TiDB Cloud — MySQL-compatible NewSQL Edge Database — สำหรับ global app Pricing Model ที่เปลี่ยนเกม — Pay per Request vs Pay per Server-hour Vendor Lock-in Trap — ที่ต้องเห็นตั้งแต่ day 1 เคสจริง: Typical Thai SaaS Stack 2026 Myth-busting: “BaaS = ดีสำหรับ MVP, ปัญหาตอน scale” มุมผู้บริหาร — เมื่อไหร่ควรย้ายออกจาก Serverless กลับไป self-hosted ปิดบท — Stack เล็กๆ พลังมหาศาล

Series: Database 101 — เข้าใจห้องสมุดของเมืองดิจิทัล (ภาษาคน)

Part 0 — WHY: ทำไมต้องมีห้องสมุด

  • EP.01 — ทำไมต้องมี Database: โลกก่อนมีห้องสมุด

Part 1 — ประวัติ: 4 ยุคของ Database

  • EP.02 — ยุค 1960s-70s: Hierarchical → Relational Revolution
  • EP.03 — ยุค 1980s-90s: ACID + Enterprise Backbone
  • EP.04 — ยุค 2000s-2010s: NoSQL Movement + Big Data
  • EP.05 — ยุค 2020s: Cloud-Native + Serverless Database

Part 2 — How: ภายใน Database ทำงานยังไง

  • EP.06 — Schema, Normalization, Keys
  • EP.07 — Index + Query Optimization
  • EP.08 — Transaction + Concurrency Control

Part 3 — เลือก Storage ตามขนาด

  • EP.09 — มุมเว็บส่วนตัว: Database-less Architecture
  • EP.10 — มุม Personal Data: SQLite + Local-first
  • EP.11 — มุม Startup: Serverless DB Stack ← คุณอยู่ตรงนี้
  • EP.12 — มุม Enterprise: Polyglot Persistence

Part 4 — Operations

  • EP.13 — DBA Role + Privileged Access
  • EP.14 — Database Security + Encryption

Part 5 — Future

  • EP.15 — Vector Database + AI Era
  • EP.16 — Wrap: Decision Tree + 5 Trends

EP.10 เราคุยเรื่อง database ที่อยู่ในกระเป๋าผู้ใช้ — SQLite + local-first ตอนนี้ flip มุมอีกครั้ง — มาดูฝั่งคนที่ตั้งใจจะ “ขายซอฟต์แวร์เป็น service” ตั้งแต่วันแรก ทีม 2-3 คน อยากเปิด SaaS ใหม่ ไม่มีเงินจ้าง DBA ไม่อยากตื่นมาดูแล server ตอนตี 3

ปี 2026 ทีมแบบนี้รันธุรกิจที่มี user 10,000 คนได้ด้วยค่าใช้จ่ายเดือนละไม่ถึง 2 พันบาท เมื่อ 10 ปีก่อน — เป็นเรื่องเป็นไปไม่ได้

ฉากเปิด: เปิดร้านอาหารโดยไม่มีครัว#

ลองนึกภาพร้านอาหารร้านหนึ่งที่กรุงเทพปี 2026 — เปิดมาขายดีมาก คนเข้าวันละหลายร้อยคน พอเดินเข้าไปหลังร้าน — ไม่มีครัว ไม่มีเชฟ ไม่มีเตา ไม่มีตู้เย็น ไม่มีคนล้างจาน มีแค่เคาน์เตอร์รับออเดอร์กับเด็กเสิร์ฟ 2 คน

อาหารทุกจานมาจากครัวกลางที่อยู่อีกซีก เช่าเป็นชั่วโมง คนล้างจานจ้างเป็นรายชิ้น วัตถุดิบสั่งทีต่อทีตอนลูกค้าสั่ง ค่าเช่าครัวเดือนนี้ — ขายมากจ่ายมาก ขายน้อยจ่ายน้อย เดือนไหนไม่เปิดร้านเลย จ่ายใกล้ศูนย์

ฟังดูบ้าใช่ไหม แต่นี่คือสิ่งที่ SaaS startup ปี 2026 ทำกันอยู่จริงๆ — แค่เปลี่ยน “ครัว” เป็น “database server” และเปลี่ยน “เชฟ” เป็น “DBA”

ลอง scenario สมมติ — สตาร์ทอัพไทยทีมหนึ่ง 3 คน founder ดูธุรกิจ + ขาย, dev เขียน code, designer ทำ UI เปิด SaaS ทำเครื่องมือจัดการนัดหมายให้คลินิกเล็กๆ หลังเปิด 8 เดือน — มีคลินิกใช้ 800 แห่ง user รวมในระบบราว 10,000 คน รายได้เดือนละ 2 แสนบาท

สแตกที่ทีมนี้ใช้

  • Frontend — Vercel host เว็บ Next.js
  • Backend + Database + Auth + Storage — Supabase ตัวเดียว
  • Payment — Stripe (international) + Omise (สำหรับลูกค้าไทยที่จ่ายผ่าน QR PromptPay)
  • Email — Resend ส่ง notification
  • DNS + CDN + WAF — Cloudflare

5 บริการ ไม่มี server ที่ทีมต้องดูแลเลยสักตัว ไม่มี DBA ไม่มีคนนอน on-call ตอนตี 2 ค่าใช้จ่ายรวมทั้งสแตก — เดือนละ ~$50 (ราว 1,800 บาท)

นี่ไม่ใช่ scenario สมมติเฉยๆ — pattern นี้คือ default ของ SaaS เกิดใหม่ทั่วโลกตอนนี้ EP.11 จะเจาะว่า — เครื่องมือพวกนี้คืออะไร แบ่งเป็นกี่ family เลือกตัวไหนตอนไหน และ vendor lock-in ที่ต้องเห็นตั้งแต่ day 1

(ใครยังไม่ค่อยเก็ตว่า “serverless database” คืออะไร แนะนำย้อนไป EP.05 — ยุค 2020s: Cloud-Native + Serverless ก่อนสักนิด EP.05 เล่ามุมประวัติ EP.11 จะลงรายละเอียดของแต่ละตัวว่าใช้ทำอะไร เมื่อไหร่ใช้ตัวไหน)

Backend-as-a-Service (BaaS) — ครัวกลางที่รวมทุกอย่างในตัวเดียว#

เริ่มจาก family ใหญ่สุดก่อน — Backend-as-a-Service หรือย่อว่า BaaS หลักคิดคือ — แทนที่ทีมจะต้อง assemble database + auth + file storage + serverless function + push notification เองทีละชิ้น — ใช้ service เดียวที่รวมทุกอย่างมาให้แล้ว

เทียบกับร้านอาหารก็คือ — แทนที่จะเปิดครัว + จ้างเชฟ + ซื้อเตา + จ้างคนล้างจานเอง — เช่า “ครัวพร้อมพนักงาน” รายเดือน มี kitchen manager ดูแล มีคนล้างจานสำรอง มีของสดส่ง

ปี 2026 มี 4 ตัวที่ทีม startup เลือกใช้บ่อยสุด — แต่ละตัวเหมาะกับทีมคนละแบบ

Supabase — Postgres + Auth + Storage + Realtime + Vector ในตัวเดียว#

Supabase น่าจะเป็นชื่อที่ได้ยินบ่อยสุดในวงการ SaaS ตอนนี้ มันคือ Postgres เต็มตัว (ไม่ใช่ wrapper หรือ NoSQL ที่ทำให้ดูเหมือน Postgres) ห่อด้วย service เสริมรอบๆ

ในแพ็คเกจมี

  • Database — Postgres เต็มตัว มี extension ให้ใช้ครบ (pg_vector สำหรับ AI, PostGIS สำหรับแผนที่, pg_cron สำหรับ scheduled job)
  • Auth — ระบบ login พร้อมใช้ รองรับ email/password, Google, Apple, magic link
  • Storage — เก็บไฟล์รูป/วิดีโอแบบ S3
  • Realtime — push update ไปที่ browser ผู้ใช้ทันทีเมื่อข้อมูลเปลี่ยน (เหมือนแชท)
  • Edge Functions — เขียน serverless function รันบน edge ทั่วโลก
  • Vector — เก็บ embedding สำหรับ AI search

เคสที่เหมาะ: ทีมที่ชอบ Postgres เป็นทุนเดิม + อยาก ship เร็ว + ไม่อยาก lock ตัวเองไว้กับ NoSQL proprietary

ค่าใช้จ่าย: Free tier ครอบคลุม MVP ส่วนใหญ่ (database 500 MB, ผู้ใช้ active 50K คน/เดือน) ขั้น Pro เริ่ม $25/เดือนตอนเริ่มมีรายได้

ข้อสังเกต: Supabase เป็น open source ถ้าวันหนึ่งอยาก migrate ออก — เอา Postgres dump ออกมา host ที่อื่นได้เลย เพราะมันคือ Postgres ปกติ ไม่ใช่ database พันธุ์พิเศษ นี่คือเหตุผลที่ผมจะวกมาคุยซ้ำตอนเรื่อง vendor lock-in

Firebase — NoSQL + Auth + Hosting + Functions ของ Google#

Firebase อยู่ในวงการมาก่อน Supabase นาน Google ซื้อมาตั้งแต่ปี 2014 ตัวเด่นคือ Firestore — NoSQL document database ที่ realtime ในตัว + ระบบ auth + hosting + cloud function ครบ

เคสที่เหมาะ:

  • Mobile-first app — Firebase SDK ของ iOS/Android เก่งกว่าตัวอื่น
  • Realtime chat / collaborative app — Firestore push update ผ่าน WebSocket แบบ native
  • ทีมที่อยู่ใน Google ecosystem อยู่แล้ว — Firebase รวมเข้ากับ Google Cloud ได้ลื่น

ข้อสังเกตสำคัญ — Firebase = vendor lock-in หนักสุดในตลาด เหตุผลคือ Firestore เป็น NoSQL พันธุ์เฉพาะของ Google query syntax, data model, security rule — เป็นของ Firebase ทั้งหมด ถ้าวันหนึ่งอยาก migrate ออก — ต้องเขียน application ใหม่เกือบทั้งหมด เพราะไม่มี SQL standard ให้ยึด

ในวงการมี horror story เยอะมากของทีมที่ build บน Firebase 3 ปี แล้ววันหนึ่ง Google ปรับราคา Firebase ขึ้น 5-10 เท่า migrate ออกใช้เวลา 6-12 เดือน เสียเงินหลายล้านบาท นี่ไม่ใช่ปัญหาเฉพาะของ Firebase — มันเป็นข้อแลก inherent ของการเลือก managed NoSQL ที่ไม่มี standard

Appwrite — open-source alternative ของ BaaS#

ถ้าทีมเริ่มกังวลเรื่อง vendor lock-in ตั้งแต่วันแรก — Appwrite เป็นทางเลือกที่ open source 100% feature ใกล้ Firebase + Supabase รวมกัน — auth + database + storage + function

จุดต่างคือ — Appwrite self-hostable รันบน server ตัวเองได้ ถ้าวันหนึ่งอยากย้ายออกจาก managed cloud นี่เป็น insurance policy ที่ Firebase ไม่มีให้

เคสที่เหมาะ: ทีมที่ตั้งใจจะ self-host บางส่วนตั้งแต่วันแรก / ทีมที่อยู่ใน region ที่ต้องการ data residency เฉพาะ / ทีมที่มี compliance requirement ต้อง audit source code ของ backend ได้

ข้อแลก: ecosystem เล็กกว่า Firebase / Supabase tutorial และ third-party integration น้อยกว่า ถ้าทีมไม่มี backend engineer ที่ถนัด Docker + Kubernetes — ไม่ควรเริ่มที่นี่

PocketBase — single binary ที่เริ่มได้ใน 5 นาที#

ตัวสุดท้ายในตระกูล BaaS — PocketBase เป็นของที่แปลกสุดในกลุ่มนี้ เพราะมันคือ ไฟล์ executable ไฟล์เดียว (เขียนด้วย Go) ที่รวม database (SQLite) + auth + file storage + admin UI + REST API ครบในไฟล์เดียว

ดาวน์โหลดมา double-click เปิด — ได้ backend พร้อมใช้ภายใน 30 วินาที ไม่ต้อง install database ไม่ต้อง config web server ไม่ต้องตั้ง auth provider

เคสที่เหมาะ:

  • Side project / weekend project — อยากลองไอเดียเร็วๆ
  • MVP ที่ต้องการ deploy ง่ายสุด — upload ไฟล์เดียวขึ้น VPS เล็กๆ ราคา $5/เดือน
  • Internal tool ของทีมเล็กๆ ที่ไม่ต้องการ scale ใหญ่

ข้อจำกัด: เพราะใช้ SQLite อยู่ใต้ฐาน — ไม่เหมาะกับงานที่ต้อง concurrent write หนัก limit ของ SQLite ผมเขียนไว้ใน EP.10 — SQLite + Local-first ละเอียดแล้ว

มุมผู้บริหาร: BaaS 4 ตัวนี้ — เลือกตัวไหนสำคัญน้อยกว่า “เลือกแล้วเข้าใจ trade-off” ทุกตัวมีต้นทุน lock-in คนละแบบ ที่ทีมต้องคุยกันชัดเจนคือ “ถ้าวันหนึ่งต้องย้าย — ต้องเขียน code ใหม่กี่ %“

Serverless Postgres — เน้นเฉพาะ database#

family ที่สอง — Serverless Postgres ต่างจาก BaaS ตรงที่ตัวพวกนี้โฟกัสที่ database อย่างเดียว ไม่มี auth ไม่มี storage ไม่มี function — มีแต่ Postgres ที่ scale อัตโนมัติ + จ่ายตามใช้

เคสที่เหมาะคือ — ทีมที่มี backend ของตัวเองอยู่แล้ว (อาจจะ Node.js / Python / Go) ต้องการแค่ database ที่ไม่ต้องดูแล server หรือทีมที่อยาก mix-and-match — ใช้ Postgres ตัวนี้กับ auth ตัวอื่น (เช่น Clerk) กับ storage อีกตัว (เช่น R2)

มีตัวที่น่าสนใจ 3 ตัวในตลาด

Neon — branch database ได้เหมือน Git#

Neon มี feature เด็ดที่ตัวอื่นไม่มี — branch database ได้เหมือน git branch สร้าง production database แล้ว fork มันออกมาเป็น staging database ใน 2 วินาที แล้ว fork อีกที่เป็น dev database ของแต่ละ developer ทุก branch แยกข้อมูลกันสมบูรณ์ — แก้อะไรใน dev branch ไม่กระทบ production

ทำไมเรื่องนี้ใหญ่? เพราะ workflow การพัฒนา software ส่วนใหญ่ติดอยู่ที่ “schema migration ลอง dev environment แล้วเจอบั๊กตอนขึ้น production” ถ้า test schema migration บน branch ที่เป็น snapshot ของ production จริงๆ ได้ก่อน — บั๊กระดับนั้นแทบจะหายไป

เคสที่เหมาะ: ทีมที่ deploy บ่อย + แก้ schema บ่อย + อยาก preview environment สำหรับทุก pull request

Supabase Postgres (ตัวเดี่ยว)#

ที่กล่าวไปข้างบนแล้ว Supabase แยกขาย “Database only” plan ได้ด้วย — ถ้าอยากใช้แค่ Postgres ของเขา ไม่ต้องการ auth/storage/function

ข้อได้เปรียบหลักคือ — มี extension ครบกว่าคู่แข่ง pg_vector สำหรับ AI search, PostGIS สำหรับแผนที่, pg_cron สำหรับ scheduled job, pg_net สำหรับเรียก HTTP จากใน database

Xata — Postgres + search + analytics ในตัวเดียว#

Xata เป็นตัวที่ pitch ตัวเองว่า “data platform” ไม่ใช่แค่ database ในตัวเดียวรวม Postgres + Elasticsearch (สำหรับ full-text search) + file attachment storage

เคสที่เหมาะ: app ที่ต้องการ search ดีๆ ทันที เช่น marketplace ที่ลูกค้าค้นหา product / job board / catalog system ปกติทีมจะต้อง assemble Postgres + Elasticsearch แยก แล้วเขียน sync logic เอง Xata รวมให้แล้ว

ข้อสังเกต: ตลาดของ Xata เล็กกว่า Neon / Supabase ถ้าเลือก — ประเมินความเสี่ยงว่าบริษัทจะอยู่ระยะยาวไหม

Serverless MySQL — มีน้อยกว่า Postgres เยอะ#

ในวงการ serverless database ปี 2026 — Postgres ครองตลาดเกือบเบ็ดเสร็จ MySQL มีตัวเลือกน้อยกว่า + แต่ละตัวมีปัญหาของตัวเอง

มี 2 ตัวที่ควรรู้

PlanetScale — กรณีศึกษาที่ทุกคนต้องเรียนรู้#

PlanetScale เคยเป็น “serverless MySQL ที่ดีที่สุดในตลาด” ระหว่างปี 2021-2024 feature เด็ดคือ branch database (คล้าย Neon แต่บน MySQL) + serverless scaling จริงๆ + free tier ที่ใจกว้างมาก สตาร์ทอัพทั่วโลกแห่กันใช้

แล้วเหตุการณ์สำคัญก็เกิดปี 2024 — PlanetScale ประกาศตัด free tier ลูกค้า free tier ที่มีเป็นพันราย ต้องตัดสินใจภายใน 30 วัน — ย้ายขึ้น paid plan (เริ่ม $39/เดือน) หรือ migrate ออก คนเป็นพันที่สร้าง MVP บน free tier ของ PlanetScale ต้องวิ่งหาบ้านใหม่กลางดึก

นี่เป็น case study ของ vendor lock-in ที่สำคัญที่สุดในวงการ serverless database PlanetScale ไม่ได้ scam — ธุรกิจเขาต้องอยู่ได้ — แต่ผู้ใช้ที่พึ่ง free tier เป็น cost structure ของ MVP เจอ decision ที่ปวดหัวกะทันหัน

ผมจะวกกลับมาคุยบทเรียนจากเรื่องนี้ในส่วน vendor lock-in ข้างล่าง

TiDB Cloud — MySQL-compatible NewSQL#

TiDB เป็น database ที่ “พูด MySQL ได้” แต่ภายในเป็น distributed NewSQL ที่ scale แนวนอน รองรับ workload ระดับ Fortune 500 ได้

เคสที่เหมาะ: ทีมที่มี code base MySQL อยู่แล้ว + ต้องการ scale เกินจุดที่ MySQL เดิมรับไหว + อยาก keep SQL standard

Edge Database — สำหรับ global app#

family ที่สี่ — Edge Database แนวคิดคือ — แทนที่ database จะอยู่ที่ region เดียว (เช่น Singapore) แล้วผู้ใช้ทั่วโลกต้องวิ่งเข้ามาหา — กระจาย database ไปอยู่ทุก region ใกล้ผู้ใช้

ผู้ใช้ไทยเรียก database ที่กรุงเทพ ผู้ใช้ยุโรปเรียก database ที่แฟรงก์เฟิร์ต ผู้ใช้อเมริกาเรียก database ที่ Virginia response time ต่ำกว่า 50 ms ทุกที่ในโลก

มี 5 ตัวที่ควรรู้

  • Cloudflare D1 — SQLite distributed บน edge ของ Cloudflare ฟรีในระดับ MVP รวมเข้ากับ Cloudflare Workers ลื่น
  • Turso — libSQL (fork ของ SQLite) ที่ replicate ไปทุก region spec คล้าย D1 แต่อยู่นอก ecosystem ของ Cloudflare
  • Upstash — Redis serverless เน้น cache + session + queue จ่ายตาม request ไม่ใช่ตามเวลา server เปิด
  • Convex — backend-as-a-service ที่เน้น reactive query (ข้อมูลเปลี่ยน — UI update เอง) competitor ตรงๆ ของ Firebase
  • Xata — กล่าวข้างบนแล้ว แต่ Xata distributed Postgres ด้วย

เคสที่เหมาะกับ Edge Database:

  • App ที่ user กระจายทั่วโลก (ไม่ใช่แค่ผู้ใช้ไทย)
  • Real-time feature ที่ latency สำคัญ (chat, multiplayer game, live cursor)
  • Mobile app ที่ต้องโต้ตอบเร็วในทุก region

เคสที่ไม่จำเป็นต้องใช้: App ที่ user อยู่ region เดียว (เช่น SaaS เฉพาะลูกค้าไทย) กระจาย database ทั่วโลกไม่ช่วยอะไร — เปลือง budget เปล่าๆ

Pricing Model ที่เปลี่ยนเกม — Pay per Request vs Pay per Server-hour#

ตรงนี้สำคัญที่สุดในเรื่อง business model ของ SaaS เกิดใหม่ มันคือเหตุผลจริงๆ ที่ทำไม founder ปี 2026 ถึงกล้า “ship อะไรก็ได้ก่อน”

แบบเดิม — Pay per Server-hour

  • เช่า AWS RDS (managed MySQL) instance เล็กสุด = ~$15/เดือน
  • ขนาดกลาง = ~$50-100/เดือน
  • traffic เป็น 0 ก็จ่ายเหมือนเดิม เพราะ server เปิดรอตลอด

แบบใหม่ — Pay per Request

  • Supabase free tier = $0/เดือน ถ้าใช้ไม่เกิน limit
  • Upstash = จ่ายต่อ command ที่ส่งจริง ($0.20 per 100K requests)
  • Neon = จ่ายต่อ second ที่ database active (auto-pause เมื่อไม่มี request)
  • ตอน MVP ไม่มี user → ค่า database ใกล้ $0
  • พอมี user → ค่าเพิ่มตามใช้จริง, scale linear กับ revenue

ผลที่เปลี่ยนเกมคือ — **cost of failure = 0ก่อนปี2020ถ้าfounderอยากลองไอเดีย5ตัว—ต้องจ่ายค่าhosting+databaseของทั้ง5ตัวต่อเนื่องเป็นเดือนๆปี2026launchproduct5ตัวที่ไม่ดัง=ค่าใช้จ่ายใกล้0** ก่อนปี 2020 ถ้า founder อยากลองไอเดีย 5 ตัว — ต้องจ่ายค่า hosting + database ของทั้ง 5 ตัวต่อเนื่องเป็นเดือนๆ ปี 2026 — launch product 5 ตัวที่ไม่ดัง = ค่าใช้จ่ายใกล้ 0 ดัง 1 ตัว = ค่า scale อัตโนมัติตามรายได้

นี่คือเหตุผลที่ “indie hacker” / “solopreneur” / “micro-SaaS” กลายเป็นกระแสในวงการ เพราะ economic friction ของการลอง — เกือบหมดไปแล้ว

มุมผู้บริหาร: ถ้าทีมยังจ่ายค่า database server แบบเก่า (RDS เปิดตลอดทั้งที่ MVP ยังไม่มี traffic) — คุณกำลังเสีย runway ฟรี ลอง migrate MVP ขึ้น serverless tier ก่อน (free tier ของ Supabase / Neon / Upstash ครอบคลุม MVP ส่วนใหญ่ได้สบาย) ค่อย upgrade เมื่อมี traffic จริง

Vendor Lock-in Trap — ที่ต้องเห็นตั้งแต่ day 1#

ทุกอย่างฟังดูสวยงาม — จนกระทั่งวันที่ vendor เปลี่ยน price หรือปิด service

Case 1: Firebase price hike ที่เกิดซ้ำๆ

ในวงการมี horror story หลายเคสของ startup ที่ build บน Firebase 3-5 ปี แล้ว Google ปรับ pricing ขึ้น 5-10 เท่ากะทันหัน เพราะ Firestore เป็น proprietary NoSQL ที่ไม่มี SQL standard ให้ยึด — migrate ออกหมายถึงเขียน application ใหม่เกือบทั้งหมด ค่า migrate มักจะเป็นหลักล้านบาท + เวลา 6-12 เดือน

Case 2: PlanetScale ปิด free tier ปี 2024

ที่กล่าวไปแล้ว — ลูกค้า free tier เป็นพันรายต้อง migrate ใน 30 วัน คนที่ build MVP บน free tier โดยคิดว่ามันจะอยู่ตลอด — เจอ wake-up call ที่ปวดหัว

บทเรียน 4 ข้อจาก 2 case นี้

1. ใช้ standard SQL ไม่ใช่ vendor-specific

ถ้าเลือก Postgres-compatible (Supabase, Neon, Xata, RDS, Aurora) — schema ของคุณเป็น standard SQL ที่ migrate ไปอยู่ Postgres ที่ไหนในโลกก็ได้ ถ้าเลือก Firestore — schema คุณคือ Firestore ตลอดไปจนกว่าจะเขียนใหม่

2. มี migration plan ตั้งแต่ day 1

แม้จะใช้ vendor ที่ดูมั่นคง — ทีมควรเขียนเอกสารสั้นๆ ตั้งแต่วันแรกว่า “ถ้าวันหนึ่งต้องย้ายออก จะย้ายไปไหน ใช้ tool อะไร ใช้เวลาเท่าไร” ไม่ต้องลงรายละเอียด แค่ให้รู้ว่ามี exit path ที่ห้ามคือ “ไม่เคยคิดเลยจนวันที่ vendor บอกว่าราคาขึ้น 10 เท่า”

3. Multi-cloud strategy (ถ้า business critical)

สำหรับ SaaS ที่โตขึ้นมา ($1M+ ARR) — พิจารณา production บน cloud หนึ่ง + DR (disaster recovery) backup บน cloud อีกเจ้า ค่าเพิ่มไม่เยอะมาก ลด vendor risk เยอะ

4. Data export ทุกเดือน

ทำ automated job export database backup ออกมาเก็บไว้ที่ object storage ของอีก cloud ถ้า vendor ปิดบริการพรุ่งนี้ — อย่างน้อยข้อมูลของคุณอยู่ในมือ service ส่วนใหญ่มี API export อยู่แล้ว เขียน cron job เรียกเดือนละครั้งก็พอ

มุมผู้บริหาร: vendor lock-in ไม่ใช่เหตุผลที่จะ “ไม่ใช้ serverless” serverless เร็ว ถูก scale อัตโนมัติ — ข้อดีเหล่านี้เกินคุ้มสำหรับ MVP แต่การไม่คิดเรื่อง exit path ตั้งแต่วันแรก = สมัครใจแบกความเสี่ยงระยะยาว คุยเรื่องนี้กับทีมตั้งแต่ก่อน commit สแตก

เคสจริง: Typical Thai SaaS Stack 2026#

ขมวดทุกอย่างที่คุยมาให้เห็นเป็น diagram จริงๆ ที่ทีม SaaS ไทย 3 คนใช้กัน

┌─────────────────────────────────────────────────┐
│ USER (browser) │
└──────────────────────┬──────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Frontend: Vercel / Cloudflare Pages │
│ (Next.js / Astro / SvelteKit) │
└──────────────────────┬──────────────────────────┘
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Database │ │ Auth │ │ Storage │
│ Supabase │ │ Supabase │ │ Supabase │
│ Postgres │ │ / Clerk │ │ / R2 │
└──────────┘ └──────────┘ └──────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Cache │ │ Payment │ │ Email │
│ Upstash │ │ Stripe │ │ Resend │
│ Redis │ │ / Omise │ │/SendGrid │
└──────────┘ └──────────┘ └──────────┘
┌──────────┐
│Analytics │
│Cloudflare│
│/PostHog │
└──────────┘

ค่าใช้จ่ายรวมตามขนาด user

ScaleMonthly Cost
MVP (0-100 user)~$0-10 (free tier ครอบคลุม)
Growing (100-1,000 user)~$50-100
Established (1,000-10,000 user)~$100-200
Mid-scale (10,000-100,000 user)~$500-1,500

เทียบกับสแตกเดิม (RDS + EC2 + ELB + S3) — ที่จุดเดียวกันมักจะแพงกว่า 3-5 เท่า + ต้องจ้าง DevOps engineer 1 คนเงินเดือนหลายแสน

Myth-busting: “BaaS = ดีสำหรับ MVP, ปัญหาตอน scale”#

มี myth ที่เห็นบ่อยในวงการ — “serverless / BaaS = เหมาะกับ MVP, พอ scale แล้วต้องย้ายออกอยู่ดี” ผมอยากบอกว่า — มันไม่จริงในปี 2026

Fact 1: มี SaaS ที่ scale ถึง 100K+ user รัน production อยู่บน Supabase ตอนนี้ โครงสร้างไม่ได้พังตอนโตขึ้น — มัน scale ตามที่ Postgres scale ได้ (ซึ่งคือมหาศาลถ้า optimize ดี)

Fact 2: Notion ใช้ Postgres แอปจัดการ doc ที่มี user เป็น 100 ล้านคน — ใช้ Postgres เป็น database หลัก (เคย shard เอง แต่ไม่ใช้ proprietary NoSQL) Postgres ไม่ใช่ database สำหรับ MVP เท่านั้น

Fact 3: Vercel เองรัน 10M+ requests/day บน serverless stack ของตัวเอง บริษัทที่ทำ infra ให้คนอื่น ใช้ serverless infra เอง = signal ที่แรงพอควร

คำถามจริงไม่ใช่ “scale ได้ไหม” — แต่เป็น “scale แบบไหน”

  • Read-heavy + write-light (blog, content site, doc system, e-commerce catalog) → serverless OK ทุกระดับ
  • Write-heavy + low latency strict (high-frequency trading, real-time multiplayer game) → managed Postgres / dedicated cluster อาจจำเป็น
  • Massive concurrent write (Twitter-scale ingestion) → ต้องใช้ specialized stack

ถ้า business ของคุณไม่ได้อยู่ใน 2 case หลังนี้ — serverless รับได้สบาย ส่วนใหญ่ของ SaaS ในโลกอยู่ใน case แรก

มุมผู้บริหาร — เมื่อไหร่ควรย้ายออกจาก Serverless กลับไป self-hosted#

แม้ว่า serverless จะ default ของ SaaS เกิดใหม่ — มี 4 signal ที่บอกว่าถึงเวลาควรพิจารณา self-host

1. Cost — เมื่อ database cost > server cost แบบ self-hosted

Pricing model ของ serverless เป็น “ถูกตอน scale น้อย ยอมเสียพรีเมียมตอน scale ใหญ่” จุด break-even มักจะอยู่ที่ scale ใหญ่มาก ($10K-30K/เดือนของค่า database) ถ้าทีมเริ่มเห็นบิล serverless เข้าใกล้เลขนี้ — เริ่มประเมินได้ว่า self-host บน dedicated server จะถูกกว่า (รวมค่า DBA แล้ว)

2. Vendor Risk — vendor lock-in ที่ business ไม่ยอมรับ

เช่น — บริษัทที่จะ exit (ขายให้รายใหญ่ / IPO) ผู้ซื้อมัก due diligence เรื่อง vendor dependency ถ้าทุกอย่างผูกกับ vendor เดียว — valuation อาจถูกลด self-host ส่วน critical จะให้ control มากกว่า

3. Compliance — data residency requirement ที่ vendor ไม่รองรับ

บางอุตสาหกรรม (financial services, healthcare ในบาง country) บังคับว่าข้อมูลต้องอยู่ใน data center ของบริษัทเอง / ใน region เฉพาะ ถ้า serverless vendor ไม่มี region ที่ตรง requirement — ต้อง self-host

4. Performance — workload ที่ต้องการ specific tuning ที่ managed service ไม่ให้

managed service ทุกตัว trade flexibility เพื่อ ease of use ถ้า workload ต้องการ tune Postgres parameter พิเศษ custom extension ที่ vendor ไม่รองรับ hardware spec ที่ vendor ไม่มี — self-host ได้ flexibility ที่ต้องการ

สรุปง่ายๆ: SaaS เกิดใหม่ปี 2026 = serverless first, self-host last resort เริ่มที่ serverless เพื่อ ship เร็ว scale ถึงจุดที่ economics กลับด้าน หรือ requirement บังคับ — ค่อยพิจารณา migrate ไม่ใช่ทำกลับด้าน

ปิดบท — Stack เล็กๆ พลังมหาศาล#

EP.11 จบที่นี่ครับ SaaS เกิดใหม่ปี 2026 ใช้สแตกที่ 10 ปีก่อนยังไม่มีอยู่จริง — Supabase + Vercel + Stripe + Cloudflare + Resend ทีม 3 คนรัน user 10,000 ได้เดือนละพันกว่าบาท เรื่องที่เคยต้องจ้าง DBA + DevOps + sysadmin เต็มเวลา — ตอนนี้ click-deploy ได้ใน 5 นาที

แต่ — ของฟรีในวงการไม่มีจริง trade-off คือ vendor lock-in ที่ทีมต้องเห็นตั้งแต่ day 1 PlanetScale ปี 2024, Firebase price hike — เป็นเสียงเตือนดังๆ ว่าไม่มี vendor ไหนที่อยู่ตลอดกาลใน free tier เดิม

มาถึงตรงนี้ผมคุยมา 11 ตอนแล้ว ทุกตอนสมมติฐานเดียวกัน — ทีมขนาดเล็ก app ขนาดเล็ก-กลาง choose 1 database ที่เหมาะที่สุด

แต่พอขึ้นไปอีก scale หนึ่ง — enterprise ที่มีพนักงาน 50,000 คน ลูกค้าเป็นล้านบริษัท — สมมติฐานนี้ก็พัง เพราะ enterprise ไม่ใช้ database ตัวเดียว — ใช้ 7-10 ตัวพร้อมกัน ตัวละหน้าที่ Postgres สำหรับ order, Cassandra สำหรับ log, Elasticsearch สำหรับ search, Neo4j สำหรับ recommendation, Snowflake สำหรับ analytics, Redis สำหรับ cache EP.12 เราจะคุยเรื่องนี้กัน — pattern ที่วงการเรียกว่า Polyglot Persistence

EP.12 — มุม Enterprise: Polyglot Persistence