كُتب في البداية في يناير 2022. آخر تحديث: أبريل 2023
وايد يوصلني سؤال: شو الفرق بين إصدارات (Versions) المختلفة من SonarQube؟
من الأسئلة مبين إن موضوع التراخيص (Licensing) مب واضح ويسبب خربطة للبعض، عشان جي قررت أكتب أهم النقاط وأوضح الأمور بشكل صحيح.
الفهرس:
في هالمقال بشرح لكم الفروقات، وزيادة على هذا سوينا جدول (Spreadsheet) يراويك كل المميزات في المنتج بالتفصيل وحسب الإصدار (تقدر تستخدم الفلاتر وتشوف مثلاً شو المميزات الموجودة بس في نسخة Developer / Enterprise؛ وشو اللي مب موجود في نسخة معينة، وغيرها). تقدر تراسلنا (sonarqube@almtoolbox.com) وفالك طيب بنطرش لك الجدول.
الاختلافات الجوهرية في إصدارات SonarQube
في هالمقال بوضح الفروقات الرئيسية بين نسخ SonarQube.
تم بناء SonarQube بنظام “Open Core”، وهذا يعني إنه مفتوح المصدر (Open Source) ومبني على طبقات: كل طبقة تحتوي على الطبقة اللي قبلها مع إمكانيات إضافية:
- نسخة المجتمع (المجانية) هي الأساس.
- فوقها تيي نسخة المطورين (Developer Edition).
- وفوقها نسخة المؤسسات (Enterprise Edition).
- وآخر شي نسخة مراكز البيانات (Data Center Edition).
شوف الرسم التوضيحي على اليمين.
خلونا نشوف الإمكانيات الرئيسية اللي تنضاف في كل إصدار (طبقة).
شو بتحصل في نسخة المجتمع (Community Edition)؟
هالنسخة مجانية ومفتوحة المصدر وتوفر لك التالي:
1. نواة SonarQube (The Core)
وأكثر من 60 إضافة (Plugins).
عندك مجموعة متنوعة من الإضافات المصممة لـ SonarQube (بعضها مجاني والبعض الآخر بفلوس). وتقدر بعد تبني إضافاتك الخاصة (ونحن نقدر نبنيها لك).
2. فحص لغات البرمجة (تحليل الكود الثابت – Static Code Analysis)
نسخة المجتمع تدعم الفحص الأساسي لـ 16 لغة برمجة:
Java, JavaScript, C#, Terraform, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET
3. فحص الـ Master Branch (الفرع الرئيسي)
فحص الـ master (main) git branch.
لازم تنتبه إنك ما تقدر تفحص الفروع الثانية (مثل feature branches) باستخدام نسخة المجتمع، يعني ما تقدر تطبق منهجية “Shift Left” بهالنسخة.
4. SonarLint
أداة SonarLint تساعدك تحصل تنبيهات عن مشاكل الكود والأخطاء (Bugs)، في الوقت الفعلي (Real time)، مباشرة داخل بيئة التطوير الخاصة بالمبرمجين (مثل IntelliJ / VS Code) – وهالشي يساعدهم يكتبون “كود نظيف” (Clean Code).
ملاحظة: ما تقدر تضبط إعدادات SonarLint في هالنسخة (بينما تقدر تسوي هالشي في نسخة المطورين مثل ما بنشرح تحت).
نسخة المطورين (Developer) مقابل نسخة المجتمع
نسخة المطورين توفر كل شي موجود في نسخة المجتمع بالإضافة إلى:
-
تحليل الفروع (Branch Analysis)
تقدر تفحص أي Branch تباه (مب بس الـ master)، وهالشي يخليك تكتشف المشاكل في وقت أبكر بوايد – حتى قبل ما يتم دمج الكود مع الفروع الرئيسية.
-
تزيين وتحليل طلبات السحب (Pull Request Decoration & Analysis)
هالخاصية تمكنك من دمج SonarQube مع أدوات التحكم في الإصدار (Version Control) وإضافة تحليل SonarQube وبوابة الجودة (Quality Gate) لطلبات السحب (Pull Requests) أو Merge Requests في واجهة مزود ALM / DevOps الخاص فيك، بما في ذلك GitLab و GitHub و Bitbucket و Azure DevOps.
هالشي يساعدك تحصل نتائج الفحص بسرعة (Feedback) مباشرة في الداشبورد.
-
تحليل وإمكانيات أمان الكود (Code Security)
فحص الأمان مع مجموعة متنوعة من القواعد (Rules) لكل لغة برمجة (جدولنا يوضح عدد القواعد المتوفرة لكل لغة).
ملاحظة: نسخة المجتمع (المجانية) ما تفحص الثغرات الأمنية.
-
إمكانيات إضافية لـ SonarLint
في هالنسخة، تقدر تضبط وتستلم تنبيهات ذكية (Smart Notifications) (مب متوفرة في النسخة المجانية)،
يعني إذا كنت (كمطور) تستخدم SonarLint من خلال الـ IDE، تقدر تضبط وتستقبل التنبيهات.
مثال: يوصلك مسج إذا ما عديت بوابة الجودة (Quality Gates).
ملاحظة: SonarLint في نسخة المجتمع (المجانية) ما يفحص اللغات اللي مب مدعومة في النسخة المجانية (مثل C و C++ وغيرها المذكورة تحت).
-
دعم لغات أكثر:
نسخة المطورين تفحص بعد لغات البرمجة التالية:
- C
- C++
- Objective-C
- PL/SQL
- ABAP
- TSQL
- Swift
نسخة المطورين تدعم 24 لغة برمجة بالمجمل.
نسخة المؤسسات (Enterprise) مقابل نسخة المطورين (Developer)
-
دعم لغات إضافية
نسخة المؤسسات تفحص بعد اللغات التالية:
- Apex (الخاصة بـ Salesforce)
- Cobol
- PL/1
- RPG
- VB 6 (Visual Basic)
نسخة المؤسسات تدعم 29 لغة برمجة بالمجمل.
2. المحفظة والتقارير (Portfolio and Reporting)
هالميزة وايد مفيدة يوم يكون عندك مشاريع كثيرة. تراويك حالة المشاريع بمستوى عالي (High-level) وهالشي غالباً يحتاجه مدراء التطوير، قادة الفرق، والمدراء التقنيين (CTOs).
وتسمح لك بعد بتجميع المشاريع في مجموعات عسب تقدر تتخيل المعلومات (Visualize) وتخليها أوضح وأسهل للقراءة.
المميزات المهمة هنا:
- تجميع المشاريع (Aggregation). مثلاً، تقدر تقرر شو اللي تجمعه مع بعض بناءً على معايير أنت تحددها، مثل: لغة برمجة مشتركة؛ مشاريع قديمة (Legacy)؛ مجموعات؛ فرق عمل، وغيره.
- تقدر تأتمت التقرير (Automate) وتطرشه بالإيميل (بصيغة PDF).
شوف هالفيديو التوضيحي (دقيقتين):
3. تقارير الأمان (Security Reports)
تقارير الأمان متوفرة بس في نسخة المؤسسات (Enterprise).
هالتقارير تساعدك تحصل ملاحظات (Feedback) أسرع وتصلح الثغرات الأمنية بشكل أسرع.
SonarQube يساعدك تشوف وضعك الأمني بناءً على معايير OWASP Top 10 و CWE Top 25.
على سبيل المثال:
4. النقاط الساخنة للأمان (Security Hotspot) + الثغرات الأمنية
الـ Security Hotspots هي مناطق في الكود وين SonarQube يسلط الضوء على مقاطع كود مشكوك فيها ويحتاج المطورين يجيكون عليها (لأن يمكن تكون فيها ثغرات).
شوف المثال (اضغط للتكبير):
هالميزة بعد تساعد في تحسين مهارات التطوير عند المبرمجين وتمكينهم: وهم يكتبون الكود ويكتشفون الـ hotspots، يتعلمون عن المخاطر الأمنية وأفضل الممارسات (Best Practices) عشان يتجنبونها.
الثغرات الأمنية (Security Vulnerabilities) تتطلب اهتمام فوري. SonarQube يوفر وصف تفصيلي ويحدد الكود اللي له علاقة بالموضوع، وهالشي يساعد في فهم شو الخطر في هالكود المعين.
مثال (اضغط للتكبير):
تحديد الكود اللي فيه مشكلة وتوفير حل لكيفية إصلاحه (في هالحالة: استخدم مفتاح بطول يوفر حماية كافية ضد هجمات القوة الغاشمة (Brute-force). لخوارزمية RSA لازم يكون الطول 2048 بت على الأقل)
5. المعالجة المتوازية لتقارير التحليل
تسمح لك بإدارة عمليات الفحص والتقارير بالتوازي (Parallel). هالشي مفيد إذا كان عندك وايد عمليات فحص وتقارير لازم تشغلها.
تقدر تشغل لين 10 workers في نفس الوقت.
6. ترخيص بيئة التجارب (Staging License)
باستخدام نسخة Enterprise، تقدر تحصل على رخصة إضافية لإعداد بيئة staging / testing.
هالشي مفيد يوم يكون SonarQube جزء من نظام حساس و/أو يستخدم إضافات (Plugins)، وتبي تجربه (كتجربة أولية) قبل لا تحدث السيرفر الحقيقي (عشان تقلل المخاطر وتضمن أقل وقت توقف ونجاح التحديث).
نسخة مراكز البيانات (Data Center) مقابل المؤسسات (Enterprise)
نسخة Data Center توفر لك توفر عالي (High Availability) للنشرات الضخمة والعالمية.
التوفر العالي يتحقق من خلال إضافة تكرار (Redundancy) لكل عقدة (Node) في النظام.
-
تكرار المكونات (Component Redundancy)
-
مرونة البيانات (Data Resiliency)
-
قابلية التوسع الأفقي (Horizontal Scalability)
الأسئلة الشائعة (FAQ)
-
- س: كيف أسعار SonarQube؟
ج: أسعار SonarQube تعتمد على عدة عوامل:
نوع الإصدار (مثل ما شرحنا فوق في المقال)؛
عدد أسطر الكود (Lines of Code) اللي عندك؛
وإذا كنت تبي دعم فني (Customer Support) ولا لا.تواصل ويانا عشان تحصل الأسعار وعروض الأسعار بدقة: sonarqube@almtoolbox.com أو اتصل فينا
- س: كيف أسعار SonarQube؟
- س: أنا استخدم لغة برمجة مدعومة في نسخة المجتمع (المجانية) (مثل Java أو C#).
هل هذا يعني إني بحصل كل إمكانيات SonarQube؟
ج: لا. إذا تستخدم النسخة المجانية، بيكون عندك وصول بس للمميزات المتوفرة في نسخة المجتمع المجانية.
مثلاً: إذا تستخدم Java (المتوفرة في النسخة المجانية) ما بتحصل قواعد الأمان؛ ولا تحليل الفروع (Branch Analysis)؛ ولا التقارير، وغيره.
ALM-Toolbox هي موزع رسمي لـ SonarQube وتوفر استشارات، وتراخيص SonarQube و SonarCloud، والتنفيذ، والتدريب ومساعدة العملاء في دمج SonarQube مع سير العمل وخطوط CI/CD.
تواصل ويانا لأي استفسار بما في ذلك الأسعار وعروض الأسعار: sonarqube@almtoolbox.com أو اتصل فينا: 866-503-1471 (USA / Canada) أو +31 85 064 4633
روابط ذات صلة:
- كيف يتم دمج SonarQube مع GitLab (فيديو توضيحي)
- متجر Git Marketplace الخاص بنا
- موقع Sonar الإلكتروني




