נשאלתי לפני כמה ימים בקבוצת ווטסאפ על ההבדל, וחשבתי ששווה לשתף גם כאן את התשובה שלי בשינויים קלים, כדי שלא תלך לאיבוד בארכיון. דיסקליימר: אני אמנם עובד ברד הט, אבל לא מדובר בתשובה רשמית של החברה אלא הסבר שאני כתבתי.
נראה לי שאולי הדרך הכי טובה לענות על שאלת ההבדל בין RHEL וCentOS היא להתחיל מלהסביר קצת על המודל של רד הט, ששונה מרוב חברות הקוד הפתוח.
כל המוצרים של רד הט הם 100% קוד פתוח. מה שהלקוחות משלמים עליו הוא מנוי שמקנה גישה לשירותים של רד הט. המוכר והבולט ביותר מהשירותים הוא כמובן תמיכה מקצועית. שירותים נוספים שרד הט מציעה ללקוחות שלה כוללים יעוץ, הדרכה, הסמכה ועוד.
יכולת התמיכה של רד הט במוצרי קוד פתוח שונה מהרבה חברות אחרות בכך שמעבר לאנשי תמיכה מקצועיים, רד הט גם מעסיקה אלפי מפתחים שלוקחים חלק פעיל בקהילות הקוד הפתוח שעליהן המוצרים שלה מבוססים. זה אומר שללקוחות יש יכולת לבקש תיקונים לבאגים או פיצ’רים חדשים, ולרד הט יש יכולת להכניס אותם לפרויקטים.
הפיתוח מבוצע בגישת upstream first - כלומר כל שינוי שלקוח מבקש נכנס קודם כל לפרויקט הקוד הפתוח וכך כולם נהנים. גם התחזוקה לאורך זמן קלה יותר, בניגוד לחברות שיוצרות תיקונים ללקוח ספציפי ואז צריכות לתחזק את התיקון למול שינויים שמתרחשים בפרויקט לאורך שנים.
רוב המוצרים כוללים אינטגרציה של מספר (או במקרה של RHEL אלפי) פרויקטי קוד פתוח שונים, שעוברים תהליכי בקרת איכות ביחד, מקבלים תיעוד מקצועי וזמינים ללקוחות משרתי החברה.
המוצרים גם נתמכים לאורך שנים רבות יותר מהפרויקטים שעליהם הם מבוססים. למשל כל גרסת RHEL נתמכת במשך עשר שנים, עם אפשרות לרכוש תמיכה גם מעבר לזה. ז"א למשל, אם מתגלה היום פרצת אבטחה חמורה בקרנל 2.6.32, שזו הגרסא שהיתה ב-RHEL 6, אז למרות שרשמית קרנל 2.6.32 הגיע לשלב EOL (סוף החיים) שלו מבחינת הפיתוח כבר ב-2016, רד הט תספק ללקוחות שלה תיקונים עד 2020, תוך מחויבות לשמור על תאימות בינארית מלאה - כלומר שתוכנות שקומפלו על הקרנל הזה ימשיכו לעבוד בלי בעיות.
במקרה של RHEL, רד הט בשיתוף עם יצרני חומרה ותוכנה אחרים עושה לו גם תהליך של certification - כלומר אישור רשמי לכך שהם תואמים ועובדים ביחד כראוי. זאת אומרת שאם תקנה certified hardware היא תעבוד בוודאות עם RHEL, ואם תתקין certified software אז בוודאות התוכנה תעבוד כראוי על RHEL. במקרים מסוימים זו גם סיבה מספקת לרכוש מנוי אפילו אם אין צורך בשירותים האחרים - כי למשל ספק תוכנה מוכן לתמוך בתוכנה שלו רק אם היא רצה על פלטפורמה “מאושרת”.
הפצת CentOS למעשה, לפחות בעבר, היתה הפצה שלקחה את כל קוד המקור של RHEL (שהוא פתוח וחופשי כמובן), הסירה ממנו את כל הסימנים הרשומים של רד הט, וקימפלה מחדש את כל ההפצה בכל פעם שיצאה גרסא חדשה. התוצאה של זה הוא שמדובר בתהליך שלוקח זמן - וכך למשל כדי לקבל תיקונים צריך לחכות לקימפול מחדש של הקוד לאחר שהוא שוחרר, מה שיכול לחשוף למשל מי שמשתמש בסנטוס לפרצות אבטחה שכבר תוקנו לפרק זמן מסוים.
ב-CentOS 8 יש שינוי מסויים בתהליך הזה שנקרא CentOS Stream - בעצם במקום לחכות לשחרורים חדשים של סנטוס, אפשר לצרוך מעין “centos unstable” שמקבל עדכונים שוטפים כל הזמן מהקודבייס של RHEL ולא רק כשיוצאת גרסא חדשה - כלומר, עדכני יותר אבל פוטנציאלית פחות יציב. למידע נוסף על השינוי הזה - https://www.redhat.com/en/blog/transforming-development-experience-within-centos