في عالم تطوير البرمجيات، تعد مراجعة التعليمات البرمجية والموافقة عليها من العمليات المهمة لضمان جودة البرنامج الذي يتم تطويره وأمانه ووظائفه. ومع ذلك، غالبًا ما يواجه المديرون المكلفون بالإشراف على هذه العمليات الحيوية العديد من التحديات، مثل ما يلي:
- نقص الخبرة الفنية - قد لا يكون لدى المديرين فهم تقني متعمق للغة البرمجة المستخدمة أو ربما لم يشاركوا في هندسة البرمجيات لفترة طويلة. وينتج عن ذلك فجوة معرفية قد تجعل من الصعب عليهم إجراء تقييم دقيق لتأثير وسلامة التغييرات المقترحة في الكود.
- ضيق الوقت – يمكن أن تستغرق مراجعة الكود والموافقة عليه وقتًا طويلاً، خاصة في المشاريع الأكبر حجمًا أو الأكثر تعقيدًا. يحتاج المديرون إلى الموازنة بين دقة المراجعة مقابل الضغط للوفاء بالجداول الزمنية للمشروع.
- حجم طلبات التغيير - يعد التعامل مع حجم كبير من طلبات التغيير تحديًا شائعًا للمديرين، خاصة إذا كانوا يشرفون على فرق ومشاريع متعددة. وكما هو الحال مع التحدي المتمثل في ضيق الوقت، يحتاج المديرون إلى أن يكونوا قادرين على التعامل مع هذه الطلبات بكفاءة حتى لا يعيقوا تقدم المشروع.
- مجهود يدوي - تتطلب مراجعة التعليمات البرمجية جهدًا يدويًا من قبل المديرين، وقد يؤدي الافتقار إلى الأتمتة إلى صعوبة توسيع نطاق العملية.
- توثيق – يعد التوثيق الصحيح لعملية مراجعة الكود والموافقة عليه أمرًا مهمًا لتحقيق الشفافية والمساءلة.
مع صعود الذكاء الاصطناعي التوليدي (الذكاء الاصطناعي)، يمكن للمديرين الآن تسخير هذه التكنولوجيا التحويلية ودمجها مع مجموعة أدوات وخدمات النشر لدى AWS لتبسيط عملية المراجعة والموافقة بطريقة لم تكن ممكنة من قبل. في هذا المنشور، نستكشف حلاً يوفر سير عمل نشر متكاملًا وشاملاً يتضمن تحليل التغيير الآلي وتلخيصه مع وظيفة سير عمل الموافقة. نحن نستخدم أمازون بيدروك، وهي خدمة مُدارة بالكامل تجعل النماذج الأساسية (FMs) من الشركات الناشئة الرائدة في مجال الذكاء الاصطناعي وAmazon متاحة عبر واجهة برمجة التطبيقات (API)، بحيث يمكنك الاختيار من بين مجموعة واسعة من نماذج FM للعثور على النموذج الأكثر ملاءمة لحالة الاستخدام الخاصة بك. مع تجربة Amazon Bedrock بدون خادم، يمكنك البدء بسرعة، وتخصيص FMs بشكل خاص باستخدام بياناتك الخاصة، ودمجها ونشرها في تطبيقاتك باستخدام أدوات AWS دون الحاجة إلى إدارة أي بنية تحتية.
حل نظرة عامة
يوضح الرسم البياني التالي بنية الحل.
يتكون سير العمل من الخطوات التالية:
- يدفع المطور تغييرات التعليمات البرمجية الجديدة إلى مستودع التعليمات البرمجية الخاص به (مثل كود AWS)، والذي يؤدي تلقائيًا إلى بدء تشغيل خط أنابيب AWS نشر.
- يمر رمز التطبيق عبر عملية بناء التعليمات البرمجية، ويقوم بإجراء عمليات فحص الثغرات الأمنية، وإجراء اختبارات الوحدة باستخدام الأدوات المفضلة لديك.
- AWS كود البناء يسترد المستودع وينفذ أمر git show لاستخراج اختلافات التعليمات البرمجية بين إصدار الالتزام الحالي وإصدار الالتزام السابق. يؤدي هذا إلى إنتاج مخرجات سطرًا تلو الآخر تشير إلى تغييرات التعليمات البرمجية التي تم إجراؤها في هذا الإصدار.
- يقوم CodeBuild بحفظ الإخراج إلى ملف الأمازون DynamoDB الجدول مع معلومات مرجعية إضافية:
- معرف تشغيل CodePipeline
- منطقة AWS
- اسم CodePipeline
- رقم بناء CodeBuild
- التاريخ والوقت
- الحالة
- تدفقات أمازون DynamoDB يلتقط تعديلات البيانات مصنوعة على الطاولة.
- An AWS لامدا يتم تشغيل الوظيفة بواسطة دفق DynamoDB لمعالجة السجل الذي تم التقاطه.
- تستدعي الوظيفة نموذج Anthropic Claude v2 على Amazon Bedrock عبر Amazon Bedrock واجهة برمجة تطبيقات InvocModel يتصل. يتم توفير اختلافات التعليمات البرمجية، جنبًا إلى جنب مع الموجه، كمدخل للنموذج للتحليل، ويتم إرجاع ملخص لتغييرات التعليمات البرمجية كمخرجات.
- يتم حفظ مخرجات النموذج مرة أخرى في نفس جدول DynamoDB.
- يتم إخطار المدير عن طريق خدمة البريد الإلكتروني البسيطة من أمازون (Amazon SES) ملخص تغييرات التعليمات البرمجية وأن موافقتها مطلوبة للنشر.
- يقوم المدير بمراجعة البريد الإلكتروني ويقدم قراره (إما الموافقة أو الرفض) بالإضافة إلى أي تعليقات مراجعة عبر وحدة تحكم CodePipeline.
- يتم التقاط قرار الموافقة وتعليقات المراجعة بواسطة أمازون إيفينت بريدج، مما يؤدي إلى تشغيل وظيفة Lambda لحفظها مرة أخرى في DynamoDB.
- في حالة الموافقة، يقوم المسار بنشر رمز التطبيق باستخدام الأدوات المفضلة لديك. في حالة الرفض، ينتهي سير العمل ولا يستمر النشر.
في الأقسام التالية، يمكنك نشر الحل والتحقق من سير العمل الشامل.
المتطلبات الأساسية المسبقة
لاتباع الإرشادات الواردة في هذا الحل، تحتاج إلى المتطلبات الأساسية التالية:
انشر الحل
لنشر الحل ، أكمل الخطوات التالية:
- اختار قم بتشغيل Stack لإطلاق حزمة CloudFormation بتنسيق
us-east-1
: - في حالة عنوان البريد الإلكتروني، أدخل عنوان البريد الإلكتروني الذي يمكنك الوصول إليه. سيتم إرسال ملخص تغييرات الكود إلى عنوان البريد الإلكتروني هذا.
- في حالة معرف النموذج، اتركه كنموذج anthropic.claude-v2 الافتراضي، وهو نموذج Anthropic Claude v2.
سيستغرق نشر القالب حوالي 4 دقائق.
- عندما تتلقى بريدًا إلكترونيًا من Amazon SES للتحقق من عنوان بريدك الإلكتروني، اختر الرابط المقدم لتخويل عنوان بريدك الإلكتروني.
- ستتلقى بريدًا إلكترونيًا بعنوان "ملخص التغييرات" للالتزام الأولي لمستودع العينات في CodeCommit.
- في وحدة تحكم AWS CloudFormation ، انتقل إلى ملف النواتج علامة تبويب المكدس المنشور.
- انسخ قيمة RepoCloneURL. أنت بحاجة إلى هذا للوصول إلى نموذج مستودع التعليمات البرمجية.
اختبر المحلول
يمكنك اختبار سير العمل من البداية إلى النهاية من خلال تولي دور المطور وإجراء بعض التغييرات في التعليمات البرمجية. تم إعداد مجموعة من نماذج الأكواد لك في CodeCommit. ل الوصول إلى مستودع CodeCommit، أدخل الأوامر التالية في IDE الخاص بك:
ستجد بنية الدليل التالية لـ مجموعة تطوير سحابة AWS تطبيق (AWS CDK) الذي يقوم بإنشاء دالة Lambda لإجراء فرز فقاعي على سلسلة من الأعداد الصحيحة. يمكن الوصول إلى وظيفة Lambda عبر عنوان URL متاح للعامة.
قمت بإجراء ثلاثة تغييرات على رموز التطبيق.
- لتعزيز الوظيفة لدعم كل من خوارزمية الفرز السريع وخوارزمية فرز الفقاعات، خذ معلمة للسماح باختيار الخوارزمية المراد استخدامها، وقم بإرجاع كل من الخوارزمية المستخدمة والمصفوفة التي تم فرزها في الإخراج، واستبدل المحتوى بالكامل
lambda/index.py
مع الكود التالي:
- لتقليل إعداد مهلة الوظيفة من 10 دقائق إلى 5 ثوانٍ (لأننا لا نتوقع أن تعمل الوظيفة لفترة أطول من بضع ثوانٍ)، قم بتحديث السطر 47 في
my_sample_project/my_sample_project_stack.py
كما يلي:
- لتقييد استدعاء الوظيفة باستخدام IAM لمزيد من الأمان، قم بتحديث السطر 56 بوصة
my_sample_project/my_sample_project_stack.py
كما يلي:
- ادفع تغييرات الكود عن طريق إدخال الأوامر التالية:
يؤدي هذا إلى بدء سير عمل نشر CodePipeline من الخطوات من 1 إلى 9 كما هو موضح في النظرة العامة على الحل. عند استدعاء نموذج Amazon Bedrock، قدمنا المطالبة التالية:
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/