GitLab در زیرساخت HyperOps
GitLab به عنوان قلب فرآیندهای توسعه، تست و استقرار ما عمل میکند. با استقرار نسخهی Self-Managed و ترکیب آن با OpenStack و Kubernetes، توانستیم چرخهی کامل DevOps را یکپارچه، سریع و ایمن کنیم.
چرا GitLab؟
انتخاب GitLab به دلیل فراهم کردن تمامی ابزارهای ضروری توسعه نرمافزار در یک پلتفرم واحد بود. از مدیریت کد منبع گرفته تا CI/CD، Issue Tracking و مانیتورینگ، همه در یک محیط یکپارچه و کاربرپسند انجام میشود. این یکپارچگی به ما کمک کرد تا وابستگی به ابزارهای متفرقه را حذف و بهرهوری تیمها را افزایش دهیم.
فرآیند پیادهسازی
ما GitLab را بر روی Ubuntu 24 بهصورت Omnibus نصب و پیکربندی کردیم. برای کنترل دسترسی، اتصال LDAP فعال شد و SSL با Let’s Encrypt پیادهسازی گردید. Runnerهای اختصاصی نیز روی چند نود مختلف مستقر شدند تا pipelineها با سرعت بالا و بدون گلوگاه اجرا شوند.
- نصب GitLab بهصورت Self-Hosted با SSL و اتصال به LDAP
- تعریف Runnerها در نودهای مستقل جهت اجرای همزمان pipelineها
- ایجاد pipelineهای CI/CD با GitLab YAML برای build، test و deploy
- اتصال GitLab به Registry خصوصی Harbor جهت مدیریت ایمیجهای Docker
- نظارت بر jobها و منابع با استفاده از Netdata و Prometheus
یکپارچهسازی با OpenStack و Kubernetes
با ترکیب GitLab و OpenStack توانستیم pipelineهایی بسازیم که مستقیماً پس از build، ایمیجها را در محیط ابری مستقر کنند. همچنین با اتصال GitLab به Kubernetes، فرآیند استقرار سرویسها در محیط Stage و Production به شکل خودکار انجام میشود.
پایداری و مانیتورینگ
برای حفظ پایداری، GitLab با Prometheus و Alertmanager یکپارچه شد تا بتوانیم سلامت Runnerها، منابع سیستم و وضعیت pipelineها را پایش کنیم. نسخهبرداری منظم از دادهها و تنظیمات GitLab نیز برای بازیابی سریع در صورت خطا در نظر گرفته شده است.
دستاوردها
- افزایش سرعت استقرار نرمافزار تا ۴۰٪
- کاهش خطاهای انسانی در فرآیندهای انتشار
- امکان پیگیری کامل تغییرات کد و وضعیت jobها در یک داشبورد
- همکاری سادهتر بین تیمهای توسعه، تست و عملیات
نمودار گردش کار GitLab در محیط DevOps سازمان
جمعبندی
GitLab اکنون به عنوان زیرساخت مرکزی توسعه در HyperOps عمل میکند. با ترکیب آن با ابزارهایی مثل Prometheus، Harbor و OpenStack، توانستیم زنجیرهی توسعه تا استقرار را بهطور کامل خودکار کنیم. این تغییر نه تنها سرعت و دقت تیمها را افزایش داد، بلکه شفافیت و ردیابی تغییرات را هم به سطح بالاتری رساند.