แบ่งแอปพลิเคชันขนาดใหญ่ให้เป็นไมโครเซอร์วิสด้วย AWS Copilot, Amazon ECS, Docker และ AWS Fargate

บทแนะนำสอนการใช้งาน

ข้อมูลเบื้องต้น

ภาพรวม

ในบทแนะนำสอนการใช้งานนี้ คุณจะต้องติดตั้งแอปพลิเคชัน Node.js ขนาดใหญ่มากใน Docker Container แล้วปลดแอปพลิเคชันลงในไมโครเซอร์วิสโดยไม่ต้องให้ระบบหยุดทำงาน แอปพลิเคชัน Node.js จะโฮสต์กระดานข้อความทั่วไปที่มีเธรดและข้อความอื่น ๆ ระหว่างผู้ใช้

เหตุใดจึงสำคัญ

สถาปัตยกรรมขนาดใหญ่แบบดั้งเดิมนั้นวัดขนาดได้ยาก เมื่อฐานโค้ดของแอปพลิเคชันเพิ่มขึ้น ทำให้การอัปเดตและรักษามีความซับซ้อนยิ่งขึ้น การแนะนำฟีเจอร์ ภาษา เฟรมเวิร์ก และเทคโนโลยีใหม่เป็นเรื่องยากมาก ทำให้เกิดการจำกัดนวัตกรรมและแนวคิดใหม่ ๆ

องค์ประกอบของแอปพลิเคชันแต่ละตัวจะทำหน้าที่ของตนและสื่อสารกับหน้าที่อื่น ๆ ผ่าน API ที่กำหนดไว้อย่างชัดเจนภายในสถาปัตยกรรมแบบไมโครเซอร์วิสนี้ ไมโครเซอร์วิสจะสร้างขึ้นตามความสามารถของธุรกิจและแต่ละบริการที่ทำงานเป็นฟังก์ชันเดียว สามารถเขียนไมโครเซอร์วิสโดยใช้งานเฟรมเวิร์กหรือภาษาการเขียนโปรแกรมที่แตกต่างกันในการเขียนไมโครเซอร์วิสได้และคุณสามารถนำไปปรับใช้ได้อย่างอิสระเป็นบริการเดี่ยวหรือกลุ่มบริการก็ได้

สิ่งที่คุณจะได้

ในระหว่างบทแนะนำสอนการใช้งานนี้ เราจะสอนวิธีการเปิดใช้งานแอปพลิเคชันขนาดใหญ่แบบทั่วไปใน Docker Container โดยติดตั้งแอปพลิเคชันเดียวกับไมโครเซอร์วิส จากนั้นเปลี่ยนปริมาณการใช้งานเป็นไมโครเซอร์วิสโดยไม่มีเวลาหยุดทำงาน เมื่อเสร็จสิ้นแล้ว คุณสามารถใช้บทแนะนำสอนการใช้งานนี้และโค้ดภายในบทแนะนำเป็นเทมเพลตในการสร้างและติดตั้งไมโครเซอร์วิสที่มีในคอนเทนเนอร์ของคุณบน AWS ได้

สถาปัตยกรรมโมโนลิทิก

แอปพลิเคชัน Node.js ทั้งหมดทำงานในคอนเทนเนอร์เป็นบริการเดียว และแต่ละคอนเทนเนอร์มีคุณสมบัติเหมือนกันคอนเทนเนอร์อื่น ๆ ทั้งหมด หากคุณสมบัติหนึ่งในแอปพลิเคชันประสบปัญหาความต้องการสูงขึ้นอย่างฉับพลัน จะต้องทำการปรับขนาดสถาปัตยกรรมทั้งหมด

สถาปัตยกรรมไมโครเซอร์วิส

คุณสมบัติแต่ละรายการของแอปพลิเคชัน Node.js จะเรียกใช้บริการที่แยกกันภายในคอนเทนเนอร์ของตนเอง สามารถปรับขนาดและอัปเดตบริการได้โดยอิสระจากกัน

ข้อกำหนดเบื้องต้น

 ประสบการณ์การใช้งาน AWS

ระดับกลาง

 เวลาดำเนินการขั้นต่ำ

110 นาที

 ค่าใช้จ่ายในการดำเนินการ

สิทธิ์ใช้งานแบบ Free Tier

 ต้องมี

  • บัญชี AWS: หากคุณยังไม่มีบัญชี ให้ทำตามบทช่วยสอนการตั้งค่าสภาพแวดล้อม AWS ของคุณเพื่อดูภาพรวมโดยย่อ
  • ติดตั้งและกำหนดค่า AWS CLI
  • ติดตั้งและกำหนดค่า AWS Copilot
  • ติดตั้งและกำหนดค่า Docker
  • โปรแกรมแก้ไขข้อความ สำหรับบทช่วยสอนนี้ เราจะใช้ VS Code แต่คุณสามารถใช้ IDE ที่คุณต้องการได้ 

 บริการที่ใช้

 โค้ด

พร้อมใช้งานจาก AWS Labs บน GitHub

 อัปเดตล่าสุด

31 มีนาคม 2023

โมดูล

บทแนะนำสอนการใช้งานนี้แบ่งออกเป็นโมดูลต่อไปนี้ คุณต้องทำแต่ละโมดูลให้เสร็จก่อนที่จะทำอันต่อไป

  1. การตั้งค่า (20 นาที): ในโมดูลนี้ คุณได้ติดตั้งและกำหนดค่า AWS CLI, ติดตั้ง AWS Copilot และติดตั้ง Docker
  2. จัดคอนเทนเนอร์และปรับระบบแบบดั้งเดิม (30 นาที): ในโมดูลนี้ คุณได้จัดคอนเทนเนอร์แอปพลิเคชัน ใช้ AWS Copilot เพื่อสร้างอินสแตนซ์คลัสเตอร์ที่ได้รับการจัดการของอินสแตนซ์การประมวลผล EC2 และปรับใช้อิมเมจของคุณเป็นคอนเทนเนอร์ที่ทำงานบนคลัสเตอร์
  3. แบ่งระบบแบบดั้งเดิม (20 นาที): ในโมดูลนี้ คุณจะแบ่งแอปพลิเคชัน Node.js ออกเป็นหลาย ๆ บริการที่เชื่อมต่อระหว่างกัน และพุชอิมเมจของแต่ละบริการลงในคลังของ Amazon Elastic Container Registry (Amazon ECR)
  4. ปรับใช้ไมโครเซอร์วิส (30 นาที): ในโมดูลนี้ คุณจะได้ปรับใช้แอปพลิเคชัน Node.js ให้เป็นชุดของบริการที่เชื่อมต่อระหว่างกันเบื้องหลัง Application Load Balancer (ALB) จากนั้น คุณจะใช้ ALB เพื่อเปลี่ยนปริมาณการใช้งานจากระบบแบบดั้งเดิมเป็นไมโครเซอร์วิสโดยไม่มีการหยุดชะงัก
  5. ทำความสะอาด (10 นาที): ในโมดูลนี้ คุณจะเลิกใช้ทรัพยากรที่คุณสร้างขึ้นในระหว่างบทแนะนำสอนการใช้งานนี้ คุณจะหยุดบริการที่กำลังทำงานบน Amazon ECS ลบ ALB และลบสแตก AWS CloudFormation เพื่อเลิกใช้คลัสเตอร์ Amazon ECS รวมทั้งอินสแตนซ์ EC2 ทั้งหมดที่สนับสนุนการทำงาน

หน้านี้เป็นประโยชน์หรือไม่