در دنیای توسعه نرم افزار، بررسی و تایید کد فرآیندهای مهمی برای اطمینان از کیفیت، امنیت و عملکرد نرم افزار در حال توسعه است. با این حال، مدیرانی که وظیفه نظارت بر این فرآیندهای حیاتی را دارند، اغلب با چالشهای متعددی مانند موارد زیر روبرو هستند:
- فقدان تخصص فنی - مدیران ممکن است درک فنی عمیقی از زبان برنامه نویسی مورد استفاده نداشته باشند یا ممکن است برای مدت طولانی در مهندسی نرم افزار شرکت نداشته باشند. این منجر به شکاف دانشی می شود که می تواند ارزیابی دقیق تأثیر و صحت تغییرات کد پیشنهادی را برای آنها دشوار کند.
- محدودیت های زمانی - بررسی و تایید کد می تواند فرآیندی زمان بر باشد، به خصوص در پروژه های بزرگتر یا پیچیده تر. مدیران باید بین دقت بررسی و فشار برای برآورده کردن زمانبندی پروژه تعادل برقرار کنند.
- حجم درخواست های تغییر - پرداختن به حجم بالایی از درخواست های تغییر یک چالش رایج برای مدیران است، به خصوص اگر آنها بر تیم ها و پروژه های متعدد نظارت داشته باشند. مشابه چالش محدودیت زمانی، مدیران باید بتوانند آن درخواستها را به طور موثر مدیریت کنند تا مانع پیشرفت پروژه نشوند.
- تلاش دستی - بررسی کد نیازمند تلاش دستی مدیران است و فقدان اتوماسیون میتواند مقیاسپذیری فرآیند را دشوار کند.
- مستندات - مستندسازی مناسب فرآیند بررسی و تصویب کد برای شفافیت و پاسخگویی مهم است.
با ظهور هوش مصنوعی مولد (AI)، مدیران اکنون می توانند از این فناوری تحول آفرین استفاده کرده و آن را با مجموعه ابزارها و خدمات استقرار AWS ادغام کنند تا فرآیند بررسی و تأیید را به روشی که قبلاً ممکن نبود، ساده کنند. در این پست، راهحلی را بررسی میکنیم که یک گردش کار استقرار یکپارچه را ارائه میدهد که شامل تجزیه و تحلیل تغییرات خودکار و خلاصهسازی همراه با عملکرد گردش کار تأیید میشود. ما استفاده می کنیم بستر آمازون، یک سرویس کاملاً مدیریت شده که مدلهای پایه (FM) را از استارتآپهای پیشرو هوش مصنوعی و آمازون از طریق یک API در دسترس قرار میدهد، بنابراین میتوانید از بین طیف گستردهای از FMها مدلی را انتخاب کنید که برای موارد استفاده شما مناسبتر است. با تجربه بدون سرور Amazon Bedrock، می توانید به سرعت شروع کنید، FM ها را به صورت خصوصی با داده های خود سفارشی کنید و با استفاده از ابزارهای AWS آنها را بدون نیاز به مدیریت زیرساخت در برنامه های خود ادغام و مستقر کنید.
بررسی اجمالی راه حل
نمودار زیر معماری راه حل را نشان می دهد.
گردش کار شامل مراحل زیر است:
- یک توسعه دهنده تغییرات کد جدید را به مخزن کد خود (مانند AWS CodeCommit) که به طور خودکار شروع یک را آغاز می کند AWS CodePipeline استقرار
- کد برنامه از طریق فرآیند ساخت کد می گذرد، اسکن آسیب پذیری ها را انجام می دهد و آزمایش های واحد را با استفاده از ابزارهای دلخواه شما انجام می دهد.
- AWS CodeBuild مخزن را بازیابی می کند و دستور git show را برای استخراج تفاوت کد بین نسخه commit فعلی و نسخه commit قبلی انجام می دهد. این یک خروجی خط به خط تولید می کند که تغییرات کد ایجاد شده در این نسخه را نشان می دهد.
- CodeBuild خروجی را در یک ذخیره می کند آمازون DynamoDB جدول با اطلاعات مرجع اضافی:
- شناسه اجرای CodePipeline
- منطقه AWS
- نام CodePipeline
- کد بیلد شماره ساخت
- تاریخ و زمان
- وضعیت
- آمازون DynamoDB Streams تغییرات داده ها را ضبط می کند روی میز ساخته شده است.
- An AWS لامبدا تابع توسط جریان DynamoDB برای پردازش رکورد ضبط شده فعال می شود.
- این تابع، مدل Anthropic Claude v2 را در آمازون بستر از طریق Amazon Bedrock فراخوانی می کند InvokeModel API زنگ زدن. تفاوت کد، همراه با یک اعلان، به عنوان ورودی مدل برای تجزیه و تحلیل ارائه می شود و خلاصه ای از تغییرات کد به عنوان خروجی برگردانده می شود.
- خروجی از مدل به همان جدول DynamoDB ذخیره می شود.
- مدیر از طریق سرویس ایمیل ساده آمازون (Amazon SES) از خلاصه تغییرات کد و تایید آنها برای استقرار لازم است.
- مدیر ایمیل را بررسی میکند و تصمیم خود (اعم از تأیید یا رد) را همراه با نظرات بازبینی از طریق کنسول CodePipeline ارائه میکند.
- تصمیم تایید و نظرات بررسی توسط پل رویداد آمازون، که یک تابع Lambda را راه اندازی می کند تا آنها را دوباره به DynamoDB ذخیره کند.
- در صورت تایید، خط لوله کد برنامه را با استفاده از ابزارهای دلخواه شما مستقر می کند. در صورت رد شدن، گردش کار به پایان می رسد و استقرار بیشتر ادامه نمی یابد.
در بخشهای بعدی، راهحل را پیادهسازی میکنید و گردش کار انتها به انتها را تأیید میکنید.
پیش نیازها
برای پیروی از دستورالعمل های این راه حل، به پیش نیازهای زیر نیاز دارید:
راه حل را مستقر کنید
برای استقرار راه حل، مراحل زیر را انجام دهید:
- را انتخاب کنید Stack را راه اندازی کنید برای راه اندازی یک پشته CloudFormation در
us-east-1
: - برای آدرس ایمیل، آدرس ایمیلی را که به آن دسترسی دارید وارد کنید. خلاصه تغییرات کد به این آدرس ایمیل ارسال خواهد شد.
- برای مدل ID، به عنوان پیش فرض anthropic.claude-v2 که مدل Anthropic Claude v2 است، بگذارید.
استقرار الگو حدود 4 دقیقه طول می کشد.
- هنگامی که ایمیلی از Amazon SES برای تأیید آدرس ایمیل خود دریافت می کنید، پیوند ارائه شده را برای تأیید آدرس ایمیل خود انتخاب کنید.
- شما یک ایمیل با عنوان "خلاصه تغییرات" برای تعهد اولیه مخزن نمونه در CodeCommit دریافت خواهید کرد.
- در کنسول AWS CloudFormation، به مسیر بروید خروجی برگه پشته مستقر شده
- مقدار RepoCloneURL را کپی کنید. برای دسترسی به مخزن کد نمونه به این نیاز دارید.
محلول را تست کنید
میتوانید با برعهده گرفتن نقش یک توسعهدهنده و فشار دادن برخی تغییرات کد، جریان کار را از انتها به پایان آزمایش کنید. مجموعه ای از کدهای نمونه در CodeCommit برای شما آماده شده است. به به مخزن CodeCommit دسترسی داشته باشید، دستورات زیر را در IDE خود وارد کنید:
ساختار دایرکتوری زیر را برای یک پیدا خواهید کرد کیت توسعه ابری AWS (AWS CDK) برنامه ای که یک تابع لامبدا را برای انجام مرتب سازی حباب بر روی رشته ای از اعداد صحیح ایجاد می کند. تابع 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 همانطور که در نمای کلی راه حل مشخص شده است، شروع می کند. هنگام فراخوانی مدل آمازون بستر، ما دستور زیر را ارائه کردیم:
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/enhance-code-review-and-approval-efficiency-with-generative-ai-using-amazon-bedrock/
- : دارد
- :است
- :نه
- $UP
- 1
- 10
- 100
- 11
- 17
- 200
- 27
- 58
- 7
- 8
- 9
- a
- قادر
- درباره ما
- شتاب دادن
- دسترسی
- در دسترس
- مسئوليت
- به درستی
- رسیدن
- واقعا
- اضافه
- اضافه
- اضافی
- نشانی
- می افزاید:
- مزیت - فایده - سود - منفعت
- AI
- الگوریتم
- الگوریتم
- اجازه دادن
- در امتداد
- آمازون
- آمازون خدمات وب
- an
- تجزیه و تحلیل
- تحلیل
- تحلیل
- و
- آنتروپیک
- هر
- API
- نرم افزار
- کاربرد
- برنامه های کاربردی
- تصویب
- تصویب
- تایید کرد
- معماری
- هستند
- دور و بر
- صف
- مصنوعی
- AS
- ارزیابی کنید
- همکاری
- دستیار
- خواص
- افزوده شده
- تأیید اعتبار
- تصدیق
- اجازه دادن
- خودکار
- بطور خودکار
- اتوماسیون
- در دسترس
- AWS
- AWS CloudFormation
- به عقب
- برج میزان
- مستقر
- BE
- زیرا
- بوده
- بودن
- بهترین
- میان
- بدن
- هر دو
- به ارمغان بیاورد
- حباب
- ساختن
- بنا
- by
- صدا
- CAN
- می توانید دریافت کنید
- اسیر
- مورد
- CD
- به چالش
- چالش ها
- تغییر دادن
- تغییر
- تبادل
- را انتخاب کنید
- تمیز
- ابر
- رمز
- بررسی کد
- کد
- نظرات
- مرتکب شدن
- مشترک
- کامل
- پیچیده
- مختصر
- رفتار
- هدایت می کند
- عواقب
- ملاحظات
- تشکیل شده است
- کنسول
- محتوا
- زمینه
- ایجاد شده
- ایجاد
- بحرانی
- جاری
- سفارشی
- داده ها
- دختر
- معامله
- تصمیم
- به طور پیش فرض
- مشخص
- گسترش
- مستقر
- استقرار
- گسترش
- مستقر می کند
- طرح
- مطلوب
- جزئیات
- مشخص کردن
- توسعه
- توسعه دهنده
- پروژه
- نمودار
- تفاوت
- مختلف
- مشکل
- فهرست راهنما
- مستندات
- میکند
- آیا
- مدت
- سهولت
- بهره وری
- موثر
- تلاش
- هر دو
- دیگر
- پست الکترونیک
- پایان
- پشت سر هم
- به پایان می رسد
- مهندسی
- بالا بردن
- حصول اطمینان از
- وارد
- وارد شدن
- تمام
- محیط
- به خصوص
- واقعه
- مثال
- جز
- انتظار
- تجربه
- آزمایش
- اکتشاف
- کاوش می کند
- تمدید شده
- عصاره
- چهره
- در مواجهه
- خانواده
- کمی از
- مالی
- موسسات مالی
- پیدا کردن
- انعطاف پذیری
- به دنبال
- پیروی
- به دنبال آن است
- برای
- پایه
- رایگان
- از جانب
- کاملا
- تابع
- تابعی
- قابلیت
- بیشتر
- شکاف
- تولید
- مولد
- هوش مصنوعی مولد
- دریافت کنید
- گرفتن
- رفتن
- Go
- می رود
- بیشتر
- راهنمایی
- دسته
- دهنه
- آیا
- داشتن
- he
- زیاد
- خیلی
- خود را
- نگه داشتن
- چگونه
- اما
- HTML
- HTTP
- HTTPS
- انسان
- i
- ID
- if
- نشان می دهد
- تأثیر
- پیاده سازی
- اجرای
- پیامدهای
- مهم
- بهبود
- in
- در عمق
- شامل
- شاخص
- نشان می دهد
- اطلاعات
- شالوده
- اول
- ورودی
- موسسات
- دستورالعمل
- ادغام
- یکپارچه
- ادغام
- به
- معرفی می کند
- فراخوانی میکند
- گرفتار
- IT
- json
- دانستن
- دانش
- عدم
- زبان
- بزرگتر
- راه اندازی
- برجسته
- ترک کردن
- کمتر
- اجازه
- لاین
- ارتباط دادن
- لینک
- فهرست
- دیگر
- ساخته
- اصلی
- عمده
- ساخت
- باعث می شود
- مدیریت
- اداره می شود
- مدیر
- مدیران
- روش
- کتابچه راهنمای
- ممکن است..
- به معنای
- دیدار
- متاداده
- قدرت
- دقیقه
- مدل
- مدل
- تغییرات
- بیش
- اکثر
- چندگانه
- هدایت
- نیاز
- جدید
- بعد
- نه
- هیچ
- اکنون
- تعداد
- متعدد
- of
- پیشنهادات
- غالبا
- on
- فقط
- or
- دیگر
- در غیر این صورت
- خارج
- مشخص شده
- تولید
- خارج از
- به طور کلی
- نظارت
- مروری
- خود
- پارامتر
- انتظار
- انجام
- انجام می دهد
- دوره
- خط لوله
- محور
- افلاطون
- هوش داده افلاطون
- PlatoData
- ممکن
- پست
- پتانسیل
- قدرت
- مرجح
- آماده شده
- پیش نیازها
- فشار
- قبلی
- قبلا
- ادامه
- روند
- فرآیندهای
- تولید کردن
- تولید می کند
- مشخصات
- برنامه نويسي
- پیشرفت
- پروژه
- پروژه ها
- پرسیدن
- مناسب
- پیشنهاد شده
- ارائه
- ارائه
- فراهم می کند
- عمومی
- هدف
- هل می دهد
- هل دادن
- کیفیت
- پرس و جو
- سریع
- به سرعت
- محدوده
- گرفتن
- رکورد
- كاهش دادن
- کاهش
- را کاهش می دهد
- مرجع
- رد شد..
- آزاد
- جایگزین کردن
- مخزن
- درخواست
- ضروری
- مورد نیاز
- نیاز
- منابع
- پاسخ
- محدود کردن
- نتایج
- برگشت
- بازده
- این فایل نقد می نویسید:
- بررسی
- طلوع
- نقش
- دویدن
- s
- همان
- نمونه
- ذخیره
- نگهداری می شود
- مقیاس پذیر
- مقیاس
- اسکن
- ثانیه
- بخش
- امن
- تیم امنیت لاتاری
- انتخاب
- ارشد
- فرستاده
- بدون سرور
- سرویس
- خدمات
- تنظیم
- محیط
- باید
- نشان
- مشابه
- ساده
- سنگاپور
- So
- نرم افزار
- توسعه نرم افزار
- مهندسی نرم افزار
- راه حل
- مزایا
- برخی از
- منبع
- مشخص شده
- سرعت
- صرف می کند
- پشته
- شروع
- آغاز شده
- شروع می شود
- نوپا
- گام
- مراحل
- جریان
- ساده کردن
- رشته
- ساختار
- چنین
- دنباله
- مناسب
- خلاصه
- پشتیبانی
- جدول
- گرفتن
- مصرف
- تیم ها
- فنی
- پیشرفته
- قالب
- آزمون
- تست
- نسبت به
- که
- La
- جهان
- شان
- آنها
- آنجا.
- اینها
- آنها
- این
- کسانی که
- سه
- از طریق
- سفت می شود
- زمان
- زمان بر
- جدول زمانی
- با عنوان
- به
- با هم
- ابزار
- ابزار
- دگرگونی
- شفافیت
- باعث شد
- امتحان
- دو
- نوعی
- درک
- واحد
- بروزرسانی
- به روز شده
- URL
- us
- استفاده کنید
- مورد استفاده
- استفاده
- کاربران
- استفاده
- با استفاده از
- v1
- ارزش
- مختلف
- بررسی
- نسخه
- از طريق
- حجم
- vs
- آسیب پذیری
- بود
- we
- وب
- خدمات وب
- خوب
- بود
- چه زمانی
- که
- وسیع
- دامنه گسترده
- اراده
- با
- در داخل
- بدون
- مهاجرت کاری
- گردش کار
- کارگر
- با این نسخهها کار
- جهان
- X
- یامل
- شما
- شما
- زفیرنت