Αρχική συγγραφή: Ιανουάριος 2022. Τελευταία ενημέρωση: Απρίλιος 2023
Με ρωτούν συχνά ποιες είναι οι διαφορές μεταξύ των εκδόσεων του SonarQube. Από τις ερωτήσεις είναι σαφές ότι οι επιλογές αδειοδότησης δεν είναι τόσο ξεκάθαρες και προκαλούν σύγχυση, οπότε αποφάσισα να καταγράψω τα βασικά σημεία για να βοηθήσω να ξεκαθαρίσουν τα πράγματα.
Legend:
- Core differences
- What’s in the Community Edition?
- Developer Edition vs Community Edition
- Enterprise Edition vs Developer
- Data Center Edition vs Enterprise
- FAQ
Στο παρακάτω άρθρο εξηγώ τις διαφορές. Επιπλέον, πρόσφατα δημιουργήσαμε ένα υπολογιστικό φύλλο (spreadsheet) που σας επιτρέπει να δείτε εύκολα όλα τα χαρακτηριστικά του προϊόντος, λεπτομερώς και ανά έκδοση (ώστε να μπορείτε να χρησιμοποιήσετε φίλτρα και να δείτε, για παράδειγμα, ποια χαρακτηριστικά υπάρχουν μόνο στις εκδόσεις Developer / Enterprise· ποια χαρακτηριστικά δεν υπάρχουν σε μια συγκεκριμένη έκδοση κ.λπ.). Μπορείτε να μας στείλετε email (sonarqube@almtoolbox.com) για να λάβετε αυτό το spreadsheet.


Βασικές Διαφορές στις Εκδόσεις του SonarQube
Σε αυτό το άρθρο εξηγώ τις κύριες διαφορές στις εκδόσεις του SonarQube.
Το SonarQube αναπτύχθηκε με το μοντέλο “Open Core”, που σημαίνει ότι είναι ένα προϊόν ανοιχτού κώδικα (open source) δομημένο σε επίπεδα: κάθε επίπεδο περιέχει το προηγούμενο συν επιπλέον δυνατότητες:
- Η έκδοση Community (Δωρεάν) είναι η βάση
- Πάνω σε αυτή βασίζεται η Developer Edition
- Έπειτα, η Enterprise Edition
- και τέλος, η Data Center Edition
Δείτε την παρακάτω εικόνα για μια οπτική αναπαράσταση.
Ας δούμε τις κύριες δυνατότητες που προστίθενται σε κάθε έκδοση (επίπεδο).
Τι περιλαμβάνει η Community Edition?
Αυτή η έκδοση είναι δωρεάν και ανοιχτού κώδικα (open source) και προσφέρει τα εξής:
1. Τον πυρήνα του SonarQube
και 60+ plugins. Υπάρχει μια ποικιλία από plugins για το SonarQube (ορισμένα είναι δωρεάν, ενώ για κάποια άλλα απαιτείται πληρωμή). Μπορείτε επίσης να δημιουργήσετε τα δικά σας plugins (και μπορούμε να τα φτιάξουμε εμείς για εσάς).
2. Σάρωση γλωσσών προγραμματισμού (static code analysis)
Η Community edition υποστηρίζει βασική σάρωση για 16 γλώσσες: Java, JavaScript, C#, Terraform, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET
3. Σάρωση του master (main) branch
Σαρώνει το master (main) branch του git.
Σημειώστε ότι δεν μπορείτε να σαρώσετε άλλα branches (π.χ. feature branches) με την Community Edition, επομένως δεν μπορείτε να εφαρμόσετε τη μεθοδολογία “Shift Left” με αυτήν την έκδοση.
4. SonarLint
Το SonarLint σάς βοηθά να λαμβάνετε ειδοποιήσεις για ζητήματα και bugs στον κώδικα, σε πραγματικό χρόνο, απευθείας στο IDE του προγραμματιστή (π.χ. IntelliJ / VS Code) — κάτι που τους βοηθά να αναπτύσσουν πιο «καθαρό κώδικα» (clean code). Σημείωση: Το SonarLint δεν μπορεί να παραμετροποιηθεί σε αυτή την έκδοση (Αυτό μπορεί να γίνει στην Developer Edition, όπως εξηγείται παρακάτω).
Developer Edition έναντι Community Edition
Η Developer Edition προσφέρει όλα όσα περιλαμβάνει η Community edition ΣΥΝ:
- Branch Analysis
Μπορείτε να σαρώσετε όποια branches θέλετε (αντί μόνο για το master branch), ώστε να μπορείτε να εντοπίσετε προβλήματα πολύ νωρίτερα — ακόμη και πριν ο κώδικας ενσωματωθεί (merged) upstream στα main branches. - Pull Request Decoration & Analysis
Αυτό σας επιτρέπει να ενσωματώσετε το SonarQube με τα εργαλεία διαχείρισης εκδόσεων (version control) και να προσθέσετε την ανάλυση του SonarQube και ένα Quality Gate στα Pull Requests (ή Merge Requests) σας, στο περιβάλλον του ALM / DevOps provider σας, συμπεριλαμβανομένων των GitLab, GitHub, Bitbucket και Azure DevOps. Σας βοηθά να λαμβάνετε γρήγορη ανατροφοδότηση (fast feedback) για τα αποτελέσματα της σάρωσης στο dashboard.

- Δυνατότητες Ανάλυσης Ασφάλειας Κώδικα
Σάρωση ασφαλείας (Security scanning) με μια ποικιλία κανόνων για κάθε γλώσσα προγραμματισμού (το spreadsheet μας καθορίζει πόσους κανόνες έχετε για κάθε γλώσσα).
Σημείωση: Η Community (δωρεάν) Edition δεν σαρώνει για ευπάθειες ασφαλείας (security vulnerabilities).
Σε αυτήν την έκδοση είναι δυνατή η παραμετροποίηση και η λήψη Έξυπνων Ειδοποιήσεων (Smart Notifications) (δεν είναι διαθέσιμο στη δωρεάν Community Edition), οπότε αν εσείς (ως προγραμματιστής) χρησιμοποιείτε το SonarLint μέσω του IDE σας, μπορείτε να το ρυθμίσετε ώστε να λαμβάνετε ειδοποιήσεις. Για παράδειγμα: Μπορείτε να λάβετε ένα μήνυμα εάν δεν έχετε περάσει τα Quality Gates.
Σημείωση: Το SonarLint στην Community (δωρεάν) Edition δεν σαρώνει γλώσσες που δεν υποστηρίζονται στη δωρεάν έκδοση (π.χ. C, C++ και άλλες, όπως αναλύεται παρακάτω).
- Υποστήριξη περισσότερων γλωσσών:
Η Developer Edition σαρώνει επίσης τις ακόλουθες γλώσσες προγραμματισμού:
- C
- C++
- Objective-C
- PL/SQL
- ABAP
- TSQL
- Swift
Η Developer Edition υποστηρίζει συνολικά 24 γλώσσες προγραμματισμού.
Enterprise Edition έναντι Developer Edition
1. Supporting more Languages
Υποστήριξη περισσότερων γλωσσών Η Enterprise Edition σαρώνει επίσης τις ακόλουθες γλώσσες προγραμματισμού:
- Apex (της Salesforce)
- Cobol
- PL/1
- RPG
- VB 6 (Visual Basic)
Η Enterprise Edition υποστηρίζει συνολικά 29 γλώσσες προγραμματισμού.
2. Portfolio και Reporting
Αυτό το χαρακτηριστικό είναι χρήσιμο όταν έχετε πολλά projects. Σας δείχνει την κατάσταση των projects σε υψηλό επίπεδο (high-level), κάτι που συχνά χρειάζονται οι development managers, team managers, CTOs, κ.λπ.
Επίσης, σας επιτρέπει να ομαδοποιείτε projects ώστε να μπορείτε να οπτικοποιήσετε τις πληροφορίες, καθιστώντας τις πολύ πιο σαφείς και ευανάγνωστες.
Σχετικά χαρακτηριστικά εδώ:
- Ομαδοποίηση (Aggregation) των projects. Για παράδειγμα, μπορείτε να αποφασίσετε τι θα ομαδοποιήσετε μαζί σύμφωνα με κριτήρια που εσείς ορίζετε, π.χ. κοινή γλώσσα προγραμματισμού· legacy projects· ομάδες (groups)· ομάδες ανάπτυξης (teams) κ.λπ.
- Μπορείτε να αυτοματοποιήσετε την αναφορά (report) και να την στείλετε μέσω email (ως αναφορά PDF).
Δείτε ένα demo (2 λεπτά):
3. Αναφορές Ασφαλείας (Security Reports)
Οι αναφορές ασφαλείας (Security reports) είναι διαθέσιμες μόνο στην Enterprise edition. Αυτές οι αναφορές σάς βοηθούν να λαμβάνετε ταχύτερη ανατροφοδότηση και να διορθώνετε τις ευπάθειες ασφαλείας πολύ πιο γρήγορα. Το SonarQube σάς βοηθά να δείτε τη στάση ασφαλείας σας (security posture) σύμφωνα με τα πρότυπα OWASP Top 10 και CWE Top 25.
Για παράδειγμα:

4. Security Hotspot + Security Vulnerabilities
Τα Security Hotspots είναι περιοχές κώδικα όπου το SonarQube επισημαίνει ύποπτα τμήματα κώδικα (code snippets) που πρέπει να ελέγξουν οι προγραμματιστές (επειδή μπορεί να υπάρχουν ευπάθειες).
Δείτε ένα παράδειγμα (κάντε κλικ για μεγέθυνση):

Αυτό το χαρακτηριστικό βοηθά επίσης στη βελτίωση των δεξιοτήτων των προγραμματιστών και τους ενδυναμώνει: καθώς γράφουν κώδικα και εντοπίζουν hotspots, μαθαίνουν για τους κινδύνους ασφαλείας και τις βέλτιστες πρακτικές (best practices) για την πρόληψή τους.
Οι Ευπάθειες Ασφαλείας (Security Vulnerabilities) απαιτούν άμεση προσοχή. Το SonarQube παρέχει μια λεπτομερή περιγραφή και επισημαίνει τον σχετικό κώδικα, κάτι που βοηθά στην κατανόηση του κινδύνου στον συγκεκριμένο κώδικα.
Για παράδειγμα (κάντε κλικ για μεγέθυνση):

5. Παράλληλη Επεξεργασία Αναφορών Ανάλυσης (Parallel Processing of Analysis Reports)
Σας επιτρέπει να διαχειρίζεστε τις σαρώσεις και τις αναφορές παράλληλα. Αυτό είναι χρήσιμο εάν πρέπει να εκτελέσετε πολλές σαρώσεις και αναφορές. Μπορείτε να εκτελέσετε έως και 10 workers παράλληλα.
6. Άδεια Staging
Χρησιμοποιώντας την Enterprise Edition, μπορείτε να λάβετε μια επιπλέον άδεια για τη δημιουργία ενός περιβάλλοντος staging / testing. Αυτό είναι χρήσιμο όταν το SonarQube αποτελεί μέρος ενός κρίσιμου συστήματος ή/και χρησιμοποιεί plugins, και θέλετε να το δοκιμάσετε (ως “dry” run) πριν αναβαθμίσετε τον πραγματικό server (προκειμένου να μετριάσετε τους κινδύνους και να διασφαλίσετε ελάχιστο downtime και επιτυχή αναβάθμιση).
Data Center Edition έναντι Enterprise
Η Data Center Edition παρέχει υψηλή διαθεσιμότητα (high availability) για μαζικές (global) υλοποιήσεις (deployments). Η υψηλή διαθεσιμότητα επιτυγχάνεται με την προσθήκη πλεονασμού (redundancy) σε κάθε node του συστήματος.
- Component Redundancy
- Data Resiliency
- Horizontal Scalability
Συχνές Ερωτήσεις (FAQ)
- Ε: Ποια είναι η τιμολόγηση του SonarQube;
Α: Η τιμολόγηση του SonarQube εξαρτάται από διάφορες παραμέτρους:
Τον τύπο της έκδοσης (Edition), όπως εξηγήθηκε παραπάνω στο άρθρο. - Τον αριθμό των γραμμών κώδικα (lines of code) που έχετε.
- Αν επιλέξετε την υποστήριξη πελατών (customer support).
Επικοινωνήστε μαζί μας για να λάβετε ακριβή τιμολόγηση και προσφορές: sonarqube@almtoolbox.com ή καλέστε μας.
- Ε: Χρησιμοποιώ μια γλώσσα προγραμματισμού που υποστηρίζεται από την Community (Δωρεάν) Edition (π.χ. Java ή C#). Σημαίνει αυτό ότι έχω όλες τις δυνατότητες του SonarQube;
Α: Όχι. Εάν χρησιμοποιείτε τη δωρεάν έκδοση, έχετε πρόσβαση μόνο στα χαρακτηριστικά που είναι διαθέσιμα στη δωρεάν Community Edition. Για παράδειγμα: αν χρησιμοποιείτε Java (που είναι διαθέσιμη στη δωρεάν έκδοση), δεν θα έχετε πρόσβαση στους κανόνες ασφαλείας (security rules)· δεν θα έχετε ανάλυση branch· δεν θα έχετε αναφορές (reports) κ.λπ.
ALM-Toolbox is an official distributor of SonarQube and provides consulting, SonarQube and SonarCloud licenses, implementation, training and help customers to integrate SonarQube with business flows and CI/CD pipelines. Contact us for any questions including pricing and quotes: sonarqube@almtoolbox.com or call us: 866-503-1471 (USA / Canada) or +31 85 064 4633