דברים שלא ידעתם על קוד פתוח


01 Mar

אני עוסק, שנים רבות, בקוד פתוח ועד היום שואלים אותי שאלות שחשבתי שכבר כולם יודעים:  "אם זה קוד פתוח וחופשי אז מדוע Red Hat לוקחים ממני כסף על ה Linux שלהם ?", "אהה, אני משלם על תמיכה, אז אם אני לא צריך תמיכה, אני כול להמשיך ולהשתמש ב Red Hat Enterprise Linux ולא לשלם עליו ?"

לכן חשבתי שאכתוב על הקשר בין קוד פתוח לבין המפיצים (שמכונים distri), כמו Red Hat.

קוד פתוח הוא קוד שעליו עובדים הרבה מאד מפתחים. חלקם הגדול מקבל משכורת מחברות שונות עם אינטרסים שונים. הפיתוח נעשה בצורה מסודרת ויודעים מראש מתי יוצאות גרסאות חדשות, לרוב מספר פעמים בשנה – אף שאנחנו חושבים שיש שם הרבה בלגאן עם הרבה אנשים עם שער ארוך, חולצות משובצות וסנדלים שעובדים על הקוד להנאתם בלבד. רק על זה אפשר לכתוב (ובטח נכתבו כבר) ספרים שלמים.

 מה שאנחנו צריכים לזכור הוא שכל אחד יכול לעשות שינויים בקוד הפתוח כי יש גישה מלאה לקוד המקור – אבל, לרוב הקוד הפתוח מוגן ברישיון GPL שאומר שמי שמשנה את הקוד, חייב לשלוח את השינויים למי שנתן לו את הקוד וכן אסור לו לקחת כסף על המוצר החדש שגם הוא מוגן ברישיון GPL.

 אז יש לנו אלפים רבים של פרויקטים שנכתבים תחת הקוד הפתוח, לכל אחד יש מטרות משלו, לוח זמנים שונה, קישורים לפרויקטים אחרים ורצון להכניס כמה שיותר חידושים.

 לנו , כלקוחות, יש דרישות שונות במקצת: אנחנו רוצים לקבל את כל המוצרים במקום אחד, שכל החלקים יתאימו זה לזה, לקבל גרסאות מוצר שיחיו מספר שנים, לדעת שהמוצר כולל תכונות של Enterprise (כמו security, תמיכה ב Up Scale computing ועוד), לקבל תמיכה לשאלות שלנו או לבעיות שעולות, Patches דחופים, דוגמאות לשימוש, הדרכה ועוד.

 לתוך הפער הזה נכנסות חברות ה distri כמו Red Hat. אז מה עושות החברות הללו ? 

  • אוספות את הפרוייקטים השונים, בודקות את הקוד ואת ההתאמה לשימוש ל Enterprise. במידה ונמצא כי יש צורך בשינוי או הוספה אזי ניתן יהיה ליצור קבוצת עבודה לטיפול בנושא הזה או שאנשי ה distri יפתחו את החלק החסר וימסרו אותו בחזרה לפרויקט
  • בודקות את העבודה המשותפת של הפרוייקטים השונים, לדוגמא: ה Linux כולל ליבה (Kernel) וסט פקודות שמסתמכות על הליבה. חייבים שקוד הפקודות יהיה מסונכרן עם קוד הליבה. ב Linux עצמו יש עשרות פרויקטים שיש לסנכרן את רובם הגדול
  • מכינות התקנה פשוטה של המוצר שכולל את כל הפרוייקטים השונים
  • נותנות תמיכה של המוצר לאורך זמן ארוך, Red Hat יכולה לתת תמיכה עד ל 9 שנים
  • לרוב הקוד מגיע עבור פלטפורמה של X86, ולפעמים יש צורך לבצע הסבה לפלטפורמות אחרות, Red Hat עושה הסבות לפלטפורמות של Mainframe, IBM Power, מערכות מבוססות ARM ועוד
  • בונות הדרכות למוצרים השונים
  • בונות דוגמאות לשימוש, לדוגמא: Red Hat Ansible, מוצר האוטומציה של Red Hat מגיע עם מספר ענק של אוטומציות לשימושים שונים שניתן להתאימם לכל לקוח ולקוח
  • החברות דוחפות ארגוני תקינה או קבוצות פיתוח לכיוונים שלדעתם חשובים: כגון Online Patching, Realtime Performance ועוד

 הלקוחות משלמים ל Red Hat בעבור כל העבודה הנ"ל ולא עבור המוצר עצמו כי, כפי שנאמר, הוא תחת רישיון GPL ולכן נמסר ללא תמורה, ולכן גם בלי להשתמש בתמיכה שמוצעת על ידי Red Hat, יש להמשיך ולשלם עבור השימוש בעבודה שנעשתה על ידי Red Hat כדי להביא את המוצר למחשב הלקוח.

 אם תרצו לשמוע עוד או לשאול, אל תהססו לפנות אלי: אהוד ברץ, CTO, בדוא"ל ehood@bluesd.co.il או לדולב סביר, מנהל מוצר Red Hat, בדוא"ל Dolev@vdg.co.il


הערות
* כתובת הדואר האלקטרוני לא תוצג באתר.