أهم أدوات الخدمات المصغرة التي يجب أن تعرفها في عام 2019



هذه المقالة عبارة عن دليل شامل حول أفضل أدوات الخدمات المصغرة التي يجب أن تعرفها لإدارة وإنشاء تطبيق باستخدام بنية الخدمات المصغرة.

الخدمات المصغرة هي أسلوب معماري يمكنك من خلاله إنشاء تطبيقات أعمال صغيرة إلى معقدة. لبناء تطبيقات بهذا النمط المعماري بحاجة إلى أدوات وتقنيات لبناء هذه الخدمات ومراقبتها. لذلك ، في هذه المقالة حول أدوات الخدمات المصغرة ، سأناقش الأدوات المختلفة التي يمكنك استخدامها لبناء هذه الخدمات المستقلة.

سيتم تناول الموضوعات التالية في هذه المقالة:





  1. ما هي الخدمات المصغرة؟
  2. أدوات الخدمات المصغرة:

قبل ذلك ، نبدأ في مناقشة الأدوات والتقنيات المستخدمة لإنشاء تطبيق باستخدام الخدمات المصغرة ، دعني أخبرك ما هي الخدمات المصغرة.

ما هي الخدمات المصغرة؟

Microservices ، ويعرف أيضا باسم بنية الخدمات المصغرة ، هو أسلوب معماري يبني تطبيقًا كمجموعة من الخدمات المستقلة الصغيرة ، على غرار أ مجال العمل. لذلك ، يمكنك فهم الخدمات المصغرة باعتبارها خدمات فردية صغيرة تتواصل مع بعضها البعض حول منطق العمل الفردي. إذا كنت ترغب في معرفة المزيد عن الخدمات المصغرة بشكل متعمق ، فيمكنك ذلك



الآن ، بعد أن أصبحت لديك فكرة عن الخدمات المصغرة ، فلنلقِ نظرة على الأدوات المستخدمة في الخدمات المصغرة.

تطبيقات تحليل البيانات الضخمة

أدوات الخدمات المصغرة

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

لذلك ، سننظر في أدوات الخدمات المصغرة المستخدمة لمختلف ، مثل



نظام التشغيل

شعار Linux - أدوات الخدمات المصغرة - Edurekaأحد العوامل المهمة جدًا لبناء تطبيق هو وضع أساس مناسب لتطبيقك. حسنًا ، يتم ذلك بواسطة نظام التشغيل. هو أحد أنظمة التشغيل ، الأكثر استخدامًا أثناء إنشاء التطبيقات. بمساعدة حاويات Linux ، فإنه يوفر بيئة تنفيذ قائمة بذاتها ويتيح لك تنسيق الخدمات الصغيرة إلى الكبيرة مثل الأمان والشبكات والتخزين. لذا ، إذا سألتني عن خيارات أفضل من العائلة ، ثم أشعر أن Red Hat و Ubuntu مليئين بأنظمة التشغيل بوظائف غير ضرورية. بصرف النظر عن هؤلاء ، توصل موفرو Linux إلى أدوات مثل Atomic Red Hat و Ubuntu بما في ذلك LXD ، وهو برنامج Hypervisor موجه للحاويات.

لغات البرمجة

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

حذاء الربيع

يبسط Spring Boot عملية إنشاء ملفات بمساعدة Spring Bootالأطر في بضعة أسطر من التعليمات البرمجية. فيما يلي بعض ميزات Spring Boot:

  • يوفر التكوين التلقائي لتحميل مجموعة من التكوين الافتراضي لبدء سريع للتطبيق
  • يأتي مع رصيف حاويات قطط ، سيرفليت لتجنب استخدام ملفات الحرب
  • يوفر Spring Boot عرضًا عنيدًا لتقليل جهد المطور وتبسيط التكوينات المخضرمة
  • يتكون من مجموعة واسعة من واجهات برمجة التطبيقات لمراقبة وإدارة التطبيقات في dev و prod.

إكسير

Elixir هي لغة برمجة للأغراض العامة تعمل علىآلة افتراضية Erlang. يشترك Elixir في نفس الأفكار المجردة لبناء تطبيقات موزعة ومتسامحة مع الأخطاء. فيما يلي بعض ميزات الإكسير:

  • يمكن للمطورين بسهولة كتابة التعليمات البرمجية بطريقة قصيرة وسريعة ويمكن صيانتها.
  • يعمل كود Elixir داخل عمليات معزولة خفيفة الوزن يمكن تحجيمها بشكل فردي.
  • تتأكد إليكسير من عدم توقف التطبيق أبدًا عن طريق توفير مشرفين. يصف هؤلاء المشرفون كيف يمكن إعادة تشغيل أجزاء مختلفة من النظام إذا حدث خطأ ما.
  • تأتي لغة البرمجة هذه مع أدوات البناء الخاصة بها لإنشاء المشاريع وإدارة المهام وإجراء الاختبارات المطلوبة.

أدوات لإدارة واختبار API

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

الأدوات المستخدمة لإدارة واختبار API هي كما يلي:

ساعي البريد

Postman عبارة عن مجموعة تطوير API تسمح لك بإجراء اختبارات واجهة برمجة التطبيقات التي تعتمد على واجهة المستخدم بسهولة. بمساعدة Postman ، تم استكشاف يصبح سهلا للغاية. أيضًا ، بمساعدة Postman ، يمكنك تمرير طلبات HTTP للاختبار والتطوير والحصول على النتائج المطلوبة.فيما يلي بعض ميزاته:

  • يتكامل ساعي البريد مع دورة حياة تطوير البرامج الخاصة بك بسهولة.
  • يوفر ميزات لتصميم واجهات برمجة التطبيقات والحفاظ على إصدارات متعددة من API مع الدعم.
  • يمكن أن تعمل هذه الأداة لتطبيق صغير لتطبيق كبير.
  • وهو يدعم التعاون في العمل من خلال السماح لك بحفظ نقاط نهاية API ذات الصلة في مجموعة. ثم يمكنك المضي قدمًا ومشاركة المجموعة بأكملها مع مطورين آخرين.

قلعة API

API Fortress عبارة عن اختبار API وأدوات صحية تعمل على أتمتة عملية والمراقبة الصحية و . هذه الأداة خالية من التعليمات البرمجية وهي مبنية على أنماط وممارسات معمارية حديثة لواجهة برمجة التطبيقات. فيما يلي بعض ميزات API Fortress:

  • هذه الأداة قابلة للتشغيل البيني بشكل كبير مع أي نظام أساسي تختاره في سلسلة الأدوات الخاصة بك وتتحقق من صحة منصات إدارة API المدمجة

  • يبسط إنشاء اختبار API وتنفيذها من خلال توفير واجهة المستخدم الرسومية بالسحب والإفلات.

  • تعمل هذه الأداة أيضًا على تبسيط الاختبار الشامل من خلال توفير سهولة إنشاء الاختبارات الوظيفية.

  • تهدف API Fortress أيضًا إلى تبسيط التعاون من خلال تخزين الاختبارات والتقارير في بيئة تعاونية ، للتأكد من أن الفرق تتحقق من صحة واجهات برمجة التطبيقات الخاصة بهم إذا كانت ترضي حالة العمل.

أدوات المراسلة

الخدمات المصغرة عبارة عن نظام تتواصل فيه الخدمات المستقلة مع بعضها البعض أو داخل نفسها. للتواصل مع بعضها البعض ، تستخدم الخدمات المصغرة قوائم انتظار الرسائل. إذن ، الأدوات المستخدمة في المراسلة هي كما يلي:

أباتشي كافكا

هذه الأداة عبارة عن نظام مراسلة للنشر والاشتراك تم تطويره في الأصل على LinkedIn وأصبحت لاحقًا جزءًا من مشروع Apache. كافكا قابل للتطوير ورشيقة ويتم توزيعه حسب التصميم. لذلك ، Apache Kafka عبارة عن منصة معالجة دفق موزعة يمكن استخدامها لمعالجة البيانات أو استدعاءات API. فيما يلي بعض ميزات Apache Kafka:

  • يتمتع كافكا بإنتاجية عالية لنشر الرسائل والاشتراك فيها ، للحفاظ على أداء مستقر.
  • تضمن هذه الأداة أيضًا عدم حدوث أي توقف أو فقدان للبيانات.
  • تستمر الرسائل على القرص بأسرع ما يمكن
  • يمكن للعديد من التطبيقات الإضافات والاستفادة من كافكا لأنها تعرض لكتابة موصلات جديدة.

الأرنب

تستخدم هذه الأداة الأنماط للتواصل بين الخدمات المصغرة وكذلك توسيع نطاق التطبيقات في وقت واحد. بمساعدة هذه الأداة ، يمكنك توصيل الخدمات المصغرة ببعضها البعض لحل مشاكل الأنظمة الموزعة. أيضا ، ذيمكنك استخدام هذه الأداة لتبادل الأحداث بين الخدمات الفردية. فيما يلي بعض ميزات RabbitMQ:

  • تقدم هذه الأداة مجموعة متنوعة من الميزات مثل الموثوقية وإقرارات التسليم ، بما في ذلك المثابرة وتأكيدات الناشر والتوافر العالي.
  • باستخدام هذه الأداة ، يتم توجيه الرسائل من خلال التبادلات قبل الوصول إلى قوائم الانتظار.
  • يأتي RabbitMQ مع نموذج الاتحاد ويسمح للخوادم التي تحتاج إلى أن تكون متصلة بشكل فضفاض وغير موثوق به
  • تدعم هذه الأداة المراسلة عبر بروتوكولات المراسلة المتعددة.

مجموعات الأدوات

مجموعات الأدوات بمصطلحات الشخص العادي هي مجموعة من الأدوات المستخدمة لغرض محدد. في بنية الخدمات المصغرة ، يمكنك إنشاء أنواع مختلفة من التطبيقات. لذلك ، قد يكون لديك العديد من مجموعات الأدوات المستخدمة لغرض مختلف. الأدوات المختلفة التي يمكنك وضعها في الاعتبار في هذا القسم هي كما يلي:

النسيج 8

fabric8 هي أداة منصة كخدمة ، والتييساعد المطورين على توفير نظام إدارة التكوين من خلال Git. إنها أداة مفتوحة المصدر تتعامل مع تعيينات المنافذ وتعقيدات عناوين IP. تتحمل هذه الأداة أيضًا مسؤولية خدمات موازنة التحميل ذات التوافر العالي وقابلية التوسع.

فيما يلي بعض ميزات هذه الأداة:

  • يوفر مجموعة من المعالجات لإنشاء التطبيقات بشكل أسرع وإعداد خطوط أنابيب التسليم المستمر.
  • Fabric8 يأتي مع مكان العملاستضافة مستودع Git
  • توفر هذه الأداة مدير مستودع مخضرم للإصدارات المروجة جنبًا إلى جنب مع مرآة لمستودعات المخضرمين المركزية.
  • يوفر وحدة تحكم المطورين لإنشاء الخدمات الصغيرة وإنشائها وإدارتها مع تصور عميق في المشاريع والتطبيقات والبيئات

سينيكا

يتم استخدام Seneca لبناء الخدمات المصغرة القائمة على الرسائل والعمليات وهي مجموعة أدوات لـ Node.js. تساعدك مجموعة الأدوات هذه على كتابة تعليمات برمجية نظيفة ومنظمة باستخدام منطق الأعمال المنتظم للتطبيق. ميزات Seneca أدناه:

  • يوفر Seneca المكونات الإضافية التي تعتني بأسس التطبيق.
  • لا داعي للقلق بشأن قاعدة البيانات التي يجب استخدامها وكيفية هيكلة المكونات الخاصة بك
  • في سينيكا ، كل شيء مكتوب كأمر. يتم استدعاء هذه الأوامر عندما تتطابق مع مجموعة من الخصائص.
  • لا يعرف الكود الذي تطلبه أي أمر ينجز العمل.

الأطر المعمارية

نظرًا لأن الخدمات المصغرة نفسها هي أسلوب معماري ، فإن الإطار المعماري هو عامل مهم. تُستخدم هذه الأطر مع تقنيات مختلفة لبناء التطبيقات.
الإطاران المعماريان الشائعان هما كما يلي:

غوا

يوفر إطار العمل المعماري هذا طريقة لبناء REST APIs والخدمات المصغرة باستخدام . بمساعدة إطار العمل المعماري هذا ، يمكنك تصميم واجهات برمجة التطبيقات جنبًا إلى جنب مع التبعيات المطلوبة. يعمل هذا الإطار على قمة منصة جوجل السحابية. قليل من الميزات كما يلي:

  • تتيح لك هذه الأداة وصف نقاط النهاية والنقاط العامة لإنشاء واجهة برمجة تطبيقات للخدمة.
  • تتيح لك Goa إنشاء هياكل البيانات ورمز التحقق والمعالجات بمجرد تعيين تصميم API.
  • لديه محرك منفصل.
  • يوفر المكونات الإضافية التي يمكنها تنفيذ DSLs المخصصة وأيضًا إنشاء مخرجات عشوائية.

كونغ

يتم استخدام Kong للاستعداد لنشر المكونات الإضافية لتحسين تطوير الخدمات المصغرة ونشرها ، باستخدام هذه الأداة ، يمكنك الاستفادة من أنماط تصميم الحاوية والخدمات المصغرة لإنشاء تطبيقات تتمحور حول واجهة برمجة التطبيقات بسرعة.فيما يلي بعض ميزات Kong:

  • يوفر مكونات إضافية لتوسيع الخدمات وتوصيلها عبر البيئات الهجينة والمتعددة السحابية.
  • يحلل البيانات في الوقت الفعلي ويعزز النظم البيئية لنشر Kong مع Kubernetes
  • يتصل Kong بأدوات التشغيل الآلي لتحسين الكفاءة وتقليل الأخطاء.
  • يوفر تحكمًا في الوصول قائمًا على الأدوار ويقوم بتشفير شامل للامتثال للوائح الصناعة.

أدوات التنظيم

نظرًا لأن الخدمات المصغرة تعمل فيما يتعلق بالحاويات ، فإن تنظيم الحاويات يعد جانبًا مهمًا يجب مراعاته. في سوق اليوم ، هناك العديد من الأدوات المتعلقة بتنسيق الحاويات للخدمات المصغرة ، ولكن أفضل الأدوات هي كما يلي:

حكام

حكام هي أداة مفتوحة المصدر لإدارة الحاويات (التزامن). تشمل مسؤوليات إدارة الحاويات نشر الحاويات ، وتوسيع نطاق وإزالة الترسبات من الحاويات وموازنة حمل الحاويات. وفقًا للتعريف ، قد تشعر أن Kubernetes عادي جدًا وغير مهم. لكن صدقني ، هذا العالم يحتاج إلى Kubernetes لإدارة الحاويات ، بقدر ما يحتاج عامل ميناء لإنشائها. فيما يلي بعض ميزات Kubernetes:

  • يمكن أن تساعدك Kubernetes في نشر الأسرار وتهيئة التطبيق وتحديثها دون إعادة بناء صورتك ودون الكشف عن الأسرار في تكوين المكدس.
  • بالإضافة إلى إدارة الخدمات ، يمكن لـ Kubernetes أيضًا إدارة أحمال عمل الدُفعات و CI ، وبالتالي استبدال الحاويات التي تفشل ، إذا رغبت في ذلك.
  • يحتاج Kubernetes إلى أمر واحد فقط لتوسيع نطاق الحاويات أو تصغيرها عند استخدام CLI. بخلاف ذلك ، يمكن أيضًا إجراء القياس عبر لوحة المعلومات (Kubernetes UI).
  • باستخدام Kubernetes ، يمكنك تركيب نظام التخزين الذي تختاره. يمكنك إما اختيار التخزين المحلي ، أو اختيار مزود سحابة عامة مثل GCP أو ، أو ربما تستخدم نظام تخزين شبكة مشترك مثل NFS و iSCSI وما إلى ذلك.

نفسه

تدعم هذه الأداة نشر الخدمة على Kubernetes. كما يوفر ميزات للإدارة والأمان والموثوقية لاتصالات الخدمات المصغرة. حسنًا ، يتم ذلك عن طريق تقنية شبكة الخدمة التي تتيح لك تحسين العلاقات والتفاعلات بين التطبيق والخدمات المصغرة. قليل من الميزات كما يلي:

  • يقوم بإجراء التتبع التلقائي والمراقبة وتسجيل الخدمات.
  • تقوم هذه الأداة بتأمين الخدمات تلقائيًا ، من خلال المصادقة المُدارة والمصادقة وتشفير الاتصال بين الخدمات.
  • يتحكم Istio في تدفق حركة المرور واستدعاءات واجهة برمجة التطبيقات بين الخدمات ، ويُجري مجموعة من الاختبارات والترقيات مع عمليات النشر باللون الأحمر أو الأسود
  • كما أنه يطبق السياسات ويضمن تطبيقها ، وتوزيع الموارد بشكل عادل بين المستهلكين.

أدوات للرصد

بمجرد إنشاء التطبيق ، من المهم جدًا مراقبة عمل التطبيقات. لذلك ، لمراقبة التطبيقات ، يمكنك استخدام الأدوات التالية:

بروميثيوس

يسمح Prometheus بتصور معلومات المراقبة باستخدام ويدعم التتبع المستند إلى الوقت للكشف عن الأنماط الشاذة. هذه أداة مفتوحة المصدر تجمع معلومات المراقبة.فيما يلي بعض ميزات بروميثيوس:

  • يوفر لغة استعلام مرنة.
  • يأتي مع وحدة تخزين موزعة وعقد خادم فردية مستقلة
  • يكتشف الأهداف عبر اكتشاف الخدمة أو التكوين الثابت
  • يوفر دعم لوحة القيادة والرسوم البيانية.

مخبأ السجل

Logstash هي أداة مفتوحة المصدر يمكنك من خلالها التحقق من السجلات. تتيح لك هذه الأداة تخزين البيانات وجعلها مركزية وتحويلها. ميزات هذه الأداة هي كما يلي:

برمجة ساس مقدمة المفاهيم الأساسية
  • يدعم Logstash ملفاتمجموعة متنوعة من المدخلاتالتي تجذب الأحداث من العديد من المصادر المشتركة ، كلها في نفس الوقت.
  • تهدف هذه الأداة إلى تحويل البيانات وإعدادها بغض النظر عن مدى تعقيدها
  • يسمح لك Log stash باختيار البيانات المخبأة ونقلها
  • إنه إطار قابل للتوصيل يتكون من أكثر من 200 مكون إضافي لإنشاء وتكوين خط أنابيب كما تريد.

أدوات Serverless

هذه الأدوات هي جزء من الخدمات المصغرة ، والتي تعمل على تحسين منهجية تقسيم الأشياء إلى وظائف صغيرة. قليل من الأدوات بدون خادم هي كما يلي:

كلوديا

كلوديا هي أداة بدون خادم تُستخدم لعمليات النشر لـ AWS Lambda و API Gateway. تعمل هذه الأداة على أتمتة عمليات النشر ومهام التكوين المعرضة للأخطاء. يحتوي أيضًا على أدوات مثل Claudia Bot Builder و Claudia API Builder.

ميزات هذه الأداة هي كما يلي:

  • تتيح لك كلوديا النشر والتحديث باستخدام أمر واحد
  • يقلل من الكود المعياري
  • بمساعدة هذه الأداة ، يمكنك ذلكإدارة إصدارات متعددة
  • يمكنك استخدام حزم NPM القياسية وليس عليك تعلم Swagger

AWS Lambda

توفر هذه الأداة خوادم بدون بنية أساسية لإنشاءات الخدمات المصغرة الخاصة بك ويتم تحصيل رسوم على المستخدمين بسعر الدفع لكل استخدام. يمكن استخدام هذه الأداة مع AWS API Gateway لاستضافة خدمة REST أو API. تسمح خدمة الويب من أمازون لواجهة برمجة التطبيقات الخاصة بك بخدمة أي طلبات يقدمها المستخدمون. فيما يلي بعض ميزات AWS Lambda :

  • تمكنك هذه الأداة من تشغيل التعليمات البرمجية الخاصة بك استجابة للأحداث وإدارة موارد الحوسبة التابعة تلقائيًا.
  • تتيح لك AWS تشغيل التعليمات البرمجية دون إدارة الخوادم. إنه أجر حسب استخدامك للخدمة وأنت تدفع فقط مقابل الوقت المستغرق للحساب.
  • تقوم هذه الأداة بقياس تطبيق تلقائيًا عن طريق تشغيل رمز لكل مشغل.
  • يمكن أيضًا استخدام AWS Lambda لبناء خلفية بدون خادم لمعالجة طلبات الجوال و API والويب.

إذا كنت ترغب في تعلم Microservices وبناء تطبيقاتك الخاصة ، فراجع الذي يأتي مع تدريب مباشر بقيادة مدرب وخبرة مشروع واقعية. سيساعدك هذا التدريب على فهم 'الخدمات المصغرة' بعمق ويساعدك على تحقيق إتقان الموضوع.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات ' أدوات الخدمات المصغرة 'وسأعود إليك.