เอกสารนี้แปลโดย AI สำหรับข้อมูลที่ถูกต้อง กรุณาดูเวอร์ชันภาษาอังกฤษ
โหมดหลายแอปพลิเคชันแบบหน่วยความจำร่วม (Shared memory) มีข้อดีที่ชัดเจนในการปรับใช้และการดูแลรักษา แต่เมื่อจำนวนแอปพลิเคชันและความซับซ้อนของธุรกิจเพิ่มขึ้น อินสแตนซ์เดียวอาจเผชิญกับปัญหาการแย่งชิงทรัพยากรและความเสถียรที่ลดลง สำหรับสถานการณ์ประเภทนี้ ผู้ใช้สามารถเลือกใช้โซลูชันการปรับใช้แบบผสมผสานหลายสภาพแวดล้อมเพื่อรองรับความต้องการทางธุรกิจที่ซับซ้อนยิ่งขึ้นได้ครับ
ในโหมดนี้ ระบบจะปรับใช้แอปทางเข้า (Entry application) หนึ่งแอปเพื่อทำหน้าที่เป็นศูนย์กลางการจัดการและการจัดตารางเวลาแบบรวมศูนย์ ในขณะเดียวกันก็ปรับใช้ NocoBase หลายอินสแตนซ์เป็นสภาพแวดล้อมการรันแอปพลิเคชันที่เป็นอิสระ ซึ่งทำหน้าที่รองรับแอปพลิเคชันทางธุรกิจจริง แต่ละสภาพแวดล้อมจะแยกออกจากกันและทำงานร่วมกัน ซึ่งช่วยกระจายแรงกดดันของอินสแตนซ์เดียวได้อย่างมีประสิทธิภาพ และเพิ่มความเสถียร ความสามารถในการขยายระบบ และความสามารถในการแยกส่วนข้อผิดพลาดของระบบได้อย่างมากครับ
ในระดับการปรับใช้ สภาพแวดล้อมที่แตกต่างกันสามารถรันในโปรเซสที่เป็นอิสระ หรือปรับใช้เป็นคอนเทนเนอร์ Docker ที่แตกต่างกัน หรืออยู่ในรูปแบบของ Kubernetes Deployment หลายรายการ ซึ่งสามารถปรับให้เข้ากับสภาพแวดล้อมโครงสร้างพื้นฐานที่มีขนาดและสถาปัตยกรรมที่แตกต่างกันได้อย่างยืดหยุ่นครับ
ภายใต้โหมดการปรับใช้แบบผสมผสานหลายสภาพแวดล้อม:
ในปัจจุบันยังไม่มีฟังก์ชันการสร้างสภาพแวดล้อม แอป Worker แต่ละแอปจำเป็นต้องได้รับการปรับใช้ด้วยตนเองและกำหนดค่าข้อมูลสภาพแวดล้อมที่เกี่ยวข้องก่อนที่แอปทางเข้าจะสามารถระบุได้ครับ
กรุณาเตรียมบริการต่อไปนี้ให้พร้อมก่อนการปรับใช้:
Redis
ฐานข้อมูล
แอปทางเข้าทำหน้าที่เป็นศูนย์กลางการจัดการแบบรวมศูนย์ รับผิดชอบในการสร้างแอป, การเริ่ม, การหยุด และการจัดตารางสภาพแวดล้อม รวมถึงพร็อกซีการเข้าถึงแอปพลิเคชันครับ
คำอธิบายการกำหนดค่าตัวแปรสภาพแวดล้อมของแอปทางเข้า
แอป Worker ทำหน้าที่เป็นสภาพแวดล้อมการรันธุรกิจจริง รับผิดชอบในการรองรับและรันอินสแตนซ์แอปพลิเคชัน NocoBase ที่เฉพาะเจาะจงครับ
คำอธิบายการกำหนดค่าตัวแปรสภาพแวดล้อมของแอป Worker
ตัวอย่างต่อไปนี้แสดงโซลูชันการปรับใช้แบบผสมผสานหลายสภาพแวดล้อมโดยใช้คอนเทนเนอร์ Docker เป็นหน่วยการรัน โดยปรับใช้แอปทางเข้าหนึ่งแอปและแอป Worker สองแอปพร้อมกันผ่าน Docker Compose ครับ
การจัดการพื้นฐานของแอปพลิเคชันไม่แตกต่างจากโหมดหน่วยความจำร่วม โปรดอ้างอิงจาก โหมดหน่วยความจำร่วม ส่วนนี้จะแนะนำเนื้อหาที่เกี่ยวข้องกับการกำหนดค่าหลายสภาพแวดล้อมเป็นหลักครับ
หลังจากปรับใช้เสร็จสิ้น ให้เข้าสู่หน้า "App Supervisor" ของแอปทางเข้า คุณสามารถดูรายการสภาพแวดล้อมการทำงานที่ลงทะเบียนไว้ได้ในแท็บ "สภาพแวดล้อม" (Environments) ซึ่งรวมถึงข้อมูลต่างๆ เช่น รหัสสภาพแวดล้อม, เวอร์ชันของแอป Worker, URL การเข้าถึง และสถานะ แอป Worker จะรายงาน Heartbeat ทุกๆ 2 นาทีเพื่อให้แน่ใจว่าสภาพแวดล้อมพร้อมใช้งานครับ

เมื่อสร้างแอปพลิเคชัน คุณสามารถเลือกสภาพแวดล้อมการรันได้ตั้งแต่หนึ่งสภาพแวดล้อมขึ้นไป เพื่อระบุว่าแอปพลิเคชันนี้จะถูกปรับใช้ในแอป Worker ใด โดยปกติแนะนำให้เลือกเพียงสภาพแวดล้อมเดียว เฉพาะในกรณีที่แอป Worker มีการทำ การแยกบริการ (Service splitting) และจำเป็นต้องปรับใช้แอปพลิเคชันเดียวกันในหลายสภาพแวดล้อมเพื่อกระจายโหลดหรือแยกความสามารถเท่านั้น จึงจะเลือกหลายสภาพแวดล้อมครับ

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

เนื่องจากการเริ่มแอปพลิเคชันอาจมีการเขียนข้อมูลเริ่มต้นลงในฐานข้อมูล เพื่อหลีกเลี่ยงสภาวะการแย่งชิง (Race condition) ในสภาพแวดล้อมที่หลากหลาย แอปพลิเคชันที่ปรับใช้ในหลายสภาพแวดล้อมจะเข้าคิวเพื่อเริ่มทำงานครับ

แอป Worker สามารถเข้าถึงผ่านพร็อกซีได้โดยใช้เส้นทางย่อย /apps/:appName/admin ของแอปทางเข้าครับ

หากแอปพลิเคชันถูกปรับใช้ในหลายสภาพแวดล้อม จำเป็นต้องระบุสภาพแวดล้อมเป้าหมายสำหรับการเข้าถึงผ่านพร็อกซีครับ

โดยค่าเริ่มต้น ที่อยู่การเข้าถึงพร็อกซีจะใช้ที่อยู่การเข้าถึงของแอป Worker ซึ่งตรงกับตัวแปรสภาพแวดล้อม ENVIRONMENT_URL โดยต้องแน่ใจว่าที่อยู่นี้สามารถเข้าถึงได้ในสภาพแวดล้อมเครือข่ายที่แอปทางเข้าตั้งอยู่ หากต้องการใช้ที่อยู่การเข้าถึงพร็อกซีที่แตกต่างกัน สามารถเขียนทับได้ผ่านตัวแปรสภาพแวดล้อม ENVIRONMENT_PROXY_URL ครับ