ระบบสมุดเยี่ยม G2
Production-Ready Backend System · พัฒนาต่อจากโครงงาน G1
ระบบนี้ต่างจาก G1 อย่างไร
G1 เป็น ASP.NET Web Forms ที่หน้าเว็บ ตรรกะธุรกิจ และการต่อฐานข้อมูล อยู่ในโปรเซสเดียวกันทั้งหมด G2 แยกออกเป็นสามชั้นที่คุยกันด้วย HTTP และรันคนละคอนเทนเนอร์ โดยมีเพียงชั้นเดียวที่ต่อฐานข้อมูลได้
สถาปัตยกรรมตาม Layer Defense Model
External Zone
เบราว์เซอร์ และโปรแกรมเดสก์ท็อป (.NET WinForms) เรียกเข้ามาผ่าน HTTPS เท่านั้น ทุกอย่างในโซนนี้ผู้ใช้แก้ไขได้ จึงไม่เชื่อถือ
DMZ Zone
เว็บนี้และ Presentation API — ตรวจ JWT จำกัดอัตราการเรียก และไม่มีไลบรารีต่อฐานข้อมูลอยู่ใน container เลย
Application Tier
Application API และ Business Logic — ชั้นเดียวที่ตัดสินสิทธิ์ และคุยกับฐานข้อมูล รับคำขอเฉพาะที่มีกุญแจภายในเท่านั้น
Data Tier
SQL Server — อยู่ในเครือข่ายที่ไม่มีทางออกอินเทอร์เน็ต และเข้าถึงได้จาก Application Tier เท่านั้น