מה ההבדלים בין SonarQube Editions ?
עדכון אחרון: נובמבר 2022
אני נשאל בתדירות גבוהה מה ההבדלים בין גירסאות SonarQube.
מהשאלות ניכר ששיטת הרישוי של היצרן לא הכי ברורה, וריבוי הגירסאות די מבלבל.
לכן החלטתי להעלות על הכתב את הנקודות המהותיות ולעזור לעשות סדר בדברים.
תוכן עניינים
במאמר כאן אני מסביר זאת באופן מילולי ובעברית, ובנוסף יצרנו לאחרונה טבלת Excel שמאפשרת לראות בקלות את כל הפיצ'רים במוצר, בצורה מפורטת, ובחלוקה לפי Editions (ניתן גם להפעיל פילטרים על הקובץ ולראות למשל מה יש רק בגירסא מסויימת; מה אין בה וכד'). את האקסל ניתן כרגע לקבל במייל חוזר בשליחת המייל הבא.
ההבדלים העיקריים ב- SonarQube Editions
במאמר כאן אני אציין נקודות עיקריות להבדלים בין הגירסאות ואסביר כיצד המוצר בנוי.
המוצר בנוי בשכבות (מודל המכונה "Open Core"), כאשר כל שכבה מכילה את כל יכולות השכבה שמתחתיה, ויכולות נוספות גם כן.
- השכבה החינמית (Community Edition) היא הבסיס.
- מעליה גירסת Developer Edition
- מעליה Enterprise Edition
- ואז מעליה Data Center Edition
ניתן לראות המחשה באיור משמאל.
כעת אפרט את היכולות העיקריות שמתווספות בכל edition .
מה מוצע בגירסת Community Edition החינמית?
מהדורה זו מגיעה כקוד-פתוח ומציעה את סט היכולות הבסיסי הבא:
1. המוצר עצמו (SonarQube) בגירסא הבסיסית
וכן מעל 60 plugins.
קיים מבחר עשיר של למעלה מ- 60 plugins שיוצרו ל – SonarQube (חלקם חינמיים, חלקם מסחריים). ניתן גם לפתח plugins לבד (ואנחנו נוכל לפתח עבורכם אם תרצו).
2. תמיכה בסריקה של שפות פיתוח
תמיכה ב- 17 שפות:
Java, JavaScript, C#, Terraform, TypeScript, CloudFormation, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET
4. סריקת ה- master branch
סריקת הקוד שקיים ב- branch הראשי (ה- master).
לתשומת לב: לא ניתן לסרוק branches אחרים עם גירסא זו
3. SonarLint
קבלת עדכונים על בעיות בקוד (בשפות הנ"ל), בזמן אמת, אל תוך ה- IDE של המפתחים – מה שעוזר להם לפתח קוד נקי יותר (clean code).
לתשומת לב: בגירסא זו לא ניתן לקנפג את SonarLint (ניתן לעשות זאת בגירסת Developer Edition והעניין מוסבר בהמשך)
מה כלול ב- Developer Edition כתוספת לגירסא החינמית
כאמור, גירסא זו מכילה את כל היכולות הקיימות בגירסא החינמית, ובנוסף:
-
Branch analysis
היכולת להריץ סריקה על כל ענף (לא רק על ה- master branch) ובעצם לגלות בעיות מוקדם הרבה יותר – עוד לפני שהן ממוזגות ומגיעות ל- master
-
PR analysis & decoration
כל פעם שיש Pull Request או Merge Request – זה מריץ משהו אצלם כך שהפידבק הוא דו-כיווני.
-
Security analysis / capabilities
סריקת security עם מגוון חוקים לכל שפה (ניתן לראות בקובץ האקסל כמה חוקים יש לכל שפה ומה הם מכסים).
לתשומת לב: אין סריקת security בגירסת Community החינמית.
-
יכולות נוספות של SonarLint
בגירסא זו יש אפשרות לקנפג ולקבל Smart Notifications (בגירסא החינמית זה לא ניתן)
כלומר: אם הלקוח משתמש ב- SonarLint דרך ה- IDE שלו, אז בשימוש בגירסא זו הוא יוכל לקנפג ולקבל notifications .
לדוגמא: ניתן לקבל הודעה אם לא עבר את ה- quality gates (הסבר על Quality Gates קיים כאן)
לתשומת לב: SonarLint בגירסא החינמית לא סורק שפות שלא נתמכות בגירסא החינמית (כמו C ו- ++C ונוספות כפי שמפורט בהמשך)
-
תמיכה בשפות נוספות
השפות הבאות נתמכות בגירסא זו:
- C
- ++C
- Objective-C
- PL/SQL
- ABAP
- TSQL
- Swift
סה"כ גירסא זו תומכת ב- 24 שפות פיתוח
מה מוצע ב- Enterprise Edition כתוספת לגירסת Developer
-
תמיכה בשפות נוספות
בגירסא זו תמיכה וחוקים בשפות הבאות:
- Apex (שפת קוד של SalesForce)
- Cobol
- PL/1
- RPG
- VB (Visual Basic) 6
גירסא זו תומכת ב- 29 שפות פיתוח
2. Portfolio and Reporting
יכולת זו שימושית כאשר יש הרבה פרוייקטים בארגון. היא מציגה סטטוס של פרוייקטים ב- high level (מה שפעמים רבות נחוץ מצד מנהלי פיתוח, מנהלי צוותים, CTO וכד')
היא מאפשרת גם לקבץ פרוייקטים ו- visualization כך שניתן לראות את המידע מסודר בצורה ויזואלית נוחה ויפה .
סרטון הדגמה קצרצר:
בין היכולות הנוספות כאן:
- ניתן לעשות אגרגציה של פרוייקטים: למשל ניתן להחליט מה לקבץ יחד לפי קריטריונים שהמשתמש מחליט,
כגון לפי פרוייקטי legacy ; לפי פרוייקטים הכתובים בשפה משותפת ; לפי קבוצות, צוותים וכד' - ניתן לבצע אוטומציה של שליחת דו"ח PDF ולשלוח אותו במייל
3. Security Reports
זו יכולת שאין כאמור בגירסת Developer Edition.
דו"ח כזה עוזר לקבל פידבק מהיר יותר ולתקן תקלות וחולשות (vulnerabilities) באופן מהיר יותר.
ניתן גם לראות דו"ח לפי OWASP Top 10 ו – SANS Top 25 . לדוגמא:
4. Security Hotspot + Security vulnerabilities
Security Hotspots הן "נקודות חמות" של אבטחה, ו- SonarQube יודע לזהות אותן ולסמן אותם עבור המשתמשים. הן מדגישות קטעי קוד חשודים שעל מפתחים לבדוק (משום שיתכן ויש שם vulnerabilities).
דוגמא כיצד זה נראה ב- SonarQube:
(לחצו להגדלה)
הפיצ'ר הזה גם עוזר לשפר את מיומנויות הפיתוח של המפתחים: בזמן שהם מקודדים ומגלים נקודות חמות, הם לומדים להבין את סיכוני האבטחה ופרקטיקות כיצד למנוע אותם.
Security Vulnerabilities – חולשות אבטחה – מצריכות טיפול מיידי. SonarQube מספק תיאור מפורט ודגשים על הקוד, העוזרים להבין מה הסיכון שבקוד הנתון – לדוגמא: (לחצו להגדלה)
5. Parallel Processing
מיועד לארגונים שרוצים להריץ במקביל הרבה בדיקות ודו"חות
ניתן להריץ עד עשרה workers .
6. Staging License
בגירסא זו ניתן לקבל רשיון נוסף לצורך הקמת סביבת staging / בדיקות (שימושי כאשר המערכת קריטית ו/או משתמשים ב- plugins, ורוצים לבדוק אותה "בצד" לפני שדרוג השרת האמיתי, וזאת ע"מ לצמצם סיכון ולהבטיח זמן השבתה מינימלי והצלחה בשדרוג)
התוספות שיש בגירסת Data Center Edition
גירסא זו מספקת תמיכה ב- High Availability
-
Component Redundancy
-
Data Resiliency
-
Horizontal Scalability
שאלות נפוצות / FAQ
לסיום אני מצרף כאן שאלות נפוצות שאנו נשאלים. ריכזתי את התשובה בתמצות. ניתן לפנות אלינו לשאלות נוספות ולתשובות מפורטות יותר (הפרטים בהמשך).
- האם הרישוי כולל תמיכה של היצרן?
זה תלוי בכמה גורמים. לעתים היצרן מתמחר זאת בנפרד ולעתים זה כלול במחיר – מוזמנים לפנות אלינו לתשובה על הסיטואציה הספציפית אצלכם. ניתן לקנות דרכנו גם רישוי וגם תמיכה של היצרן. ניתן גם להזמין מאיתנו תמיכה במוצר אצלכם באתר /מרחוק (ובעברית כמובן) - אם אני משתמש בשפה שנתמכת בגירסא החינמית – האם אני מקבל את כל היכולות של SonarQube?
לא. מה שתקבל זה תמיכה בשפה בפצי'רים שיש בגירסא החינמית – אך לא בפיצ'רים שיש בגירסאות בתשלום בלבד. לדוגמא: Java היא שפה שנתמכת בגירסא החינמית – אך בגירסא החינמית לא תקבל חוקי security ; לא branch analysis ; לא דוחות וכו' - האם המוצר עובד גם ברשת סגורה (self-hosted / air-gapped) ?
כן בהחלט - האם המוצר מתחבר לכלי version control נפוצים?
בהחלט. ניתן לחבר אותו ל- git, GitLab, GitHub, Bitbucket, Azure DevOps ועוד - האם המוצר מתחבר לכלי Continuous Integration נפוצים?
בהחלט. ניתן לחבר אותו לכלים כגון Jenkins, GitLab CI ולשלב אותו בתוך תהליכי פיתוח/בדיקות ו- CI/CD pipelines . - כיצד מתומחר המוצר בגירסא המסחרית שלו?
מחיר המוצר תלוי בסוג ה- edition אותו תרצה (כפי שמוסבר לעיל במאמר) ; כמות שורות הקוד שיש לכם וכן האם תרצו תמיכה של היצרן. נשמח לפרט יותר בשיחה טלפונית קצרה, לענות לשאלות נוספות ולתת מחירים מדוייקים – הפרטים ליצירת קשר בהמשך.
חברת ALM-Toolbox היא המפיצה הרשמית של SonarQube בישראל, ומספקת יעוץ, הטמעה, הדרכות, התאמת רישוי Enterprise לצרכי הלקוח, מכירת רישוי, וכן חיבור לתהליכי פיתוח, בדיקות ו- CI pipelines.
נשמח לענות על כל שאלה – אפשר לפנות אלינו במייל sonarqube@almtoolbox.com או טלפונית 072-240-5222