เอกสารฉบับนี้จัดทำขึ้นเพื่อสรุปผลการวิเคราะห์และออกแบบสถาปัตยกรรมโครงสร้างพื้นฐานของระบบ โดยมีวัตถุประสงค์เพื่อแบ่งแยกภาระงาน (Workload) และลดความเสี่ยงที่อาจเกิดขึ้นจากการดำเนินงานส่วนต่างๆ ผลการวิเคราะห์นำเสนอโครงสร้างแบบ 2-Host ซึ่งแต่ละ Host มีหน้าที่และความรับผิดชอบที่ชัดเจน เพื่อให้ระบบโดยรวมมีเสถียรภาพ ความปลอดภัย และประสิทธิภาพสูงสุด
สถาปัตยกรรมที่นำเสนอประกอบด้วยเซิร์ฟเวอร์ (Host) จำนวน 2 ระบบ โดยมีการแบ่งหน้าที่หลักออกเป็น "ส่วนปฏิสัมพันธ์กับผู้ใช้" (Web-Facing) และ "ส่วนประมวลผลเบื้องหลัง" (Backend Processing) การแบ่งแยกนี้ช่วยให้สามารถบริหารจัดการทรัพยากรและขยายระบบ (Scalability) ได้อย่างมีประสิทธิภาพ
บทบาทหลัก: รับผิดชอบการทำงานที่เกี่ยวข้องกับการโต้ตอบกับผู้ใช้โดยตรง (User-facing services) และการจัดการข้อมูลหลักของระบบ
การติดตั้งระบบฐานข้อมูลบน Host เดียวกันกับ Web Application เป็นการออกแบบที่มุ่งเน้นการลดค่าความหน่วงของเครือข่าย (Network Latency) ให้ต่ำที่สุด ส่งผลให้การตอบสนองต่อผู้ใช้เป็นไปอย่างรวดเร็ว เนื่องจากแอปพลิเคชันสามารถเรียกใช้ข้อมูลจากฐานข้อมูลได้ภายในเครื่องเดียวกัน ซึ่งเป็นปัจจัยสำคัญต่อประสบการณ์ผู้ใช้ (User Experience)
flowchart TD
subgraph host1 ["Host 1 (Web-Facing & Data Host)"]
direction LR
U["👤
User"] --> WA["🌐
Web Application"]
WA <--> PG["🐘
PostgreSQL"]
WA <--> AR["🥑
ArangoDB"]
end
subgraph host2 ["Host 2 (Backend Processing Host)"]
direction LR
S["🤖
Selenium"] --> EW["🌍
External Websites"]
AI["🧠
AI Services
(Ollama, Embeddings)"]
end
WA -.->|"API Call"| AI
style U fill:#e3f2fd,stroke:#333,stroke-width:2px
style WA fill:#c8e6c9,stroke:#333,stroke-width:2px
style PG fill:#b3e5fc,stroke:#333,stroke-width:2px
style AR fill:#f0f4c3,stroke:#333,stroke-width:2px
style S fill:#ffcdd2,stroke:#333,stroke-width:2px
style AI fill:#ffecb3,stroke:#333,stroke-width:2px
style EW fill:#eee,stroke:#333,stroke-width:2px
บทบาทหลัก: รับผิดชอบงานประมวลผลที่ใช้ทรัพยากรสูง (Computationally Intensive) และงานที่มีความเสี่ยงสูงต่อการถูกจำกัดการเข้าถึงจากภายนอก
Ollama และ Embeddings APIสถาปัตยกรรมแบบ 2-Host ที่นำเสนอนี้เป็นการแบ่งแยกหน้าที่ความรับผิดชอบ (Separation of Concerns) ที่ชัดเจน ส่งผลให้ระบบมีความยืดหยุ่น (Flexibility) ปลอดภัย (Security) และง่ายต่อการบำรุงรักษาและขยายระบบในอนาคต โดย Host 1 มุ่งเน้นที่ความเร็วในการตอบสนองต่อผู้ใช้ ในขณะที่ Host 2 ทำหน้าที่เป็นหน่วยประมวลผลเบื้องหลังที่ทรงพลังและแยกออกจากความเสี่ยงภายนอก