การสร้างแพลตฟอร์ม EdTech โดยใช้ Microservices และ Docker
คำอธิบายโครงการ
โครงการประกอบด้วยไมโครเซิร์ตสามแห่งคือ:
- ผู้ใช้ microservice
- หลักสูตร microservice
- microservice การลงทะเบียน
Microservice ผู้ใช้ ช่วยในการลงทะเบียนผู้ใช้ในแอปพลิเคชัน จากนั้นจะช่วยให้ผู้ใช้เข้าสู่ระบบบัญชีของเขาและมีเซสชันแยกต่างหากสำหรับตัวเอง microservice นี้มีฐานข้อมูลอิสระ (ในกรณีนี้ฐานข้อมูล MongoDB) ซึ่งรับผิดชอบในการรักษาข้อมูลรับรองผู้ใช้เท่านั้น รหัสผ่านที่เก็บไว้ในฐานข้อมูลจะถูกรวมเข้าด้วยกันและทำให้มั่นใจได้ถึงความปลอดภัยของผู้ใช้ที่ลงทะเบียนบนเว็บแอป
หลักสูตร Microservice ช่วยให้ผู้ใช้เข้าสู่ระบบสามารถลงทะเบียนเข้าสู่หลักสูตรเฉพาะ ผู้ใช้ที่เข้าสู่ระบบสามารถเรียนรู้ได้อย่างรวดเร็วจากหลักสูตรที่ลงทะเบียน คุณสมบัติที่เป็นเอกลักษณ์ที่เว็บแอปนี้มีคือผู้ใช้ทุกคนได้รับอนุญาตให้อัปโหลดหลักสูตรของตนเองซึ่งแตกต่างจากเว็บแอปพลิเคชันการศึกษาแบบดั้งเดิม ผู้ใช้ทุกคนสามารถอัปโหลดเนื้อหาเพื่อให้ผู้ใช้รายอื่นเรียนรู้ได้
Microservice การลงทะเบียน โดยทั่วไปจะโอนคำขอ API ไปยังบริการชำระเงินของบุคคลที่สามและจะดูแลการชำระเงินทั้งหมดที่ผู้ใช้ทำและช่วยในการเปิดใช้งานการเข้าถึงหลักสูตรเฉพาะสำหรับผู้ใช้
วิธีเรียกใช้โครงการนี้ในพื้นที่?
- โคลนที่เก็บนี้
- ตรวจสอบให้แน่ใจว่าคุณมีไฟล์ ".env" ใน codebase ของคุณ อัปเดตเนื้อหาในไฟล์ Env เพื่อรวม RazorPay KeyID และ Secret_key ของคุณ
- ป้อน URL Cloudinary สำหรับโครงการของคุณโดยแก้ไข JS -> Script.js -> <Cloudinary_url>
- ติดตั้งนักเทียบท่าและเริ่ม
- ใช้เทอร์มินัลและเขียนคำสั่งต่อไปนี้
docker-compose up --build --remove-orphans
- นำทางไปที่ http: // localhost: 5000 เพื่อค้นหาเว็บไซต์และทำงาน
URL เว็บไซต์
URL เว็บไซต์สด: http://129.213.124.99:5000/
แพลตฟอร์มคลาวด์: โครงสร้างพื้นฐานคลาวด์ Oracle
วิดีโอ
วิดีโอและคำอธิบายโดยละเอียด: https://drive.google.com/file/d/1fmqwxorlnv5u1ksagilcfcrnljfw6gn8/view?usp=sharing
วิดีโอสั้น ๆ : https://drive.google.com/file/d/1EYQW0__SEJBI9ONPOAK35RZRSOZPD8WG/VIEW?USP=SHARING
วิธีการปรับใช้เว็บไซต์บนคลาวด์?
- สร้างบัญชี Oracle Cloud โดยใช้การสมัครสมาชิกระดับฟรี (ถ้าจำเป็น)
- สร้างเครือข่ายคลาวด์เสมือน (VCN)
- กำหนดค่ารายการความปลอดภัยเริ่มต้นสำหรับ VCN โดยการเพิ่มกฎ Ingress สำหรับพอร์ต 22, 80 เพิ่มพอร์ตที่คุณจะใช้สำหรับโครงการ ตัวอย่างเช่นในโครงการนี้เรามีพอร์ต 5000, 5001, 7000, 30002
- สร้างและเชื่อมต่อกับอินสแตนซ์คลาวด์
- ติดตั้ง Git, Docker และ Docker-compose บนเทอร์มินัลอินสแตนซ์คลาวด์
- โคลนที่เก็บนี้และเรียกใช้
docker-compose up --build -d
- ตั้งค่าไฟร์วอลล์โดยใช้คำสั่งต่อไปนี้:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=5000/tcp <ALL REQUIRED PORTS>
sudo firewall-cmd --reload
- ไปที่ IP สาธารณะของคุณ: พอร์ต! voila เว็บไซต์ของคุณถูกปรับใช้บนคลาวด์! -
เอกสารทางเทคนิค
กระดาษนำเสนอในการประชุม IEEE Pune โดย @Aparna0522 (Aparna Naik) ในเดือนธันวาคม 2564
กระดาษที่เผยแพร่ใน IEEE Xplore เมื่อวันที่ 31 มกราคม 2565
ลิงค์กระดาษ: https://ieeexplore.ieee.org/document/9686535
เอกลักษณ์ของแอปพลิเคชัน
- แอปพลิเคชันนี้อนุญาตให้ผู้ใช้ทุกคนอัปโหลดหลักสูตรของเขาเพื่อให้ผู้อื่นสามารถเรียนรู้ได้จากหลักสูตรเดียวกัน (มุมมองของผู้ใช้)
- แอปพลิเคชันนี้ใช้สถาปัตยกรรม Microservices ซึ่งทำให้สามารถปรับขนาดได้พึ่งพาและแข็งแกร่งเมื่อเทียบกับแอปพลิเคชันสถาปัตยกรรมเสาหิน (มุมมองด้านเทคโนโลยี)
งานในอนาคต
- ให้เพื่อนร่วมงานเชื่อมต่อแบบตัวต่อตัวเครือข่ายเรียนรู้และเติบโตไปด้วยกันโดยรวมบริการแชท (อนุญาตให้ผู้ใช้ที่ลงทะเบียนเท่านั้นเห็นผู้ใช้รายอื่นและซ่อนรายละเอียดตัวตนเว้นแต่ผู้ใช้ต้องการเป็นอย่างอื่น)
- ความสามารถสำหรับผู้สอนในการสร้างแบบสอบถามเพื่อการประเมินที่ง่าย
- สามารถเพิ่มระบบตรวจสอบการวิเคราะห์บางอย่างสำหรับผู้อัปโหลดหลักสูตร
- บริการแนะนำ
- บริการแจ้งเตือนหลักสูตรใหม่
คุณสมบัติที่สำคัญของแอปพลิเคชัน:
- เป็นอิสระจาก microservices อื่น ๆ
- หากบริการหนึ่งหยุดทำงานจะไม่ส่งผลกระทบต่อบริการอื่น ๆ
- การปรับขนาดของบริการ
- มีประสิทธิภาพ.
- Portablity