กลับหน้าหลัก
ภาพปกบทความ Web Application Architecture Cheat Sheet
System Design#Architecture#Infrastructure#Web Application#Cheat Sheet

Web Application Architecture Cheat Sheet

สรุปภาพรวมแผนผังการทำงานของระบบเว็บแอปพลิเคชัน (Web Application Architecture) เพื่อให้เห็นภาพว่า Request หนึ่งคำขอเดินทางจากเครื่องผู้ใช้งานไปจนถึงฐานข้อมูลเบื้องหลังได้อย่างไร และแต่ละชั้น (Layer) มีหน้าที่อะไรบ้าง เหมาะสำหรับใช้เป็นจุดเริ่มต้นในการทำความเข้าใจระบบและสอนงานทีม


ภาพรวมการเดินทางของ Request

   👤 User


 [ Web / Mobile / Desktop App ]      ← ส่วนที่ผู้ใช้เปิดใช้งาน


   DNS  →  Internet (HTTP/HTTPS)      ← แปลงชื่อโดเมน + รับส่งข้อมูล


 [ WAF / Firewall ]                   ← ด่านตรวจความปลอดภัย


 [ Ingress / API Gateway / Proxy ]    ← Load Balancing + Routing + Auth

    ├──────────────┐
    ▼              ▼
[ Frontend ]   [ Backend ]            ← UI/UX + Business Logic


        ┌──────────┼──────────┐
        ▼          ▼          ▼
   [ Cache ]  [ Database ]  [ Queue ]  ← บริการข้อมูลและสนับสนุน

1. การไหลของ Request (Request Flow)

ลำดับการเดินทางของคำขอ (Request) จากเครื่องผู้ใช้งานเข้าสู่ระบบ เพื่อประมวลผลและตอบกลับ:

  1. ผู้ใช้งาน (User): เข้าถึงระบบผ่านอุปกรณ์ต่าง ๆ เช่น คอมพิวเตอร์ มือถือ หรือแท็บเล็ต
  2. Web / Mobile / Desktop Application: แอปพลิเคชันหรือเบราว์เซอร์ที่ผู้ใช้กำลังเปิดใช้งาน
  3. DNS (Domain Name System): แปลงชื่อโดเมน (Domain Name) ให้เป็นหมายเลข IP Address (เช่น example.com203.x.x.x) เพื่อให้รู้ว่าจะส่ง Request ไปที่เซิร์ฟเวอร์ไหน
  4. Internet: สื่อสารและรับส่งข้อมูลผ่านโปรโตคอล HTTP / HTTPS โดย HTTPS จะเข้ารหัสข้อมูลระหว่างทางเพื่อความปลอดภัย
  5. WAF / Firewall (Web Application Firewall): ด่านป้องกันชั้นแรก ทำหน้าที่ตรวจสอบ วิเคราะห์ และบล็อกการโจมตีที่เป็นอันตราย (เช่น SQL Injection, XSS) ก่อนเข้าถึงเซิร์ฟเวอร์
  6. Ingress / API Gateway / Reverse Proxy: ตัวกลางที่รับ Request เข้ามาเพื่อทำ Load Balancing (กระจายโหลด), จัดการสิทธิ์การเข้าถึง (Auth) และส่งต่อ (Routing) ไปยังบริการภายในที่เกี่ยวข้อง
  7. Frontend & Backend:
    • Frontend: ส่วนที่ผู้ใช้มองเห็นและโต้ตอบโดยตรง (UI/UX)
    • Backend: ส่วนประมวลผลตรรกะทางธุรกิจ (Business Logic) และเชื่อมต่อจัดการข้อมูล
  8. Data & Supporting Services: บริการข้อมูลและสนับสนุนเบื้องหลัง เช่น การจัดเก็บไฟล์, แคชข้อมูล และคิวของข้อความ

2. Frontend (ฝั่งหน้าบ้าน)

ส่วนแสดงผลที่ผู้ใช้งานโต้ตอบได้โดยตรง มีหน้าที่จัดการการแสดงผล UI/UX และดึงข้อมูลจาก Backend ผ่านการเรียกใช้ API

เทคโนโลยีที่นิยมใช้พัฒนา:

เทคโนโลยีFramework ยอดนิยม
ReactNext.js, Remix
VueNuxt.js
Angular
SvelteSvelteKit
StaticHTML / CSS / JavaScript

3. Backend (ฝั่งหลังบ้าน)

ส่วนที่รันอยู่บนเซิร์ฟเวอร์ ทำหน้าที่จัดการตรรกะทางธุรกิจ (Business Logic), การยืนยันตัวตน (Authentication), การประสานงานระหว่างบริการ (Integration) และการประมวลผลข้อมูล

ภาษาและเครื่องมือที่นิยมใช้พัฒนา:

  • Go (Golang) — เน้นประสิทธิภาพสูงและรองรับงาน Concurrent ได้ดี
  • Node.js — เหมาะกับงาน I/O และใช้ภาษา JavaScript ร่วมกับ Frontend ได้
  • Java (Spring Boot) — นิยมในระบบองค์กรขนาดใหญ่
  • Python (FastAPI, Django) — พัฒนาเร็วและเหมาะกับงาน Data / AI
  • PHP (Laravel) — นิยมในงานเว็บทั่วไป
  • .NET Core (C#) — รองรับ Cross-platform
  • Rust / C / C++ — เน้นประสิทธิภาพและการควบคุมทรัพยากรระดับลึก

4. Data & Supporting Services

ระบบสนับสนุนและการจัดการข้อมูลเบื้องหลัง เพื่อให้เว็บแอปพลิเคชันทำงานได้อย่างมีประสิทธิภาพและรองรับการขยายตัว:

📁 File Storage

จัดเก็บไฟล์สื่อหรือเอกสารต่าง ๆ เช่น รูปภาพ วิดีโอ หรือไฟล์ PDF โดยมักแยกออกจากเซิร์ฟเวอร์หลัก เช่น Object Storage อย่าง Amazon S3 หรือ MinIO

⚡ Cache (เช่น Redis)

เก็บข้อมูลชั่วคราวที่ถูกเรียกใช้บ่อย ไว้ในหน่วยความจำ (In-memory) เพื่อเร่งความเร็วในการเข้าถึงข้อมูลและลดภาระของฐานข้อมูลหลัก

🗄️ Database (ฐานข้อมูล)

ประเภทจุดเด่นตัวอย่าง
SQL (Relational)เน้นความถูกต้องของข้อมูล (ACID) และความสัมพันธ์แบบตารางPostgreSQL, MySQL, MariaDB, MSSQL
NoSQLเน้นข้อมูลปริมาณมากและขยายระบบ (Scale) ได้ง่ายMongoDB, Cassandra, ScyllaDB

✉️ Messaging / Queue

ระบบคิวของข้อความเพื่อรองรับการทำงานแบบ Asynchronous ช่วยให้บริการแต่ละส่วนคุยกันได้โดยไม่ต้องรอผลตอบกลับทันที (Decoupling) ทำให้ระบบทนทานต่อโหลดสูงและไม่ล่มง่าย

  • Kafka — เน้น Throughput สูงและ Event Streaming
  • RabbitMQ — เน้นการจัดการคิวงานที่ยืดหยุ่น

💡 สรุปจำง่ายใน 5 ข้อ

  1. DNS: ค้นหาพิกัด IP จากชื่อโดเมน
  2. WAF / Firewall: กรองความปลอดภัยและป้องกันภัยก่อนเข้าระบบ
  3. Gateway / Reverse Proxy: รับคำขอแล้วกระจาย Request ไปยังบริการต่าง ๆ
  4. Frontend & Backend: หน้าบ้าน (Frontend) คือสิ่งที่ผู้ใช้มองเห็น ส่วนหลังบ้าน (Backend) คือสมองที่คอยคิดวิเคราะห์
  5. Cache / DB / Queue: กำลังเสริมที่คอยจัดเก็บข้อมูล แคชข้อมูล และจัดลำดับการทำงานเบื้องหลัง

NOTE

สถาปัตยกรรม (Architecture) ของระบบสามารถปรับแต่งและยืดหยุ่นได้ตามขนาดความต้องการของแอปพลิเคชัน ประสิทธิภาพที่คาดหวัง และข้อกำหนดด้านความปลอดภัยขององค์กร ไม่จำเป็นต้องมีครบทุกชั้นเสมอไป — ระบบขนาดเล็กอาจตัดบางส่วนออกได้ ในขณะที่ระบบขนาดใหญ่อาจเพิ่มชั้นอื่น ๆ เข้ามา เช่น CDN หรือ Service Mesh