Site icon PlusMagi's Blog By Pitt Phunsanit

Monolithic Architecture

การที่ทุกอย่าง ( ทั้ง Database Config, Logic การทำงาน, และหน้าตา UI / HTML ) ถูกรวมอยู่ในโปรเจกต์เดียวกันและรันอยู่ใน Server ตัวเดียวกันแบบนี้ เราเรียกว่า Monolithic Architecture ( หรือเรียกสั้นๆ ว่า Monolith )


Monolithic Architecture คืออะไร ?

มันคือรูปแบบการสร้างซอฟต์แวร์ที่ส่วนประกอบทั้งหมด ( User Interface, Business Logic, Database Access) ถูกรวมเข้าด้วยกันเป็นหน่วยเดียว ( Single Unit ) เวลาคุณสั่ง Build คุณจะได้ไฟล์ก้อนเดียว ( เช่น .jar ใน Spring Boot ) แล้วนำไปรันที่เดียวจบ

ส่วนประกอบ ( Components )

API

สามารถใช้ API ควบคู่ไปกับ Web Controller ( Thymeleaf ) ได้ในโปรเจกต์เดียวกันครับ


ทำไมเราถึงเรียกว่า Monolith ?

  1. ใช้ Runtime เดียวกัน: เมื่อคุณสั่งรันโปรเจกต์ ทั้งหน้าเว็บ ( UI ) และระบบหลังบ้านจะทำงานภายใต้ Java Process ( JVM ) ตัวเดียวกัน
  2. แชร์ Resource เดียวกัน: ใช้ CPU และ RAM ก้อนเดียวกันบนเครื่อง Server
  3. Deploy พร้อมกัน: เวลาคุณแก้ไข Code แค่ปุ่มเดียวในหน้า Login คุณต้อง Build และ Restart ระบบใหม่ทั้งหมด ( ทั้งก้อน )

สรุปสั้นๆ: คือการสร้าง “ระบบที่สมบูรณ์ในตัวมันเอง”


เมื่อไหร่ที่มันจะไม่ใช่ Monolith ?

มันจะเปลี่ยนไปเป็น Decoupled Architecture หรือ Microservices ก็ต่อเมื่อ


เปรียบเทียบกับรูปแบบอื่น

รูปแบบลักษณะการทำงาน
Monolithเหมือน Laravel ที่ใช้ Blade + Controller จบในที่เดียว รันบน Server ตัวเดียว
Decoupled / Separatedแยกเป็น Backend ( API ) และ Frontend ( React /Vue / Next.js) คุยกันผ่าน JSON
Microservicesแยก Backend ออกเป็นหลาย ๆ โปรเจกต์ย่อย ( เช่น บริการ Login, บริการ Order ) แยกฐานข้อมูลกัน

ข้อดีและข้อเสียของ Monolith


ข้อดี

ข้อเสีย


อ่านเพิ่มเติม

Exit mobile version