HyperOps

GitLab در زیرساخت HyperOps

GitLab به عنوان قلب فرآیندهای توسعه، تست و استقرار ما عمل می‌کند. با استقرار نسخه‌ی Self-Managed و ترکیب آن با OpenStack و Kubernetes، توانستیم چرخه‌ی کامل DevOps را یکپارچه، سریع و ایمن کنیم.

GitLab Platform

چرا 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 Workflow Diagram

نمودار گردش کار GitLab در محیط DevOps سازمان

جمع‌بندی

GitLab اکنون به عنوان زیرساخت مرکزی توسعه در HyperOps عمل می‌کند. با ترکیب آن با ابزارهایی مثل Prometheus، Harbor و OpenStack، توانستیم زنجیره‌ی توسعه تا استقرار را به‌طور کامل خودکار کنیم. این تغییر نه تنها سرعت و دقت تیم‌ها را افزایش داد، بلکه شفافیت و ردیابی تغییرات را هم به سطح بالاتری رساند.