לפני מספר ימים כתבתי כאן פוסט שאני מחפש אחר איש שמבין טוב ב-PERL כדי לעבוד עם ה-SDK של VMWare על פרוייקט פאנל לעסק שלי.
היו מספר פניות (מספר קטן מאוד: 2) של אנשים שיש להם ידע ב-PERL, אבל היו אחרים כמו ידידי עמוס שפירא וצפריר כהן ועוד מספר אנשים שהמליצו המלצה מאוד הגיונית: במקום להיתקע ולכתוב איזה משהו שתלוי רק בטכנולוגיה אחת, כדאי להסתכל על libvirt, ספריה שנותנת פתרון שמתממשק לא רק ל-VMWare אלא לכל טכנולוגיית וירטואליזציה פופולרית.
מכיוון שעכשיו חול-המועד ובימים כאלו אין הרבה עסקים, החלטתי להתעמק קצת ב-libvirt.
אם יש משהו שאפשר לאמר על libvirt זה שזו ספריה מעולה ומהפכנית. מה ש-FFMPEG עשה בתחום האודיו/וידאו, libvirt עושה בתחום הוירטואליזציה. ספריה אחת שניתנת לשימוש עם מספר שפות (JAVA, PHP, C, Python, Perl, Ruby) ודרכה אתה יכול לשלוט על המערכות וירטואליזציה בחברה שלך, ולא חשוב על מה הן מבוססות, הספריה תומכת בהכל: Hyper-V, Xen, KVM, VMWare ועוד. כל מה שצריך זה לקמפל את הספריה עם התמיכה המתאימה (קבצי ה-RPM בנויים עם תמיכה להכל). יש גם גירסה ל-Windows (אם כי קצת יותר ישנה).
השימוש ב-virsh יכול להתבצע ב-2 דרכים: הראשונה היא דרך פקודת virsh שנותנת לך להתחבר לשרתים, להריץ פקודות ועוד. האפשרות השניה היא להשתמש ב-libvirt כספריה, להשתמש בשפה האהובה עליך ולשלוף/להכניס מידע לוירטואליזציה דרך הספריה.
הכל טוב ויפה, לא?
זהו, שלא כל כך…
הבעיה הגדולה ביותר של libvirt זה התיעוד והפיתוח שלו. הפיתוח עצמו נעשה ע"י מפתח בשם Daniel P. Berrangé, שחוץ מ-libvirt הוא עובד על עוד כמה דברים. התיעוד עצמו גרוע. כמה גרוע? רשומים פונקציות ופקודות, אבל תוכן לפקודות עצמן במסמך – אין. אם נלך לפי מספרים, וניתן ציון 80 לתיעוד של RHEL, אז הציון לתיעוד של libvirt הוא אולי 20. המסמך שקיים מדבר על 2 גרסאות אחורה, ואין שום מסמך שמציין מה ההגבלות של כל דרייבר, כך שהאפשרויות העומדות בפניך הן לחפש בגוגל ולראות אם מישהו כתב קצת הסברים על כל מיני פקודות, או להתחיל לחפור בקוד ולהבין משהו מזה. יש ספר שמדבר על KVM עם libvirt, רק שהספר בגרמנית. בא לך לסמוך על התרגום של גוגל Translate?
למען האיזון אני יכול לציין שגם התיעוד ב-SDK של VMWare לוקה בחסר. לדוגמא: אם מסתכלים על הפקודה vmcreate.pl אפשר לראות שחסרים המון פרמטרים. היכן לדוגמא הפרמטר ל-thin provisioning? מה עם כל האפשרויות של ניהול משאבים בלי resource manager? לך חפש בגוגל, אולי מישהו מצא לזה פתרון עוקף..
אבל הבעיה היותר גדולה לדעתי היא של Red Hat, חברה שכבר הרוויחה מעל מיליארד דולר ועדיין תקועה בעבודה כאילו העסק מורכב מ-3 וחצי מתכנתים. פרויקט כמו libvirt או פרוייקטים סמוכים כמו oVirt, Virt-Manager יכולים למשוך קהל לקוחות רחב, אם הפרוייקט יכתב ויתועד בצורה מקצועית. מקצועית זה אומר לא לכתוב אפליקציות דסקטופ אלא אפליקציית ווב, לשכור מהנדס עיצוב שיפתר מהזוועה העיצובית של אותם אפליקציות, לכתוב תיעוד מלא לכל פיפס.
בשוק הוירטואליזציה VMWare תופסים את המקום הראשון בגלל סיבות ברורות: מוצרים יציבים, תיעוד ותמיכה רציניים, אבל VMWare לאחרונה התחרפנו עם המחירים לגירסה 5. הם קצת ירדו מזה, אבל עדיין המחירים גבוהים, וזו הזדמנות מעולה למתחרים להגדיל את הפלח שלהם בשוק הוירטואליזציה.
רבים טוענים "KVM חופשי ובחינם, אתה יכול להשתמש בזה". טכנית הטיעון מוצדק, אבל חברות מחפשות נוחות, קלות שימוש וכמה שפחות תחזוקה, ו-KVM שמגיע עם Fedora או Ubuntu הוא הדבר האחרון שאפשר לקרוא לו "קל". תסתכלו לדוגמא על Citrix: לקחו גירסת לינוקס, הצמידו לה את Xen, בנו GUI (שרץ על Windows בלבד כ-Client) קראו לזה XenServer והחלו לחלק אותו בחינם לכל אחד שרוצה. יש לו כמובן פונקציות רבות שנעולות לשימוש (אלא אם תרכוש רשיון), והרבה מאוד חברות משתמשות בזה . תארו לכם ש-Red Hat היו מוציאים דבר כזה בחינם (עם אפשרויות הרחבה בתשלום כמובן)? לרד-האט יש שם מוכר בשוק ובמיוחד ב-Enterprise והרבה היו מתעניינים ומנסים את המוצר..
אבל Red Hat מעדיפים למכור את ה-RHEV המוצר שקומרנט פיתחה לפני ש-Red Hat רכש אותם. לדבר הזה אין אפילו Trial כך שקשה אפילו לשפוט את המוצר מדף הסופי. פלא שהמוצר שלהם נמצא אי שם למטה מבחינת נתח שוק?
ועוד נקודה אחת: יש כאלו המחבבים את Proxmox VE ולמען האמת זהו מוצר נחמד לחברות ולעסקים קטנים שרוצים לשים מספר שרתים ולפתוח עליהם כמה עשרות מכונות וירטואליות, אבל כשרוצים לתכנת את הדבר הזה, מגיעים שוב לעניין ה-libvirt שציינתי למעלה. לא כיף.