| 👀 خبر در یک نگاه:
گرافانا و گیتلب یکپارچهسازی بدون سرور CI/CD ارائه کردهاند که وبهوکها و رویدادهای پایپلاین را به لاگهای گرافانا منتقل میکند. این راهکار نظارت بلادرنگ، تحلیل عملکرد پایپلاینها و همراستایی توسعه و عملیات را ممکن میکند و زمان واکنش به خطاها را کاهش میدهد. |
در راستای سادهسازی جریانهای کاری توسعه، «دنیل فیتزجرالد» از شرکت GrafanaLabs یک راهکار متنباز جدید منتشر کرده که رویدادهای CI/CD در GitLab را از طریق معماری بدون سرور به پلتفرم نظارتی گرافانا متصل میکند. این یکپارچهسازی به تیمها اجازه میدهد وبهوکهای گیتلب مانند push، درخواستهای merge و تکمیل پایپلاینها را مستقیما به لاگهای ابری گرافانا (که بر پایه Grafana Loki ساخته شده) ارسال کنند تا دید real-time و ارتباط میان رویدادهای استقرار و شاخصهای عملکرد بهدست آید.
چرا این راهکار ارائه شد؟
چالش اصلی، پراکندگی میان کنترل نسخه، ابزارهای CI/CD و سیستمهای نظارتی است. بسیاری از تیمها با داشبوردهای جدا از هم کار میکنند: توسعهدهندگان وضعیت پایپلاین را در گیتلب بررسی میکنند، تیم عملیات لاگها را در گرافانا میبیند و هیچکدام از این نماها بهطور مستقیم به شاخصها یا استقرارهای واقعی متصل نیستند. در نتیجه واکنش به خطاها کندتر و ارتباط میان دادهها دستی میشود. یکپارچهسازی گیتلب و گرافانا این فاصله را برطرف میکند و با انتقال رویدادهای ساختارمند CI/CD به یک جریان لاگ واحد، به تیمها امکان میدهد سلامت پایپلاین، دفعات استقرار و ارتباط تغییرات با شاخصهای سیستم را بهصورت یکپارچه پایش کنند.
چطور عمل می کند؟
از نظر فنی، این راهکار بر پایه یک تابع سبک بدون سرور (مثل AWS Lambda) عمل میکند که وبهوکهای گیتلب را از طریق یک نقطه پایانی در API Gateway دریافت کرده، دادهها را بهصورت لاگهای ساختاریافته قالببندی میکند و آنها را به لاگهای ابری گرافانا ارسال میکند. کاربران سپس میتوانند با استفاده از کوئریهای LogQL، فعالیتهای CI/CD را بر اساس پروژه، نرخ موفقیت استقرار یا زمان ساخت تحلیل کنند. علاوه بر این، این لاگها را میتوان با دادههای عملکرد اپلیکیشن در داشبوردهای گرافانا ترکیب کرد؛ برای مثال، نمایش نرخ خطا در کنار استقرارها یا تغییرات کد مشخص.
مزایا
معرفی این خط نظارتی بدون سرور، در عمل تلهمتری CI/CD را به بخشی اصلی از پلتفرمهای مانیتورینگ تبدیل میکند.
حالا تیمها میتوانند بر اساس روندهای استقرار (مثل خطاهای ساخت، زمان طولانی پایپلاین یا کاهش سرعت انتشار) هشدار ایجاد کنند، بهرهوری توسعهدهندگان و سرعت انتشار نسخهها را تجسم کنند و گزارشهای انطباق یا ممیزی درباره نرخ خطا در تغییرات و زمان بازیابی پس از استقرار تهیه کنند.
گرافانا میگوید:
«این نوع یکپارچهسازی نشاندهنده تغییری گستردهتر بهسمت دید یکپارچه است؛ جایی که تغییرات کد، شاخصها، لاگها و تریسها همگی در قالب یک جریان کاری واحد عمل میکنند.»
استقرار مدل برای سازمانها
برای سازمانهایی که قصد دارند از این مدل استفاده کنند، پیکربندی سازگار معمولا شامل چهار مرحله است:
- استقرار تابع Lambda با اطلاعات کاربری Grafana Cloud
- ایجاد یک نقطه پایانی API برای وبهوکهای گیتلب
- تنظیم گیتلب برای ارسال رویدادها به آن نقطه
- ساخت داشبوردها در گرافانا.
طبق گفته وبلاگ، با حدود ۶۹ خط کد پایتون میتوان این یکپارچهسازی را در کمتر از ۳۰ دقیقه راهاندازی کرد.
الگوهای آماده
برای کسانی که به این رویکرد نظارتی علاقهمندند، چند الگوی آماده نیز وجود دارد که میتوانند برای دستیابی به نتایج مشابه و نمایش قابلیت نظارت بر CI/CD، بهویژه در ترکیب گیتلب و پرومتئوس، مورد استفاده قرار گیرند:
- داشبورد GitLab CI Pipelines (شناسه: 10620): این داشبورد با استفاده از Prometheus بهعنوان منبع داده، شاخصهای مربوط به پایپلاینهای CI گیتلب را نمایش میدهد. شامل پنلهایی برای مدت زمان اجرای پایپلاین، تعداد موفقیت و شکست، و شاخصهای مربوط به jobها است.
- Dashboard JSON از GitLab CI Pipelines Exporter: پروژه gitlab-ci-pipelines-exporter یک نمونه فایل JSON برای داشبورد ارائه میدهد که میتوانید آن را وارد گرافانا کرده یا متناسب با نیاز خود شخصیسازی کنید.
- مخزن GitLab Self-managed Grafana Dashboards: گیتلب یک مخزن از داشبوردهای نمونه برای شاخصهای مختلف (از جمله عملکرد و متریکهای CI) نگهداری میکند.
- داشبورد GitLab Runner (شناسه: 21662): این داشبورد بر شاخصهای مربوط به Runnerها تمرکز دارد و با نمایش وضعیت سلامت، همزمانی و عملکرد زیرساخت Runner، میتواند مکمل داشبوردهای پایپلاین باشد.
کاربران چه میگویند؟
یکی از کاربران ردیت توضیح داده که چطور رویدادهای پایپلاین CI/CD یا وبهوکهای استقرار را دریافت کرده و آنها را به پنلهای لاگ در گرافانا منتقل میکند. برای مثال، او یک سرویس وبهوک منتشر کرده، از افزونه منبع داده گرافانا استفاده کرده و رویدادهای پایپلاین گیتلب را در لاگهای گرافانا نمایش داده است.
جمعبندی
در مجموع، این یکپارچهسازی گامی رو به جلو در اتصال جریانهای کاری توسعه به ابزارهای نظارتی محسوب میشود. با در نظر گرفتن رویدادهای CI/CD بهعنوان لاگهای ساختاریافته و امکان جستوجوی آنها در کنار شاخصها و تریسها، تیمها دید جامعتری از چرخه تحویل نرمافزار بهدست میآورند. این دید زمان شناسایی خطاها را کاهش میدهد، واکنش به رخدادها را بهبود میبخشد و فعالیت توسعهدهندگان را با نتایج عملیاتی هماهنگتر میکند.
منبع: infoq.com




دیدگاهتان را بنویسید