تحليل الجودة وإدارة التبعية وتوزيع العناصر في كل عملية نشر باستخدام مستودع Nexus المخصص وتكامل جودة كود SonarQube. نقرة واحدة من لوحة التثبيت.
#nexus
#sonarqube
#devops
#ci/cd
#code quality
VDS Panel Ekibi
Ürünü geliştiren ekip
~8 dk
okuma
اِصطِلاحِيّ
kategori
عندما يتعلق الأمر بـ “البنية التحتية لـEnterprise DevOps”، تفكر معظم الفرق في إعداد وترخيص وصيانة أدوات مثل Jenkins وJIRA وBitbucket وNexus وSonarQube بشكل منفصل. تبلغ تكلفة SaaS ما بين 500 إلى 2000 دولار شهريًا أو من 5 إلى 6 خوادم مختلفة ستقوم بإعدادها وإدارتها بنفسك.
تعمل وحدة خدمات النظام الخاصة بـ VDS Panel على جعل هذه البنية التحتية قابلة للتثبيت من لوحة واحدة بنقرة واحدة. سنشرح في هذه المقالة ما يفعله Nexus وSonarQube، وكيفية تثبيتهما مع اللوحة وكيفية دمجهما في مشاريعك.
Bir bakışta
~ 2 دقيقة
وقت التثبيت نيكزس
~3 دقائق
وقت التثبيت SonarQube
0 دولار
رسوم الترخيص الإضافية
آلي
بناء التكامل
مدير مستودع Nexus
يعد Nexus مستودعًا خاصًا للقطع الأثرية لإدارة التبعية. لديها ثلاث وظائف أساسية:
1. ذاكرة التخزين المؤقت للوكيل
يطلب فريقك مستودعات عامة مثل Maven Central وسجل npm وPyPI ويقوم بتنزيل الحزم عبر الإنترنت مع كل إصدار. يقوم فريق من 10 أشخاص بتنزيل نفس الحزمة مئات المرات. يعمل Nexus كذاكرة تخزين مؤقت للوكيل: عند تنزيله لأول مرة، يتم حفظه على القرص المحلي، ويتم تقديم الطلبات اللاحقة بسرعة من نفس ذاكرة التخزين المؤقت.
2. مستودع خاص
لا يجوز لك تحميل ملفات JAR المطورة الخاصة بك (المكتبات المشتركة وأطر عمل المؤسسات) إلى npm/Maven. تستضيف Nexus الحزم الخاصة بك كمستودع خاص.
3. إدارة الإصدار
يتم الاحتفاظ بحزم اللقطة (التطويرية) والإصدار (المستقرة) في مستودعات منفصلة. يتم دفعه تلقائيًا إلى الريبو ذي الصلة باستخدام الأمر P0.
الكلاسيكية
لا نيكزس
كل بناء يعتمد على الإنترنت
فشل البناء في حالة تعطل Maven Central
JAR المشترك = دليل scp
لم يتم تحديد إصدار التبعية
صعوبة وراء وكيل الشركات
إعداد اللوحة
العلاقة نعم
يتم تنزيل الحزم المخزنة مؤقتًا بشكل أسرع
البناء دون اتصال ممكن
الدفع التلقائي مع نشر MVN
الإصدار على جانب الريبو
جدار الحماية ودية
جودة كود SonarQube
يقوم SonarQube بتحليل التعليمات البرمجية الخاصة بك بشكل ثابت:
الأخطاء: أخطاء محتملة في وقت التشغيل (مؤشر فارغ، تسرب الموارد، وما إلى ذلك)
روائح الكود: الأماكن التي تتطلب إعادة البناء (الكود المكرر، التعقيد السيكلوماتيكي العالي)
مع كل ضغطة، ترسل اللوحة الرمز الخاص بك إلى SonarQube. يمكنك مراجعة التقرير من واجهة اللوحة أو من واجهة المستخدم الخاصة بـ SonarQube.
التثبيت عبر اللوحة
كم ساعة يستغرق التثبيت الكلاسيكي؟
تثبيت Nexus يدويًا: سحب صورة Docker، وتثبيت وحدة التخزين، وتكوين المنفذ، وإعادة تعيين كلمة مرور المسؤول، وتحديد المستودع، والوكيل العكسي nginx، وSSL… حوالي ساعة إلى ساعتين. SonarQube مشابه. من لوحة لوحة VDS: إجمالي 5 دقائق تقريبًا.
تركيب اللوحة في ثلاث خطوات:
انتقل إلى علامة التبويب “الخدمات”، كتالوج خدمات النظام في القائمة الرئيسية للوحة
انقر على “تثبيت” في مربع “Nexus”، وتقوم اللوحة بإنشاء حاوية Docker في الخلفية، وتثبيت وحدة التخزين، وتكوين الوكيل العكسي لـ nginx، واستيراد شهادة SSL، وإنشاء كلمة مرور المسؤول الافتراضية
** كرر نفس الشيء بالنسبة لـ SonarQube **، حجم منفصل، مجال منفصل (مثل P0)
كلا الحصتين جاهزتان خلال 5 دقائق تقريبًا.
التكامل مافن
يتم تحديث ملف P0 أو P1 الخاص بمشروعك تلقائيًا. لوحة:
ص0
يتم تخزين كلمات المرور في قبو سري باللوحة، ولا تتم كتابة نص واضح في الملف.
تكامل Gradle
P0 لمشاريع Gradle:
ص1
تقوم اللوحة تلقائيًا بحقن بيئات P0 وP1 أثناء الإنشاء.
تكامل الماسح الضوئي SonarQube
في نهاية كل بناء، تقوم اللوحة بتشغيل الماسح الضوئي SonarQube:
ص2
يتم إنشاء الرمز المميز تلقائيًا بواسطة اللوحة. خاتمة:
تقرير جودة المشروع في لوحة تحكم SonarQube
ملخص على الشاشة الرئيسية للوحة (عدد الأخطاء الحرجة، ونسبة التغطية)
النتائج كتعليقات على طلب السحب (إذا كان تكامل GitHub نشطًا)
##بوابة الجودة
يتيح لك SonarQube تحديد بوابة الجودة: تعتبر الإصدارات التي لا تستوفي معايير معينة غير ناجحة. مثال:
خطأ فادح: 0
خطأ عالي الخطورة: <5
تغطية الاختبار: > 60%
الخطوط المكررة: < 3%
تصنيف قابلية الصيانة: أ
يمكن للوحة إيقاف النشر في حالة فشل بوابة الجودة. الكود السيئ لا يدخل الإنتاج.
التبني التدريجي
إذا كانت نسبة التغطية 30% في مشروع قائم، فلا يمكنك فرض بوابة الجودة على الفور على 60%. في حين أن بوابات الجودة تتطلب تغطية بنسبة 80% “للرمز الجديد”، إلا أنها قد تكون أكثر مرونة بالنسبة “للإجمالي”. تدعم اللوحة هذا الإعداد الاستراتيجي.
التخزين والتكلفة
بيانات Nexus وSonarQube في أحجام اللوحات:
ذاكرة التخزين المؤقت لـ Nexus: ~5-20 جيجابايت (حسب الحزم)
قاعدة بيانات SonarQube: ~1-5 جيجابايت (حسب عدد المشاريع)
نسخ احتياطي يوميا
احتفاظ لمدة 30 يومًا
لا توجد تكاليف إضافية. يستخدم قرص VPS الموجود لديك.
خدمات مدمجة أخرى
نظام اللوحةالأدوات الأخرى في كتالوج الخدمة:
RabbitMQ، قائمة انتظار الرسائل
MinIO، تخزين الكائنات المتوافق مع S3
pgAdmin، واجهة مستخدم ويب PostgreSQL
phpMyAdmin، واجهة مستخدم ويب MySQL
Mongo Express، واجهة مستخدم الويب MongoDB
قائد Redis، واجهة مستخدم ويب Redis
كل ذلك بنفس المنطق: التثبيت بنقرة واحدة، والسماح للوحة بإدارته.
خاتمة
أصبح من الممكن الآن تشغيل البنية التحتية لـ Enterprise DevOps بميزانية فرق صغيرة. يمكن تثبيت الخدمات المهمة مثل Nexus وSonarQube، والتي تتطلب عادةً تثبيتًا منفصلاً، بنقرة واحدة باستخدام وحدة خدمات النظام الخاصة بلوحة VDS. يوفر كل إصدار تحليلًا تلقائيًا للجودة ودفعًا أثريًا وممارسات DevOps القياسية التي تزيد من الثقة في فريقك.