แบ่งแอปพลิเคชันขนาดใหญ่ให้เป็นไมโครเซอร์วิสด้วย AWS Copilot, Amazon ECS, Docker และ AWS Fargate
บทแนะนำสอนการใช้งาน
ข้อมูลเบื้องต้น
ภาพรวม
ในบทแนะนำสอนการใช้งานนี้ คุณจะต้องติดตั้งแอปพลิเคชัน Node.js ขนาดใหญ่มากใน Docker Container แล้วปลดแอปพลิเคชันลงในไมโครเซอร์วิสโดยไม่ต้องให้ระบบหยุดทำงาน แอปพลิเคชัน Node.js จะโฮสต์กระดานข้อความทั่วไปที่มีเธรดและข้อความอื่น ๆ ระหว่างผู้ใช้
เหตุใดจึงสำคัญ
สถาปัตยกรรมขนาดใหญ่แบบดั้งเดิมนั้นวัดขนาดได้ยาก เมื่อฐานโค้ดของแอปพลิเคชันเพิ่มขึ้น ทำให้การอัปเดตและรักษามีความซับซ้อนยิ่งขึ้น การแนะนำฟีเจอร์ ภาษา เฟรมเวิร์ก และเทคโนโลยีใหม่เป็นเรื่องยากมาก ทำให้เกิดการจำกัดนวัตกรรมและแนวคิดใหม่ ๆ
องค์ประกอบของแอปพลิเคชันแต่ละตัวจะทำหน้าที่ของตนและสื่อสารกับหน้าที่อื่น ๆ ผ่าน API ที่กำหนดไว้อย่างชัดเจนภายในสถาปัตยกรรมแบบไมโครเซอร์วิสนี้ ไมโครเซอร์วิสจะสร้างขึ้นตามความสามารถของธุรกิจและแต่ละบริการที่ทำงานเป็นฟังก์ชันเดียว สามารถเขียนไมโครเซอร์วิสโดยใช้งานเฟรมเวิร์กหรือภาษาการเขียนโปรแกรมที่แตกต่างกันในการเขียนไมโครเซอร์วิสได้และคุณสามารถนำไปปรับใช้ได้อย่างอิสระเป็นบริการเดี่ยวหรือกลุ่มบริการก็ได้
สิ่งที่คุณจะได้
ในระหว่างบทแนะนำสอนการใช้งานนี้ เราจะสอนวิธีการเปิดใช้งานแอปพลิเคชันขนาดใหญ่แบบทั่วไปใน Docker Container โดยติดตั้งแอปพลิเคชันเดียวกับไมโครเซอร์วิส จากนั้นเปลี่ยนปริมาณการใช้งานเป็นไมโครเซอร์วิสโดยไม่มีเวลาหยุดทำงาน เมื่อเสร็จสิ้นแล้ว คุณสามารถใช้บทแนะนำสอนการใช้งานนี้และโค้ดภายในบทแนะนำเป็นเทมเพลตในการสร้างและติดตั้งไมโครเซอร์วิสที่มีในคอนเทนเนอร์ของคุณบน AWS ได้
สถาปัตยกรรมโมโนลิทิก
แอปพลิเคชัน Node.js ทั้งหมดทำงานในคอนเทนเนอร์เป็นบริการเดียว และแต่ละคอนเทนเนอร์มีคุณสมบัติเหมือนกันคอนเทนเนอร์อื่น ๆ ทั้งหมด หากคุณสมบัติหนึ่งในแอปพลิเคชันประสบปัญหาความต้องการสูงขึ้นอย่างฉับพลัน จะต้องทำการปรับขนาดสถาปัตยกรรมทั้งหมด
สถาปัตยกรรมไมโครเซอร์วิส
คุณสมบัติแต่ละรายการของแอปพลิเคชัน Node.js จะเรียกใช้บริการที่แยกกันภายในคอนเทนเนอร์ของตนเอง สามารถปรับขนาดและอัปเดตบริการได้โดยอิสระจากกัน
ข้อกำหนดเบื้องต้น
- บัญชี AWS: หากคุณยังไม่มีบัญชี ให้ทำตามบทช่วยสอนการตั้งค่าสภาพแวดล้อม AWS ของคุณเพื่อดูภาพรวมโดยย่อ
- ติดตั้งและกำหนดค่า AWS CLI
- ติดตั้งและกำหนดค่า AWS Copilot
- ติดตั้งและกำหนดค่า Docker
- โปรแกรมแก้ไขข้อความ สำหรับบทช่วยสอนนี้ เราจะใช้ VS Code แต่คุณสามารถใช้ IDE ที่คุณต้องการได้
ประสบการณ์การใช้งาน AWS
ระดับกลาง
เวลาดำเนินการขั้นต่ำ
110 นาที
ค่าใช้จ่ายในการดำเนินการ
สิทธิ์ใช้งานแบบ Free Tier
ต้องมี
- บัญชี AWS: หากคุณยังไม่มีบัญชี ให้ทำตามบทช่วยสอนการตั้งค่าสภาพแวดล้อม AWS ของคุณเพื่อดูภาพรวมโดยย่อ
- ติดตั้งและกำหนดค่า AWS CLI
- ติดตั้งและกำหนดค่า AWS Copilot
- ติดตั้งและกำหนดค่า Docker
- โปรแกรมแก้ไขข้อความ สำหรับบทช่วยสอนนี้ เราจะใช้ VS Code แต่คุณสามารถใช้ IDE ที่คุณต้องการได้
บริการที่ใช้
โค้ด
อัปเดตล่าสุด
โมดูล
บทแนะนำสอนการใช้งานนี้แบ่งออกเป็นโมดูลต่อไปนี้ คุณต้องทำแต่ละโมดูลให้เสร็จก่อนที่จะทำอันต่อไป
- การตั้งค่า (20 นาที): ในโมดูลนี้ คุณได้ติดตั้งและกำหนดค่า AWS CLI, ติดตั้ง AWS Copilot และติดตั้ง Docker
- จัดคอนเทนเนอร์และปรับระบบแบบดั้งเดิม (30 นาที): ในโมดูลนี้ คุณได้จัดคอนเทนเนอร์แอปพลิเคชัน ใช้ AWS Copilot เพื่อสร้างอินสแตนซ์คลัสเตอร์ที่ได้รับการจัดการของอินสแตนซ์การประมวลผล EC2 และปรับใช้อิมเมจของคุณเป็นคอนเทนเนอร์ที่ทำงานบนคลัสเตอร์
- แบ่งระบบแบบดั้งเดิม (20 นาที): ในโมดูลนี้ คุณจะแบ่งแอปพลิเคชัน Node.js ออกเป็นหลาย ๆ บริการที่เชื่อมต่อระหว่างกัน และพุชอิมเมจของแต่ละบริการลงในคลังของ Amazon Elastic Container Registry (Amazon ECR)
- ปรับใช้ไมโครเซอร์วิส (30 นาที): ในโมดูลนี้ คุณจะได้ปรับใช้แอปพลิเคชัน Node.js ให้เป็นชุดของบริการที่เชื่อมต่อระหว่างกันเบื้องหลัง Application Load Balancer (ALB) จากนั้น คุณจะใช้ ALB เพื่อเปลี่ยนปริมาณการใช้งานจากระบบแบบดั้งเดิมเป็นไมโครเซอร์วิสโดยไม่มีการหยุดชะงัก
- ทำความสะอาด (10 นาที): ในโมดูลนี้ คุณจะเลิกใช้ทรัพยากรที่คุณสร้างขึ้นในระหว่างบทแนะนำสอนการใช้งานนี้ คุณจะหยุดบริการที่กำลังทำงานบน Amazon ECS ลบ ALB และลบสแตก AWS CloudFormation เพื่อเลิกใช้คลัสเตอร์ Amazon ECS รวมทั้งอินสแตนซ์ EC2 ทั้งหมดที่สนับสนุนการทำงาน