chatops لعمارة الخدمات الصغيرة - chatops4msa
ChatOps4MSA هي أداة مساعدة محادثة مصممة لتطوير وعمليات الخدمات الصغيرة ، باستخدام نماذج لغة كبيرة (LLMS). يمكن للمستخدمين مراقبة حالة الخدمة في الوقت الفعلي ، وإجراء الإجراءات الآلية مثل الاختبارات ومسح الكود ، وتلقي إشعارات التنبيه باستخدام لغة استعلام مصممة تسمى CQL (لغة استعلام ChatOps) أو لغة طبيعية.
يمكن للمطورين تخصيص الوظائف المطلوبة باستخدام ملفات التكوين منخفضة الرمز ، والتي تميزها عن تطوير chatbot التقليدي الذي يتطلب في كثير من الأحيان بيانات تدريب مكثفة. الاستفادة من نماذج اللغة الكبيرة الحديثة ، يحلل ChatOps4MSA استعلامات المستخدم لتحديد النية والكيانات ، مما يتيح الإجراءات المقابلة.
هذا هو سيناريو chatops4msa:

فيما يلي مفهوم عملية chatops4msa:

لمزيد من التفاصيل ، راجع الميزة.
في قناة ChatOps ، استخدم @ChatOps4Msa-Bot لذكر chatops4msa ، ثم أدخل طلبك باللغة الطبيعية.

في قناة ChatOps ، قم بتنفيذ الأوامر مباشرة باستخدام أوامر SLASH التي تبدأ مع / .

وهنا بناء جملة CQL:
/[ACTION] [TOOL] [COMMAND] [SERVICE] [FLAGS]

| المعلمة | وصف | مطلوب؟ |
|---|---|---|
| [فعل] | الإجراءات الواجب تنفيذها ، مثل استرداد المعلومات (GET) ، وتكوين الإعدادات (SET) ، وخدمات المراقبة (الشاشة) ، وخدمات الاختبار (الاختبار) ، وما إلى ذلك. | مطلوب |
| [أداة] | الأدوات المراد استخدامها ، مثل GitHub ، Prometheus ، K6 ، وحدات مخصصة ، وما إلى ذلك. | مطلوب |
| [يأمر] | العمليات التي سيتم تنفيذها ، مثل service_recent_activity . | مطلوب |
| [خدمة] | الخدمة المستهدفة للتنفيذ ، والتي يمكن اختيارها كـ all_service لتضمين جميع الخدمات. | خياري |
| [أعلام] | خيارات معلمة إضافية ، والتي يمكن أن تكون متعددة ؛ تتضمن جميع أوامر CQL معلمة subscribe لجدولة عمليات الإعدام الدورية للوظيفة ، حيث تكون قيمة المعلمة تعبيرًا cron. | خياري |
فيما يلي العديد من إمكانيات العرض التوضيحي المصممة لعرض ميزات ChatOps4MSA ، يمكنك تنفيذ هذه القدرات باستخدام اللغة الطبيعية أو CQL.
| نية | كيان | وصف |
|---|---|---|
| Get-Example-Echo_message | رسالة | مجرد صدى رسالة إلى الخلاف. |
| get-example-math_calculate | تعبير | إجراء الحسابات باستخدام التعبير الرياضي المعطى. |
| get-github-service_recent_activity | service_name ، number_of_activity | استرجاع الأنشطة الحديثة لإعادة ريبو الخدمة. |
| get-github-service_past_week_team_activity | service_name | احصل على نشاط الفريق للخدمة المحددة خلال الأسبوع الماضي. |
| get-github-service_code_scanning | service_name | احصل على تقرير الشيك لأحدث الالتزام في ريبو الخدمة. |
| set-github-assue | service_name ، issue_title ، issue_message | إنشاء مشكلات في ريبو الخدمات مع مخاطر التبعية. |
| get-github-issue_progress_timeline | service_name ، number_of_issue | صف تقدم القضية مع جدول زمني. |
| get-github-contribution_of_team_member | service_name | الحصول على تحليل مساهمة أعضاء الفريق. |
| شاشة-prometheus-promql_overview | (null) | مراقبة جميع مقاييس الخدمة باستخدام promql. |
| شاشة-برومثوس-جرافانا_فرفيو | (null) | مراقبة الحالة الإجمالية لجميع الخدمات باستخدام واجهة المستخدم الرسومية (GUI). |
| get-prometheus-alert_rule | (null) | عرض قواعد التنبيه من خلال واجهة المستخدم Prometheus. |
| شاشة-برومثوس Service_Health | (null) | مراقبة الحالة الصحية لجميع الخدمات. |
| مراقب-prometheus-all_service_yesterday_status | (null) | استرجاع حالة تشغيل microservice الأمس باستخدام promql. |
| مراقب-Prometheus-service_dependency | (null) | مراقبة علاقات التبعية بين الخدمات المجهرية. |
| اختبار K6-STIP_TESTING | service_name | إجراء اختبار الإجهاد على خدمة معينة. |
| Test-K6-smoke_testing_all_service | number_of_virtual_user | إجراء اختبار الدخان على جميع الخدمة. |
| test-custom_test-smoke_and_repo_all_service | number_of_virtual_user | إجراء اختبارات الدخان على جميع الخدمات ، ومراقبة حالة والحصول على النشاط الحديث لفشل الخدمات المجهرية. |
لأسباب أمنية ، لا يمكن تنفيذ القدرات التالية إلا عبر أوامر SLASH وليس من خلال اللغة الطبيعية.
املأ تعبير CRON في معلمة subscribe في CQL ، على سبيل المثال:

يمكنك استخدام أمر slash /check_all_subscription لعرض جميع الاشتراكات ، على سبيل المثال:

ويمكنك استخدام أمر SLASH /unsubscribe_all_capability لإلغاء الاشتراك من جميع القدرات ، على سبيل المثال:

رابط يوتيوب
نتحقق من صحة الروبوت الخلفي بشكل دوري. ومع ذلك ، ليس لدينا ضمان توافر عالي على الخدمة. لا تتردد في فتح مشكلة إذا أصبحت غير متوفرة.
رابط الخلاف
الحساب الافتراضي لأدوات DevOps هو
admin، وكلمة المرور الافتراضية هيsoselab.
إنشاء تطبيق Discord (BOT):
Supervisor ، و Team_Member .سجل أوامر SLASH (CQL):
git clone https://github.com/sheng-kai-wang/ChatOps4Msa.gitapplication.properties و secret.yml ملفات ، يمكنك الرجوع إلى القوالب المقدمة: application-template.properties و secret_template.yml. انتشر على الخادم الخاص بك باستخدام ملفات البرنامج .sh المتوفرة:
sh run_all.sh لبدء النظام بأكمله."Ctrl" + "b", then "d" . يمكنك إعادة إدخال الجلسة مع tmux attach .شوكة مستودعات الخدمات الـ 4 التالية لاستخدام القدرات المتعلقة بـ GitHub:
<<Reverse proxy domain>>adminsoselabscan_run_id من عنوان URL. الرجوع إلى step_for_github_scan_run_id.قم بتسجيل الدخول إلى Grafana وتكوين مصدر البيانات يدويًا (Prometheus) لتمكين القدرات المتعلقة بـ Grafana:
sh run_chatops4msa.sh للقيام بذلك.تحتاج فقط إلى كتابة ملفات التكوين بتنسيق منخفض الرمز.
انظر custom_capability.md