การออกแบบสถาปัตยกรรม¶
สถาปัตยกรรมทางเทคนิคและการตัดสินใจออกแบบของ OpsMini
-
พาเนลเครื่องเดียว โมโนลิธไบนารีเดียว แยก frontend/backend + บรรจุแบบฝัง
-
เหตุผลการเลือก Go · Gin · GORM · SQLite (Go ล้วน) · Vue 3 · ECharts
-
สถาปัตยกรรมแบบเลเยอร์ (Controller → Service → Repository) และการจัดระเบียบไดเรกทอรี
การตัดสินใจสถาปัตยกรรมหลัก¶
- โมโนลิธเครื่องเดียว: ไม่ทำ microservice ส่งมอบเป็นไบนารีเดี่ยวในโปรเซสเดียว
- SQLite: แบบฝังตัว ไม่ต้องดูแลรักษา ปริมาณข้อมูลธุรกิจน้อยใช้งานได้เพียงพอ
- API คู่:
/api/v1สำหรับ UI,/agent/v1สำหรับการผสานรวม แยกการยืนยันตัวตนและสิทธิ์ออกจากกัน - Go ล้วน ไม่ใช้ CGO: cross-compile เป็นไบนารีแบบ static link ได้ในคลิกเดียวบนทุกแพลตฟอร์ม