آمازون راهکار جدیدی مبتنی بر معماری بدون سرور (Serverless) ارائه کرده است که به تیمهای مهندسی نرمافزار امکان میدهد معیارهای فعالیت خود در پلتفرمهای GitHub و GitLab را بهطور خودکار جمعآوری کرده و آنها را در داشبوردهای تعاملی Amazon QuickSight تحلیل کنند. این راهکار به تیمها کمک میکند تا بدون درگیر شدن با پیچیدگیهای مدیریت زیرساخت، دیدگاهی دقیق و نزدیک به لحظه از روند توسعه خود داشته باشند.
چرا سنجش معیارهای گیت اهمیت دارد؟
فعالیتهای گیت یکی از غنیترین منابع داده برای ارزیابی روند توسعه نرمافزار هستند. با این حال، استخراج این معیارها در مقیاس بزرگ معمولاً نیازمند فرآیندهای سنتی ETL (استخراج، تبدیل و بارگذاری)، زیرساختهای اختصاصی و نگهداری مداوم است. علاوه بر این، با رواج ابزارهای توسعه مبتنی بر هوش مصنوعی، تیمها به معیارهای دقیقی نیاز دارند تا متوجه شوند آیا این ابزارها واقعاً سرعت توسعه را افزایش دادهاند یا صرفاً تعداد کامیتها (Commits) را بدون بهبود کیفیت بالا بردهاند. فریمورک توسعه مبتنی بر هوش مصنوعی آمازون (AI-DLC) تأکید میکند که برای ارزیابی ابزارهای هوش مصنوعی، باید ابتدا یک خط مبنا (Baseline) تعیین کرد و سپس تغییرات را ردیابی نمود.
قابلیتهای کلیدی راهکار جدید آمازون
- تشخیص هوشمند تغییرات: یک تابع اختصاصی، رویدادهای گیت را رصد میکند و در صورتی که تغییری (مانند کامیت جدید، Pull Request یا ایشو) رخ نداده باشد، فرآیند پردازش را متوقف میکند تا در هزینهها صرفهجویی شود.
- بخشبندی تطبیقی (Adaptive Chunking): برای سازمانهایی با بیش از ۲۰ مخزن (Repository)، سیستم به طور خودکار کارها را تقسیم کرده و با استفاده از AWS Step Functions به صورت موازی پردازش میکند.
- بارگذاری کامل و تدریجی: سیستم در اولین اجرا دادهها را به طور کامل بارگذاری میکند و در دفعات بعدی فقط دادههای تغییریافته را جمعآوری مینماید. همچنین برای حفظ دقت دادهها، هر ۲۴ ساعت یکبار یک بهروزرسانی کامل انجام میشود.
- زمانبندی انعطافپذیر: فرکانس جمعآوری دادهها با استفاده از Amazon EventBridge Scheduler و با فرمتهای rate() یا cron() قابل تنظیم است.
معماری و ابزارهای مورد استفاده
این خط لوله داده از شش سرویس کلیدی AWS استفاده میکند:
- Amazon EventBridge Scheduler: وظیفه شروع خودکار جریان کاری را در فواصل زمانی مشخص بر عهده دارد.
- AWS Step Functions: هماهنگکننده کل جریان کاری است و تصمیمگیری درباره نوع بارگذاری (کامل یا تدریجی) و تقسیم کارها برای پردازش موازی را مدیریت میکند.
- AWS Lambda: شامل دو تابع است؛ یکی برای تشخیص تغییرات در گیت (github-change-detector) و دیگری برای جمعآوری و تجمیع معیارها (github-metrics-collector).
- AWS Secrets Manager: توکنهای گیت را به صورت امن ذخیره میکند تا از هاردکد شدن آنها جلوگیری شود.
- Amazon S3: دادههای جمعآوریشده را در قالب فایلهای ساختاریافته JSON و فایلهای بهینهشده CSV ذخیره میکند.
- Amazon QuickSight: دادههای CSV را از S3 یا از طریق Amazon Athena میخواند و با بارگذاری آنها در موتور درونحافظهای سریع SPICE، داشبوردهای تعاملی برای تحلیل روندها، بررسی وضعیت PRها و تحلیل مشارکتکنندگان ارائه میدهد.
پیشنیازهای راهاندازی
برای پیادهسازی این راهکار، به یک حساب فعال AWS با دسترسیهای لازم برای ساخت سرویسهای فوق، ابزار AWS CLI v2، حساب کاربری GitHub یا GitLab به همراه توکن دسترسی شخصی (Personal Access Token) و اشتراک فعال Amazon QuickSight نیاز است.