« Blog Home

რა განსხვავებაა SonarQube-ის გამოცემებს (Editions) შორის?

თავდაპირველად დაიწერა 2022 წლის იანვარში. ბოლო განახლება: 2023 წლის აპრილი

ხშირად მეკითხებიან, თუ რა განსხვავებაა SonarQube-ის ვერსიებს შორის.
დასმული კითხვებიდან ჩანს, რომ ლიცენზირების ვარიანტები არც ისე ნათელია და საკმაოდ დამაბნეველია, ამიტომ გადავწყვიტე ჩამომეწერა ძირითადი პუნქტები და სიტუაცია გამემარტივებინა.

მოცემულ სტატიაში ავხსნი განსხვავებებს. გარდა ამისა, ჩვენ ახლახან შევქმენით ცხრილი, რომელიც დეტალურად გვიჩვენებს პროდუქტის ყველა ფუნქციას გამოცემების (Editions) მიხედვით (შეგიძლიათ გამოიყენოთ ფილტრები და ნახოთ, მაგალითად, რომელი ფუნქციებია მხოლოდ Developer / Enterprise გამოცემებში; რომელი ფუნქციები არ არის კონკრეტულ გამოცემაში და ა.შ.). შეგიძლიათ მოგვწეროთ ელფოსტაზე (sonarqube@almtoolbox.com) და მიიღოთ ეს ცხრილი.

sonarqube editions differences spreadsheet

დააჭირეთ გასადიდებლად. სრული ცხრილის მისაღებად მოგვწერეთ ელფოსტაზე.

 

sonarqube editions developer community enterprise data-center

SonarQube-ის გამოცემები

 

ძირითადი განსხვავებები SonarQube-ის გამოცემებში

ამ სტატიაში განვმარტავ მთავარ განსხვავებებს SonarQube-ის გამოცემებს (Editions) შორის.

SonarQube აგებულია „ღია ბირთვის“ (Open Core) მოდელზე, რაც ნიშნავს, რომ ის არის შრეებად აგებული ღია კოდის სისტემა: თითოეული შრე შეიცავს წინა შრეს და პლუს დამატებით შესაძლებლობებს:

  • Community (უფასო) Edition არის საფუძველი
  • შემდეგ მას ემატება Developer Edition
  • შემდეგ მოდის Enterprise Edition
  • და ბოლოს, Data Center Edition

იხილეთ ილუსტრაცია მარჯვენა მხარეს.

განვიხილოთ ძირითადი შესაძლებლობები, რომლებიც ემატება თითოეულ გამოცემას (შრეს).

რას მოიცავს Community Edition?

ეს გამოცემა არის უფასო ღია წყარო (Open Source) და გვთავაზობს შემდეგს:

1. SonarQube-ის ბირთვი (Core)

და 60+ პლაგინი.
თქვენ გაქვთ წვდომა SonarQube-ისთვის შექმნილ მრავალფეროვან პლაგინებზე (ზოგიერთი უფასოა, ხოლო ზოგიერთში გადახდა მოგიწევთ). ასევე შეგიძლიათ შექმნათ თქვენი საკუთარი პლაგინები (ან ჩვენ შეგვიძლია შევქმნათ ისინი თქვენთვის).

2. პროგრამული ენების სკანირება (კოდის სტატიკური ანალიზი)

Community გამოცემა მხარს უჭერს 16 ენის საბაზისო სკანირებას:
Java, JavaScript, C#, Terraform, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET

3. მასტერ (მთავარი) ბრენჩის სკანირება

სკანირდება git-ის მასტერ (main) ბრენჩი.

გაითვალისწინეთ, რომ Community გამოცემის გამოყენებით ვერ დაასკანირებთ სხვა ბრენჩებს (მაგ. feature branches), ასე რომ, ამ გამოცემით ვერ შეძლებთ „Shift Left“ მეთოდოლოგიის დანერგვას.

4. SonarLint

SonarLint გეხმარებათ მიიღოთ შეტყობინებები კოდის ხარვეზებსა და ბაგებზე რეალურ დროში, პირდაპირ დეველოპერების IDE-ში (მაგ. IntelliJ / VS Code), რაც მათ უფრო „სუფთა კოდის“ (clean code) წერაში ეხმარება.
შენიშვნა: SonarLint-ის კონფიგურაცია ამ ვერსიაში შეუძლებელია (ამის გაკეთება შეგიძლიათ Developer Edition-ში, როგორც ქვემოთ არის ახსნილი).

Developer Edition vs Community Edition

Developer Edition გვთავაზობს ყველაფერს, რაც არის Community Edition-ში, პლუს:

  1. ბრენჩების ანალიზი (Branch Analysis)

შეგიძლიათ დაასკანიროთ ნებისმიერი ბრენჩი (და არა მხოლოდ მასტერი), რაც საშუალებას გაძლევთ აღმოაჩინოთ პრობლემები გაცილებით ადრე — სანამ კოდი გაერთიანდება (merge) მთავარ ბრენჩებში.

  1. Pull Request-ის გაფორმება და ანალიზი

ეს საშუალებას გაძლევთ მოახდინოთ SonarQube-ის ინტეგრაცია ვერსიის კონტროლის სისტემებთან და დაამატოთ SonarQube-ის ანალიზი და ხარისხის კარიბჭეები (Quality Gate) თქვენს Pull Request-ებში (ან Merge Request-ებში) თქვენი ALM / DevOps პროვაიდერის ინტერფეისში, მათ შორის GitLab, GitHub, Bitbucket და Azure DevOps.
ეს გეხმარებათ ანალიზის შედეგების სწრაფად მიღებაში (Feedback) პირდაპირ დაფაზე.

pull merge request decoration sonarqube gitlab

ილუსტრაცია: Pull (Merge) request-ის გაფორმება SonarQube-თან და GitLab-თან. დააჭირეთ გასადიდებლად

  1. კოდის უსაფრთხოების ანალიზი / შესაძლებლობები

უსაფრთხოების სკანირება მრავალი წესით თითოეული კოდის ენისთვის (ჩვენს ცხრილში მითითებულია, რამდენი წესი არსებობს თითოეული ენისთვის).

შენიშვნა: Community (უფასო) Edition არ ამოწმებს უსაფრთხოების მოწყვლადობებს.

  1. SonarLint-ის დამატებითი შესაძლებლობები

ამ ვერსიაში შესაძლებელია ჭკვიანი შეტყობინებების (Smart Notifications) კონფიგურაცია და მიღება (რაც არ არის ხელმისაწვდომი უფასო Community Edition-ში),
ასე რომ, თუ თქვენ (როგორც დეველოპერი) იყენებთ SonarLint-ს თქვენი IDE-ს საშუალებით, შეგიძლიათ დააკონფიგურიროთ და მიიღოთ შეტყობინებები.
მაგალითად: შეგიძლიათ მიიღოთ შეტყობინება, თუ ვერ გაიარეთ ხარისხის კარიბჭე (Quality Gate).

შენიშვნა: SonarLint Community (უფასო) გამოცემაში არ ასკანირებს იმ ენებს, რომლებიც არ არის მხარდაჭერილი უფასო ვერსიაში (მაგ. C, C++ და სხვა, როგორც ქვემოთ არის მითითებული).

  1. მეტი ენის მხარდაჭერა:

Developer Edition ასევე ასკანირებს შემდეგ პროგრამულ ენებს:

  1. C
  2. C++
  3. Objective-C
  4. PL/SQL
  5. ABAP
  6. TSQL
  7. Swift

Developer Edition სულ მხარს უჭერს 24 პროგრამულ ენას.

Enterprise Edition vs Developer Edition

  1. მეტი ენის მხარდაჭერა

Enterprise Edition დამატებით ასკანირებს შემდეგ ენებს:

  1. Apex (Salesforce)
  2. Cobol
  3. PL/1
  4. RPG
  5. VB 6 (Visual Basic)

Enterprise Edition სულ მხარს უჭერს 29 პროგრამულ ენას.

2. პორტფოლიო და რეპორტინგი

ეს ფუნქცია სასარგებლოა, როდესაც გაქვთ ბევრი პროექტი. ის გვიჩვენებს პროექტების სტატუსს მაღალ დონეზე (რაც ხშირად სჭირდებათ განვითარების მენეჯერებს, გუნდის ლიდერებს, CTO-ებს და ა.შ.).

ეს ასევე საშუალებას გაძლევთ დააჯგუფოთ პროექტები კატეგორიებად, რათა ვიზუალურად წარმოადგინოთ ინფორმაცია და გახადოთ ის უფრო ნათელი და ადვილად წასაკითხი.

აქ რელევანტური ფუნქციებია:

  • პროექტების აგრეგაცია. მაგალითად, შეგიძლიათ გადაწყვიტოთ, რა დააჯგუფოთ ერთად თქვენს მიერ განსაზღვრული კრიტერიუმების მიხედვით: საერთო კოდის ენა; ძველი (legacy) პროექტები; ჯგუფები; გუნდები და ა.შ.
  • შეგიძლიათ ანგარიშის (რეპორტის) ავტომატიზაცია და ელფოსტით გაგზავნა (PDF ფორმატში).
ნახეთ დემო (2 წთ):

3. უსაფრთხოების რეპორტები (Security Reports)

უსაფრთხოების რეპორტები ხელმისაწვდომია მხოლოდ Enterprise გამოცემაში.
ეს რეპორტები გეხმარებათ მიიღოთ უფრო სწრაფი უკუკავშირი და გაცილებით სწრაფად გამოასწოროთ უსაფრთხოების მოწყვლადობები.
SonarQube გეხმარებათ დაინახოთ თქვენი უსაფრთხოების მდგომარეობა OWASP Top 10 და CWE Top 25 სტანდარტების მიხედვით.

მაგალითად:

sonarqube security reports

უსაფრთხოების რეპორტები (დააჭირეთ გასადიდებლად)

4. უსაფრთხოების ცხელი წერტილები (Security Hotspot) + უსაფრთხოების მოწყვლადობები

უსაფრთხოების ცხელი წერტილები არის კოდის არეალები, სადაც SonarQube გამოყოფს საეჭვო კოდის ფრაგმენტებს, რომლებიც დეველოპერებმა უნდა შეამოწმონ (რადგან შესაძლოა იყოს მოწყვლადობები).

იხილეთ მაგალითი (დააჭირეთ გასადიდებლად):

sonarqube security hotspot

Security Hotspot (მონაცემების ჰეშირება უსაფრთხოების თვალსაზრისით სენსიტიურია)

ეს ფუნქცია ასევე ეხმარება დეველოპერებს განვითარების უნარების გაუმჯობესებაში: როდესაც ისინი წერენ კოდს და აღმოაჩენენ ცხელ წერტილებს, ისინი სწავლობენ უსაფრთხოების რისკების შესახებ და ეცნობიან საუკეთესო პრაქტიკებს მათი თავიდან აცილების შესახებ.

უსაფრთხოების მოწყვლადობები (Security Vulnerabilities) მოითხოვს დაუყოვნებლივ ყურადღებას. SonarQube უზრუნველყოფს დეტალურ აღწერას და ხაზს უსვამს შესაბამის კოდს, რაც გეხმარებათ გაიგოთ, რა რისკს შეიცავს მოცემული კოდი.
მაგალითად (დააჭირეთ გასადიდებლად):

sonarqube security vulnerabilities

პრობლემური კოდის იდენტიფიცირება და მისი გადაჭრის გზები (ამ შემთხვევაში: გამოიყენეთ გასაღების სიგრძე, რომელიც უზრუნველყოფს საკმარის ენტროპია brute-force შეტევების წინააღმდეგ. RSA ალგორითმისთვის ის უნდა იყოს მინიმუმ 2048 ბიტიანი).

 

5. ანალიზის რეპორტების პარალელური დამუშავება

საშუალებას გაძლევთ მართოთ სკანირებები და რეპორტები პარალელურ რეჟიმში. ეს სასარგებლოა, თუ გჭირდებათ მრავალი სკანირებისა და ანგარიშის გაშვება.
თქვენ შეგიძლიათ გაუშვათ 10-მდე დამმუშავებელი (worker) პარალელურად.

6. Staging ლიცენზია

Enterprise Edition-ის გამოყენებით შეგიძლიათ მიიღოთ დამატებითი ლიცენზია Staging / სატესტო გარემოს მოსაწყობად.
ეს სასარგებლოა, როდესაც SonarQube არის კრიტიკული სისტემის ნაწილი ან იყენებთ პლაგინებს და გსურთ მისი დატესტვა („მშრალი“ გაშვება) რეალური სერვერების განახლებამდე (რისკების შესამცირებლად და განახლების წარმატებით დასრულების უზრუნველსაყოფად მინიმალური შეფერხებით).

Data Center Edition vs Enterprise

Data Center Edition უზრუნველყოფს მაღალ ხელმისაწვდომობას (High Availability) მასიური (გლობალური) დანერგვებისთვის.
მაღალი ხელმისაწვდომობა მიიღწევა სისტემის თითოეულ კვანძზე (node) რეზერვირების დამატებით.

  1. კომპონენტების რეზერვირება (Component Redundancy)

  2. მონაცემთა მდგრადობა (Data Resiliency)

  3. ჰორიზონტალური მასშტაბურობა (Horizontal Scalability)

ხშირად დასმული კითხვები (FAQ)

    • კითხვა: რა ღირს SonarQube?
      პასუხი: SonarQube-ის ფასი დამოკიდებულია რამდენიმე პარამეტრზე:
      გამოცემის (Edition) ტიპი (როგორც ზემოთ არის ახსნილი);
      კოდის ხაზების რაოდენობა;
      იყენებთ თუ არა მომხმარებელთა მხარდაჭერის სერვისს.

      დაგვიკავშირდით ზუსტი ფასებისა და შეთავაზებების მისაღებად: sonarqube@almtoolbox.com ან დაგვირეკეთ

 

  • კითხვა: მე ვიყენებ პროგრამულ ენას, რომელიც მხარდაჭერილია Community (უფასო) გამოცემაში (მაგ. Java ან C#).
    ნიშნავს თუ არა ეს, რომ მე ვიღებ SonarQube-ის ყველა შესაძლებლობას?
    პასუხი: არა. თუ იყენებთ უფასო გამოცემას, წვდომა გაქვთ მხოლოდ იმ ფუნქციებზე, რომლებიც Community Edition-შია.
    მაგალითად: თუ იყენებთ Java-ს (რომელიც ხელმისაწვდომია უფასო ვერსიაში), თქვენ არ გექნებათ უსაფრთხოების წესები; არ გექნებათ ბრენჩების ანალიზი; რეპორტები და ა.შ.

ALM-Toolbox არის SonarQube-ის ოფიციალური დისტრიბუტორი და გთავაზობთ კონსულტაციებს, SonarQube-ისა და SonarCloud-ის ლიცენზიებს, იმპლემენტაციას, ტრენინგს და ეხმარება მომხმარებლებს SonarQube-ის ინტეგრაციაში ბიზნეს პროცესებსა და CI/CD მილსადენებში.
ნებისმიერი კითხვისთვის, მათ შორის ფასებისა და შეთავაზებების შესახებ, დაგვიკავშირდით: sonarqube@almtoolbox.com ან დაგვირეკეთ: 866-503-1471 (აშშ / კანადა) ან +31 85 064 4633

დაკავშირებული ბმულები: