تقسيم تطبيق Monolith إلى خدمات مصغرة باستخدام AWS Copilot وAmazon ECS وDocker وAWS Fargate

البرنامج التعليمي

مقدمة

نظرة عامة

في هذا البرنامج التعليمي، ستنشر تطبيق Node.js الموحد في حاوية Docker، ثم ستفصل التطبيق إلى خدمات مُصغّرة دون أي وقت تعطل. يستضيف تطبيق Node.js موقع رسائل بسيط يتضمن سلاسل ورسائل بين المستخدمين.

ما أهمية ذلك

يصعب توسيع البنيات الموحدة التقليدية. مع نمو قاعدة التعليمات البرمجية للتطبيق، أصبح من الصعب إجراء التحديث والصيانة. وصار تقديم الميزات واللغات وأطر العمل والتقنيات الجديدة أمرًا صعبًا للغاية، ما يحد من الابتكار والأفكار الجديدة.

ضمن بنية الخدمات المُصغّرة، يعمل كل مكون للتطبيق كخدمة خاصة به ويتواصل مع الخدمات الأخرى عبر واجهة برمجة تطبيقات محددة بشكل واضح. تتمحور الخدمات المُصغّرة حول القدرات التجارية، وتؤدي كل خدمة وظيفة واحدة. يمكن كتابة الخدمات المُصغّرة باستخدام أطر العمل ولغات برمجة مختلفة، ويمكنك نشرها بشكل مستقل، كخدمة واحدة أو كمجموعة من الخدمات.

ما ستحققه

خلال هذا البرنامج التعليمي، سنعرض لك كيفية تشغيل تطبيق موحد بسيط في حاوية Docker، ونشر التطبيق نفسه في صورة خدمات مُصغّرة، ثم تحويل الزيارات إلى الخدمات المُصغّرة دون أي وقت تعطل. وبعد الانتهاء، يمكنك استخدام هذا البرنامج التعليمي والتعليمات البرمجية المدمجة فيه كنموذج لبناء خدماتك المُصغّرة المعبئة الموجودة داخل حاويات في AWS ونشرها.

البنية المتجانسة

يعمل تطبيق Node.js بأكمله في حاوية كوحدة واحدة وتملك كل حاوية المميزات نفسها مثل بقية الحاويات. إذا شهدت إحدى ميزات التطبيق ارتفاعًا كبيرًا في الطلب، فيجب توسيع البنية بالكامل.

بنية الخدمات المُصغّرة

تعمل كل ميزة في تطبيق Node.js كخدمة منفصلة في حاويتها الخاصة. يمكن توسيع الخدمات وتحديثها بصورة منفصلة عن الخدمات الأخرى.

المتطلبات الأساسية

  • حساب AWS: إذا لم يكن لديك حساب بالفعل، فاتبع البرنامج التعليمي لإعداد بيئة AWS للحصول على نظرة عامة سريعة.
  • تثبيت وتكوين AWS CLI
  • تثبيت AWS Copilot وتكوينه
  • تثبيت Docker وتكوينه
  • محرر نصوص. في هذا البرنامج التعليمي، سنستخدم VS Code، ولكن يمكنك استخدام بيئة IDE المفضلة لديك.

 مستوى الخبرة في AWS

متوسط

 الحد الأدنى من الوقت للإكمال

110 دقيقة

 تكلفة الإكمال

 المتطلبات

  • حساب AWS: إذا لم يكن لديك حساب بالفعل، فاتبع البرنامج التعليمي لإعداد بيئة AWS للحصول على نظرة عامة سريعة.
  • تثبيت وتكوين AWS CLI
  • تثبيت AWS Copilot وتكوينه
  • تثبيت Docker وتكوينه
  • محرر نصوص. في هذا البرنامج التعليمي، سنستخدم VS Code، ولكن يمكنك استخدام بيئة IDE المفضلة لديك. 

 الخدمات المستخدمة

 التعليمات البرمجية

متاح من مختبرات AWS على GitHub

 آخر تحديث

31 مارس/آذار 2023

الوحدات

ينقسم هذا البرنامج التعليمي إلى الوحدات التالية. يجب إكمال كل وحدة قبل الانتقال إلى الوحدة التالية.

  1. الإعداد (20 دقيقة): في هذه الوحدة، ستقوم بتثبيت AWS CLI وتكوينه وتثبيت AWS Copilot وتثبيت Docker.
  2. تحميل monolith في حاويات ونشره (30 دقيقة): في هذه الوحدة، ستقوم بتجميع التطبيق في حاويات، واستخدام AWS Copilot لإنشاء مثيل لمجموعة مُدارة من مثيلات حساب EC2، ونشر صورتك كحاوية تعمل على المجموعة.
  3. تقسيم تطبيق Monolith (20 دقيقة): في هذه الخطوة، ستقسم تطبيق Node.js إلى عدة خدمات مترابطة وستضع كل صورة من صور الخدمة في مستودع سجل الحاويات المرن بـ Amazon‏ (Amazon ECR).
  4. نشر الخدمات المصغرة (30 دقيقة): في هذه الوحدة، ستنشر تطبيق node.js كمجموعة من الخدمات المتصلة داخليًا خلف Application Load Balancer (ALB). وبعد ذلك، ستستخدم ALB لنقل حركة البيانات من التطبيق الموحد إلى الخدمات المُصغَّرة بسلاسة.
  5. التنظيف (10 دقائق): في هذه الوحدة، ستنهي الموارد التي أنشأتها أثناء هذا البرنامج التعليمي. ستقوم بإيقاف الخدمات التي تعمل على Amazon ECS، وحذف ALB، وحذف حزمة AWS CloudFormation لإنهاء مجموعة Amazon ECS، بما في ذلك جميع مثيلات EC2 الأساسية.

هل استفدت من هذه الصفحة؟