כמה מילים על SDK, libvirt, KVM, VMWare – פספוסים ותחרות

לפני מספר ימים כתבתי כאן פוסט שאני מחפש אחר איש שמבין טוב ב-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 שציינתי למעלה. לא כיף.

מחפש איש PERL

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

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

האם אני מרוצה מהמצב הנוכחי? ממש לא.

כשאני מדמיין פאנל, אני מדמיין פאנל הרבה יותר עשיר ממה שקיים אצל כל מתחרה, פאנל “חמישה כוכבים”. אני רוצה שפאנל יהיו לפחות חלק מהדברים הבאים:

  • התחברות סריאלית (וירטואלית) לשרת, והתחברות גרפית לשרת גם אם הוא קרס. לא תמיד שרות ה-syslog מראה על מה המכונה קרסה, וב-Windows שרותי ה-Event לא תמיד מתעדים הכל כשמופיע מסך כחול. התחברות כזו יכולה לסייע ללקוח לראות מה באמת הבעיה.
  • החלפת מערכות הפעלה והתקנת גרסאות “זרות”. נניח שלקוח רוצה להרים שרת Asterisk והוא לא מעוניין להרים מערכת CentOS ולהקים עליה מאפס את הכל, אלא הוא רוצה להרים Flash in a box מקובץ ISO שקיים במערכת. הפאנל יאפשר לו להצביע על מיקום ה-ISO, המערכת תוריד את ה-ISO ותתחיל בהתקנה ואותו לקוח יוכל להתחבר בחיבור ישיר (סעיף קודם) כדי להמשיך עם ההתקנה.
  • גרפים עשירים: איך המכונה שלך מבחינת מעבד, זכרון ודיסק בזמן אמת, ביום האחרון, חודש אחרון, שנה אחרונה וכו’. יש לך אירוע חשוב? תוכל להתחבר, ולראות ב”שידור חי” מה קורה עם השרת מבחינת עומס, ומכיוון שהמערכת דוגמת מבחוץ (ברמת Host ולא ברמה של SNMP מה-VPS עצמו) תוכל לראות את הגרפים בזמן אמת גם כשהמערכת עמוסה.
  • יצירת Snapshots ושחזור מהם, לפי כמות שהלקוח בוחר. (יעיל מאוד כשאיש הסיסטם החדש שוב שכח ליצור קובץ גיבוי להגדרות ועכשיו הכל מתפקשש)
  • מערכת “מחשוב ענן” – לקוח יכול להקים עוד שרתים נוספים ולהרוג אותם כרצונו עם Master Image שהוא יוצר מבלי לעבור בירוקרטיה.
  • דינמיות מלאה: צריך עוד ליבות? עוד זכרון, עוד דיסק? עוד רוחב פס? כמה קליקים עם העכבר ויש לך את זה מבלי למחוק את המערכת.

יש לי עוד כמה סעיפים שלא אפרט (בכל זאת.. יש תחרות וגם המתחרים קוראים בלוג זה)..

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

מדוע אני צריך מישהו עם ידע רציני ב-PERL? כי אני עובד עם VMWare ו-VMWare מציעים SDK ב-Perl או בדוט-נט. כחובב קוד פתוח אני כמובן לא מעוניין בפתרונות דוט-נט, אז נשאר PERL. אני מעדיף שהפרוייקט ירוץ ישירות מול השרתים ולא מול מערכת vSphere מרכזית של VMWare (מסיבה פשוטה: תקציב. VMWare העלו את המחירים בטירוף לאחרונה ושימוש במערכת vSphere שלהם תייקר את כל העניין).

מטבע הדברים, כחובב קוד פתוח, חלק ניכר מהמערכת ישוחרר לציבור כפרויקט קוד פתוח (לא הכל, שוב, עניין של מתחרים…)

יכלתי לפנות לחברות גדולות או בינוניות כדי שיבנו לי, ואז המחיר היה בהתאם (אני מניח שלמעלה מ-80K), סכום שאין לי כרגע, ולכן החלטתי לעשות משהו אחר ולפצל את העבודה לפי הנקודות הבאות:

  • יושכר מתכנת PERL שילמד קצת את ה-SDK ויבדוק יכולת התכנות של מספר דברים שאבקש ממנו לבדוק. על חלק זה ישולם למתכנת לפי שעה.
  • אם הדברים מתאפשרים, יסוכם ביני לבין המתכנת פרוייקט של כתיבת סקריפטים שונים כדי לבצע את העבודות עצמן. מה שהוא יכתוב יהיה ה-Back end, כלומר מישהו “מקדימה” יפנה אל הסקריפטים עם פרמטרים והסקריפטים יבצעו את העבודה ויציגו את התוצאה.
  • בסמוך לסיום החלק הנ”ל יושכר מתכנת נוסף כדי להרים מערכת Front End (כפי הנראה ג’ומלה או דרופל) שתציג למשתמש את כל הממשק בצורה ויזואלית יפה, ולמשתמש יהיו חיים קלים בניהול דרך הפאנל.

לפיכך, להלן מה שאני מחפש:

  • מישהו עם נסיון רציני ב-PERL. לא מישהו שיש לו נסיון של חודש ב-20 שפות.
  • רצינות ועמידה בלוח זמנים
  • עדיפות לאחד שיכול להוציא חשבוניות מס
  • רצוי אחד עם “תיק עבודות” שיכול להראות מה הוא יצר בעבר, או לפחות תיאור של מה שיצר בעבר
  • שתהיה לו סבלנות

אם אתם מכירים אחד כזה, אתם מוזמנים להפנות אותו אליי באימייל: [email protected]

תודה וחג שמח לכולם

טיפים לחסכון כספי באירוח שרת/אתר

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

היתרונות של השרותים שאני ממליץ כאן הם פשוטים: הם הרבה יותר שרידים מאשר שרת או 2 של הלקוח שסביר להניח שלא יעמדו בהתקפות מאסיביות או פריצות ותקלות.

להלן הטיפים:

  • רכישת דומיין: אם רוצים לרכוש דומיין, כדאי לעשות זאת עצמאית מול רשמים בארץ או בחו"ל. היתרון בדומיין מחו"ל הוא המחיר הזול מאוד. לדוגמא: Cheap Domain עם סיומת info יעלה לך 2 דולר לשנה ו-6 דולר לשנתיים. אתרים אחרים ימכרו לך דומיינים עם סיומת COM בדולרים בודדים (רק כדאי לשים לב מה המחיר לשנתיים). אפשר לקנות דומיינים עם סיומת co.il אך אם קונים את זה רק לשם הניקוד בגוגל, גוגל כבר לא מתייחסים לשם הדומיין למען ניקוד PR גבוה יותר.
    אם מעוניינים בדומיין חינמי, אפשר לפנות אל co.cc ולפתוח שם דומיין. כל עוד שם הדומיין שלך לא תפוס או שהוא מעל 8 אותיות, תוכל לקבל 2 דומיינים בחינם (בלי פרסומות).
  • לאחר שרוכשים דומיין, צריך שרת DNS שיחזיק את הרשומות. לצערי רבים עושים שגיאה מסויימת ונסמכים על שרת פיזי אחד (עם 2 מכונות וירטואליות) כדי להרים שרת DNS. חברים, יש את Zone Edit שישמחו לארח את שרות ה-DNS אצלהם ל-2 הדומיינים הראשונים שלכם בחינם. היתרון שלהם על פני כל מיני חברות שמציגות יכולות DNS "מעולות" (תחת שמות כמו "Triple DNS") של-Zone Edit יש 18 שרתי DNS פיזיים רק בשביל זה, ומנסיון שלי: לי יש אצלם 25 דומיינים עוד מ-95 ועד היום לא היתה לי שום בעיה עם השרות שלהם.
  • הולכים להקים שרת מייל? זה נחמד, אבל זה כרוך במקרים רבים בכאב ראש לא קטן: יוזרים, דואר זבל, התקפות על שרת המייל ושאר מרעין בישין. לעומת זאת, גוגל נותנים לך בחינם את Google Apps, שרות שנותן לך 50 תיבות דואר כשכל תיבה בגודל 7 ג'יגהבייט, וכבונוס אתם מקבלים יומן, בניית אתר פשוט (עם Google Sites), את Google Docs ושאר תופינים. כל מה שצריך לעשות זה להירשם, להפנות את רישומי ה-MX שלכם לכיוון גוגל, ותוך זמן קצר אתם יכולים להוציא את המייל שלכם מהשרת דרך גוגל, וגוגל הרבה יותר יציבים מבחינת מייל מול כל שרת שאתם תקימו, והם כבר בין כה מטפלים בדואר זבל, וירוסים ושאר קללות.
  • צריכים לאחסן את הגיבויים שלכם בצורה מאובטחת? יש כל מיני אתרים שמציעים גיבוי, אבל רובם גם מגיעים עם מחיר חודשי שאם השתמשת או לא השתמשת, אתה תשלם את המחיר המלא של אותו מנוי. לעומת זאת, אמזון מציעים את S3 או ה-Simple Storage Service שלהם, ושם אתם תשלמו בדיוק מה שאתם משתמשים פר ג'יגהבייט: 9 סנט לגיבוי עם שרידות או 14 סנט לגיבוי עם שרידות מטורפת (ויש עוד עלות של 10 סנט פר ג'יגה תעבורה). שוב, הגיבוי שאתה תעשה לא יחזיק כמו הגיבוי שאמזון נותנים כ-שרות. משהו שחשוב לזכור: השרות S3 של אמזון לא מתאים לשימוש כ-Storage נוסף כאילו חיברת SAN או NAS לשרת שלך (אלא אם יש לך מכונות וירטואליות באמזון AWS ואז ה-S3 נותן לך אחסון למכונה שלך שם), אלא כגיבוי ושחזור וגישה מכל מקום אליהם דרך כלים שונים.

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

מוגש כחומר למחשבה.

בעיית וידאו מהותית – ופתרון

במסגרת העסק שלי ישנם לקוחות שלקחו רוחב פס מכובד ומשדרים וידאו לכמה אלפי אנשים במקביל. אני נותן תמיכה לבעלי המכונות הוירטואליות, והכל עובד טוב ויפה כולל וידאו לפי דרישה (VOD) ווידאו בשידור חי (Live) ואנשים מצליחים לראות את הוידאו…

חוץ מכמה אנשים, וכמובן שלקוחות הכי מתעצבנים שיש כמה אנשים ששולחים אימיילים שהם לא רואים כלום.

העסק שלי משדר בפרוטוקול RTMP שנותן לא רק אפשרות לשדר שידור חי ולפי דרישה, אלא שהוא יודע להתמודד היטב במצבים בהם הצופה מקפיא שידור, ו"קופץ" בוידאו קדימה ואחורה (בוידאו לפי דרישה), וכמובן שלפני שאני נותן ללקוח את המכונה הוירטואלית, אני מוודא כי הוידאו נצפה בדפדפנים שונים (אקספלורר 8, פיירפוקס 3, כרום 6, אופרה 9) ובמערכות הפעלה שונות.

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

ביקשתי שישלחו לי תמונות מסך לראות את התקלה ולא מצאתי שום דבר שיראה מה הבעיה… עד שראיתי במקרה מהתמונות מסך כי הם משתמשים בחיבור הסלולרי של סלקום.

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

לשמחתי, לא היה מדובר בתקלת הגדרות בשרתים אצלי ולא בתקשורת אצלי, אלא התקלה אצל סלקום. מהי התקלה? די פשוטה:

תוכנת הנגן יוצרת קשר עם שרת הוידאו אצלי ומזדהה עם כתובת IP ומבקשת את התחלת ה-Stream שישודר לנגן. השרת מקבל את הבקשה ומתחיל לשדר, והכל עובד… אם יש לך חיבור כבלים או ADSL. בחיבור עם סלקום, בגלל שהכל סלולרי, כל הסיפור לוקח יותר מ-100 מילישניות, וחומת האש של סלקום מהרגע ש"קולטת" את עניין פתיחת פורט 1935 מנסה לחסום זאת מיידית. חומת האש מצליחה לעשות זאת אם יש בקשה אחת, אבל אם המשתמש לוחץ על Play שוב ושוב, אחרי 5 פעמים בערך חומת האש "מרימה ידיים" ויש שידור.

עיון מהיר במסמכים של מספר תוכנות שידור מראה כי אפשר לפתוח עוד פורטים כמו פורט 80 (ובעצם לעבור לשידור ב-RTMPT) שהוא אינו חסום אצל סלקום בברירת המחדל. הגדרתי את השרת וידאו לשדר גם בפורט 80 ובנוסף את פורט 1935 והפלא ופלא – השידור רץ חלק. (ניסיתי זאת על FMS של אדובי, Wowza, ו-Red5).

לכן, אם אתם משדרים וידאו לקהל שאינכם יודעים איך הוא מתחבר לרשת, פתחו גם את פורט 80 וגם את פורט 1935. אם אתם מריצים שרת ווב כמו אפאצ'י או IIS, מומלץ להוסיף כתובת IP לשרת ולכוון את הגדרות ה-Listen ל-IP הנוסף, ולהגדיר כמובן את ה-DNS בהתאם.

שימו לב: לשיטת עבודה עם RTMPT ופורט 80 יש חסרון אם כמות התעבורה היוצאת מחושבת (כמו במקרים של אמזון EC2) לפי תשלום פר מגה או ג'יגהבייט, הואיל והשרת צריך להצמיד HTTP Headers לכל "הודעה". בשידור לכמה אלפי לקוחות זה יחסית זניח, בשידור למיליוני אנשים בעת ובעונה אחת, זה לא כל כך זניח.

מחשבות על חומת אש ורעיון קטן

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

מדוע אני מספר לכם את זה? הסיבה פשוטה: תעבורה. ברשותכם, אפרט..

רוב הקופסאות המשמשות היום כחומות אש עבור שרתים ותחנות עבודה בנויים פחות או יותר אותו דבר. הם בעצם PC עם לוח אם קטנטן, ומספר חיבורים. מה שרץ על ה-PC זו מערכת הפעלה כלשהי (ברוב המקרים זה לינוקס, בשאר זה BSD) ומעליה "שכבה" שכוללת ממשק וובי וכל מיני תוספות, בהתאם לסוג המוצר והחברה המייצרת אותו.

אבל ההבדל הגדול ביותר בין הקופסאות, היכן שההבדל מגיע ממחיר של 1000-3000$ למחירים של 10,000 דולר ומעלה – הוא הבדל התעבורה. קופסא קטנה יודעת להעביר תעבורה של כמה עשרות מגהביטים בשניה (כולל תקשורת VPN), קופסא בינונית יודעת להעביר מאות עד משהו כמו 8 ג'גהביט בשניה, וקופסאות יותר גדולות מתחילות ב-6 ג'יגהביט לשניה ומטפסות בהתאם, כולל מחיר שמזניק בחופשיות כלפי מעלה.

בעסק שלי, לדוגמא, אני נתקל ב"בעיה" די מבורכת: בהתאם לכמות הלקוחות אני מגדיל את הקווים (כרגע זה עומד על 300 מגהביט סימטרי, לסקרנים) ואם אזמין לדוגמא עכשיו קופסא הרבה יותר רצינית שתשמש כחומת אש, אני אצטרך לשלם בסביבות ה-2000-3000 דולר, אבל אם קצב הגדילה שלי ימשיך להיות כמו שהוא כרגע, אני מאמין שעוד מס' חודשים יהיה לי רוחב פס של ג'יגה פלוס בקו סימטרי וכאן תצוץ בעיה: אותה קופסא לא רק שלא יכולה לעזור לי עם התעבורה, אלא שאני אפסיד בעצם את הסכום ששילמתי, שלא לדבר על הסכום שאצטרך לשלם על קופסת חומת אש שיודעת לנתב תקשורת ברוחב פס של ג'יגה ומעלה. המחירים לדברים כאלו למוצרים מוכרים וידועים מתחילים ב-10,000$, ואם אני אגדל ליותר מ-5-8 ג'יגהביט תעבורה, שוב אמצא את עצמי באותו מצב. נכון, אפשר להשתמש במס' קופסאות של חומות אש להגן על קבוצות שונות של שרתים, אבל זה לא תמיד הדבר הכי יעיל.

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

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

קופסא כזו לי היה יותר קל לרכוש ולהצדיק את ההשקעה בה ואני בטוח שאני לא היחיד שחושב כך.

מישהו רוצה להרים את הכפפה? 🙂

כמה מילים על מיקום שרתים

בשעה טובה העסק נפתח, שרתים נרכשו, ואפשר להציץ בחנות ולהזמין Trials או לרכוש חבילות. אגב, הבלוג הזה מאוחסן באחד מהשרתים הוירטואליים ורק המעבר קיצץ ב-45% את זמן הטעינה שלו.

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

אני מנסה להבין, בשביל מה?

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

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

בחברות היי-טק אחרות גם קיים חיבור סימטרי לשם שימוש בחיבורי VPN למפתחים, מנהלה וכו'

הסידור הזה עובד לא רע לאותן חברות, חוץ מעניין קטן: קווים אלו עולים הרבה לחודש: אם נחשב את עלות התשתית + ספק, אפשר בקלות להגיע לכמה אלפי שקלים לחודש רק על חיבור לרשת.

אפשר לחסוך לא מעט. הבה נבדוק היכן ניתן לחסוך (וכאן אני מדבר מנסיון):

  • דוא"ל: רוכשים 2 כתובות IP קבועות ו-2 קווי ADSL, כאשר הראשון יכול להיות 20-30 מגה ב-Downstream ו-1 מגה ב-Upstream והשני יכול להיות גם במהירות 1-2 מגה ב-Downstream ו-1 מגה ב-Upstream. המודם השני ישמש אך ורק ככתובת SMTP ואיתה שרת הדוא"ל יוציא החוצה מיילים, כאשר הגלישה לעובדי המשרד מתבצעת דרך המודם הראשון. אם רוצים לייעל את התהליך, אפשר להשתמש ב-PFsense לחלק גם את הגלישה במצב שהקו השני לא עושה כלום, וכך כולם במשרד יכולים לקבל שרותי אינטרנט.
  • Web Serving: אני לא מצליח להעלות בדעתי שום יתרון להגשת דפים דרך שרתים שיושבים בחברה. דווקא אחסון של אותם שרתים תחת חברת אחסון שרתים/אתרים יכול לתת לכם הרבה יותר מהירות ממה שיהיה לכם במשרד, ואני יכול לתת דוגמא: אני מציע לדוגמא חבילת VPS Basic ששם מדובר בחבילת וירטואליזציה בסיסית ואיתה אני נותן עד 10 מגהביט החוצה מהשרת פה בארץ, והאמינו לי, אני לא מוכר בהפסד. עם אחסון שרת אני יכול לתת הרבה יותר קו ממה שחברה יכולה לשכור לעצמה בחיבור למשרדים שלהם ובהרבה הרבה פחות מחיר. בוא לא נשכח שכל Data Center מכובד ערוך ומוכן להגן על השרתים שלכם הרבה יותר ממה שיש במשרד טיפוסי, ששם ה-UPS יכול להחליט בדיוק ברגע שיש Spike בחשמל (או הפסקת חשמל) לא לפעול ואז אותו מנהל רשת בחברה – בבעיה.
  • שרידות: דווקא בשרידות יש לספק אחסון שרתים/אתרים יתרון מאשר לחברות קטנות. כמה חברות חתומות על חוזה שהטכנאי של החברה שממנה רכשתם את השרתים (HP, DELL וכו') מגיע תוך 4 שעות ומחליף חלקים בלי לשאול יותר מדי שאלות? לא הרבה. לפחות במקרה שלי  – זה ה-SLA שלי לציוד שאני רוכש, כלומר אם אתה שוכר/רוכש ממני (לדוגמא) את הברזל בזמן שאתה בונה שרידות, יהיה לך SLA לגבי טכנאי בזמן יותר קצר מבלי לשלם הון תועפות על חוזה כזה.
  • וירטואליזציה: אם חברה מגישה תוכן משרתי Web שרצים על פתרונות וירטואליים, אפשר הרבה יותר בקלות להעביר אותם לספק אחסון אתרים/שרתים ולנהל אותם עם איזה ממשק שרוצים וגם לקבל רוחב פס להגשה החוצה הרבה יותר גדול בשבריר מחיר ממה שעולה קו יעודי למשרד.

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

כל מה שצריך הוא לשמור על ראש פתוח.

מוגש כחומר למחשבה.

מדוע החלטתי ללכת על VMWare

אתמול פרסמתי בבלוג שבמסגרת העסק של מכירת שרתי VPS, אני הולך להשתמש ב-VMWare. לא חשבתי שזה ישנה להרבה, עד שפתחתי בבוקר את תיבת ה-GMAIL שלי לגלות לא פחות מ-15 מיילים של אנשים שנדהמו שאני משתמש בכלי ה"משוקץ" הזה במקום להשתמש בפייבוריט של כולם: XEN.

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

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

אז מדוע בעצם הלכתי על VMWare?

הסיבות הן פשוטות וברשותכם אפרט:

  • להקים שרתי XEN לוקח זמן. כמה זמן? המון זמן. את קובץ הקונפיגורציה פר מכונה אפשר ליצור דרך סקריפט PHP פשוט עם ממשק וובי עם כמה כפתורים לבחור מה יהיה במכונה, ה-PHP יצור קובץ, ודרך פקודות xm (או virsh אם משתמשים ב-RedHat/CentOS) אפשר להפעיל את המכונה, אבל אם אתה רוצה יותר (ואתה צריך יותר) דברים כמו Traffic Shaping (מה לעשות, לתת לילד בן 17 שרת VPS די מבטיח שהוא יחנוק לך את הקו ולא חשוב כמה תתן לו), או Load Balancing או שימוש באחסון (בין אם זה iSCSI או AoE וכמובן שצריך LVM לביצועים טובים) – הדברים האלו מצריכים זמן כדי לתכנן אותם בצורה יסודית, ועוד לא התחלתי לדבר על איזון בין השרתים הוירטואליים בתוך המכונה עצמה (XEN בהגדרות הרגילות שלו לא משהו בזה, במיוחד כשלא משייכים מכונה וירטואלית לליבה ספציפית. מנסיון!)
  • עלויות: אם יש משהו אחד שאתה לא יכול לעשות בביזנס, זה לשחק בלקוחות שלך, להרים להם מכונה, לשכוח הגדרה ולהוריד לו אותה ככה, מבלי לחטוף צעקות ואיומים מהלקוחות (הייתי בסרט הזה בעבר). אני יכול לשכור לשכור שרת עם 2 מעבדי XEON מרובעי ליבות עם 8 ג'יגה זכרון ב-350 דולר לחודש ואז לשחק, אבל אז גם בזבזתי 1400 שקל, וגם אני מפסיד כסף כי אני לא יכול באותו זמן לשרת לקוחות כפרילנסר, בזמן שאני "משחק" עם ההגדרות של XEN, מוסיף חוקי iptables, כותב סקריפטים מחדש, מחפש פאנל כלשהו (וגם זה בתשלום כמובן) עד שאני מגיע למשהו יציב שמאפשר להריץ לקוחות בצורה יציבה, כלומר ההפסד הוא גדול.
  • השקעה: אם היה לי איזה מיליונר שבא, נותן טפיחת שכם שפורקת את הכתף, שם צ'ק שמן של כמה עשרות אלפי דולרים ואומר לי "חץ, תרים לי הוסטינג!", אז בהחלט היה מקום להרים שרתי XEN, לקחת את הזמן ולעשות את כל העבודה הגדולה. במקרה שלי, זה חלום של כמה שנים לתת משהו יותר טוב מהאחרים עם מחירים שוברי שוק, רוחב פס מכובד ו"ברזלים" רציניים. את כל הדברים האלו אני צריך לממן מכיסי, ו-XEN כרגע, כמו שאמרתי מקודם, יכניס אותי להפסדים לפני שאקבל לקוח ראשון.

אז עשיתי את החישובים שלי והגעתי למסקנות:

  • VMWare נותן לי פתרון יציב ומהיר פה ועכשיו. איתו אני יכול להרים תוך מס' דקות מכונות ללקוחות וגם לתת Trial ללקוחות פוטנציאליים.
  • בניגוד לאחרים שמשתמשים ב-VMWare ומגלגלים את העלות העצומה שלו על הלקוח (לי פה בארץ לקחו פעם על מכונה מבוססת VMWARE עם 5 ג'יגה מקום מחיר של 60 דולר, וזה היה רק לפני 3 שנים), אני לא מגלגל כלום כי לי הרשיון של VMWare עולה … 0 (לא, לא גירסה פרוצה ולא עם שימוש ב-Keygen, חוקי לחלוטין). ככה זה שמכירים את המייסדים היהודיים של VMWare ושולחים להם "שנה טובה" כל שנה ואיחולים בחגים. יש יתרון בלהיות יהודי 🙂
  • VMWare נותן לי לעשות דברים ש-XEN לא נותן. עם שניהם ניתן להגדיל זכרון על מכונה "חיה" (בתקווה שה-Guest יכיר בכך: לינוקס מכיר, Windows 2003 לא), אבל מה עם הוספה של CPU? לקוח רוצה שאוסיף לו עוד ליבה מבלי שאעשה לו ריבוט, ב-VMWare לוקח 3 שניות לעשות את זה וה-Guest יכיר בכך (תחת מגבלות, שוב, Windows 2003 לא מכיר, Windows 2008 Data Center כן מכיר, לינוקס מכיר חופשי כל עוד יש לך קרנל די עדכני) ויש עוד עשרות פונקציות שאני יכול להציע ללקוחות שלי ללא תשלום נוסף שאותם אני לא יכול להציע עם XEN
  • מי שחושב שלהשתמש ב-XEN כתוכנה של קוד פתוח עוזר לתוכנה חופשית, עדיף שיזכר מי הבעלים של XEN.. סיטריקס, והם לא רד-האט שמשחררים קוד ברגע שיש להם מוצר שנרכש כמו Netscape Directory וכו'. לא מאמינים? תשוו בין הפתרון המסחרי של XenServer ל-Xen קוד פתוח.

לסיכום: יש יתרון ל-XEN ויש יתרונות ל-VMWare, אבל כשזה מגיע לביזנס, תעדוף הדברים שונה.

וירטואליזציה, "ענן פנימי", ושטויות במיץ עגבניות

מי לא שמע על נמרוד הראל? הבחור מומחה בקסמים, אשליות וכו' והוא כבר אדם מוכר בכל בית בישראל שראו אותו מופיע בשלל תוכניות בערוץ 10. כשמדברים על קוסמים וקסמים, הרבה דווקא יזכרו את נמרוד הראל בגלל הצורה שערוץ 10 החדיר אותו לתודעה הציבורית.

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

יצא לי היום לקבל את המייל היומי מ-LinkedIn ושם מצאתי את הלינק הזה של PConLine, על "תחקיר" בנושא "מחשוב ענן פנימי".

אני רוצה להתחיל ולציין משהו מסוים: אני לא סובל חברות שמוציאות דוחו"ת עמוסי Buzz words עם מספרים מומצאים על כל מיני "עתידות". אני חושב שאם מנמ"ר כלשהו סומך על דוחו"ת כאלו ומתכנן לפיהם את העתיד הטכנולוגי של החברה שהוא עובד בה, הוא שם את תקציב החברה על קרן הצבי, על כל המשתמע מכך. מישהו זוכר לדוגמא כמה חברות אלו חזו ורודות למעבדי Itanium? מה לגבי Vista? טלפונים סלולריים מבוססי Windows Mobile? בכל פעם חברות כאלו נתנו דוחו"ת עם מספרים יפים, אבל המציאות סירבה להתיישר לפי מספרים אלו. מי שהשקיע את כספו לפי תחזיות אלו – נפל.

כשהסתכלתי על תקציר הדו"ח, קלטתי כמה משפטים מעניינים. הנה ציטוטים:

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

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

קראתי את הטקסט שמופיע בלינק, והרמתי גבה… חסכון בזמן? פינוי זמן לעיסוק בנושאים פנימיים? WTF?

קודם כל נבהיר מה פרויקט וירטואליזציה כן נותן ולאחר מכן מה לא תקבל כשעושים קונסולידציה (סתם דוגמא: 10 שרתים ל-2 שרתים פיזיים גדולים):

  • חסכון בחשמל
  • חסכון בהוצאות על תחזוקת חומרה
  • חסכון בהוצאות על קירור
  • אם השרתים יושבים בספק Hosting כלשהו, אז ישנו חסכון במקום (ארונות וכו')
  • חסכון בהוצאות על UPS, כבילה, מיתוג וכו'.

מה אני לא מקבל? חסכון בעבודה למנמ"ר או האיש סיסטם (תלוי בחברה):

מדוע? מכמה סיבות:

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

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

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

פרילנסרים ו"שיטת מצליח"

מישהו פעם אמר לי "אם משהו קורה לך פעם, פעמיים מבלי שהתכוונת, זה מקריות. 3,4 פעמים ומעלה – זו מגמה". הביטוי היחיד שעולה לי לראש למה שקרה לי ביומיים האחרונים כ-4 פעמים הוא "שיטת מצליח"

הנה מה שקורה: פרילנסר X יוצר עמי קשר, מאחל לי מזל טוב על כך שהפכתי לפרילנסר, ובדיוק יש לו הצעה בשבילי, הצעה שיהיה קשה לי לסרב לה. הפרילנסר הנכבד מדבר על כך שיש לו או-טו-טו (תרגום: תוך שבועיים/שלוש/חודש/חודשיים/מחק את המיותר) פרויקט חדש אצל לקוח שלו והוא שמע עליי שאני ממש "קוסם" בכל הקשור לתחומים שאני מכיר. הפרילנסר מפליג בתיאור עבודה שנוכל לעבוד יחדיו, ושכל פרויקט חדש שיכנס הוא יוכל להעלות לי את התעריף לשעה שאקבל, ושהוא "בקרוב" (כן, שוב או-טו-טו) מקבל פרויקט גדול המדבר על יותר מ-100 שעות בחודש, וכך אוכל לקבל שכר מאוד מכובד. הרבה יותר משכיר שעובד כאיש לינוקס! הפרילנסר מבקש ממני לחשוב על הנושא ולהחזיר לו תשובה על איזה סכום אני רוצה לשעה ובאיזה תנאי תשלום. (בחלק מהמקרים הדרישה היתה לתשובה פה ועכשיו).

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

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

  1. מה יש כרגע על השולחן? אצל חלק מאלו שהציעו לא היה שום פרויקט סגור וחתום, ואצל חלק מהם היו פרוייקטים שבמקרה הטוב יש בהם 20-30 שעות עבודה שאותם פרילנסרים מחפשים שאני (או כל מועמד אחר) יקבל עליה שכר פר שעה נמוך מאוד. שכר פר שעה נמוך מאוד זה טוב אם יש לפרוייקט "בשר" של 100+ שעות עבודה (חד פעמית או חודשית), אבל כשמדובר על עשרות שעות בודדות של עבודה, המחיר פשוט אינו משתלם, אם מנכים הוצאות. יותר גרוע: אין לאף אחד מאיתנו יכולת לנבא עתיד מדויק ואף אחד לא יכול להבטיח לי שבאותו חודש אכן יזרמו עבודות נוספות, כך שאני עלול פוטנציאלית לגמור את החודש עם משכורת שתהיה שוות ערך לשכר מינימום – בתנאי תשלום של שוטף + 60! עד כמה אפשר להידפק???
  2. כל הפונים בשיטה זו דיברו על פתיחות, אך משום מה אף אחד מהם לא היה באמת מוכן להיות פתוח ולאמר כמה הלקוח משלם לו וכמה בעצם הוא רוצה לגבות ממני באחוזים או במספרים. אני יכול רק לשער שאותם אלו שהציעו לי את ההצעות גובים בין 20-40 אחוז על כל שעה שאני עובד. אחלה שיטה! צריך מפתח JAVA ואין לך מושג מה זה JAVA_HOME? מצא פרילנסר, תחתים אותו על חוזה התקשרות המבטיח שאותו פרילנסר לא יוכל לחתום בעצמו חוזה עם הלקוח שלך, ועל כל שעה שהוא יעבוד תרוויח בממוצע שליש משכרו מבלי שתצטרך להוציא פרוטה שחוקה מכיסך!
    בנקודה זו אני רוצה להדגיש משהו: אני מאמין בהחלט שמגיע תמורה כלשהי לאדם שבזכותו אקבל עבודה כלשהי, אבל יש תמורה ויש עושק ואני יכול לתת דוגמא את חברות גיוס אנשי ההיי-טק (אני לא מדבר על אלו שעובדים אצל לקוחות תחת הכובע של חברת כ"א כזו או אחרת): חברת ABCD מחפשת לה עובד עם תכונות אלו ואחרות, אני ניגש מטעמם לראיון, אני מתקבל וקובע שכר. חברת ABCD תקבל X אלפי שקלים על המאמץ ללא קשר לשכרי. משכרי לא ינוכה אפילו שקל אחד לטובת אותה חברת כ"א. היא מקבלת על עבודתה מחברת ABCD סכום חד פעמי ופה נגמר העניין, וזה המודל שאני מוכן לאמץ אם מישהו היה פונה אליי ומבקש סכום כלשהו כ"עמלה". היינו מתמקחים על העמלה וסוגרים משהו (אם הייתי חותם על חוזה/פרויקט אצל הלקוח שהוא הפנה אותי אליו), אבל לשלם רבע/שליש משכרי פר שעה? אני בתחום היי-טק, לא במקצוע העתיק בעולם.
  3. מדהים שאותם פרילנסרים מפציצים במספרים שאקבל מבלי שיתחשבו בכך שכעצמאי אני לא פטור מניכוי תשלומים: אני אצטרך לשלם ביטוח לאומי, אצטרך לשלם מס הכנסה, מע"מ, פנסיה ושאר מרעין בישין, כך שלאחר ניכויים אלו אני נשאר עם פחות ממחצית המחיר שעה, אבל הצד שמפנה אותי ללקוח וגובה רבע/שליש ממחיר השעה שלי מקבל את אותו כסף כבונוס, פחות או יותר.

אבל הדבר הכי מרגיז שקורה בראיונות כאלו הם פיזורי השקרים: "יש לנו לקוח XYZ שהוא לא יסתכל עליך כפרילנסר כי אין לך עובדים אחרים/משרד רשמי/מזכירה" וכו' ואז מוזכרים כרגיל שמות של לקוחות גדולים כמו בזק, בנקים, נס, נייס, אמדוקס ושאר חברות גדולות. חברים, אני לא מכיר את תיקי העבודות של חלק מהפרילנסרים שקוראים פוסט זה, אך יש לי תחושת בטן שיש פה כמה פרילנסרים שעבדו בחברות מאוד גדולות גם מבלי שתהיה להם מזכירה/משרד בבניין משרדים/עובדים נוספים ושאר ירקות. לא יפה לזרות חול בעיניו של מרואיין.

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

כשטכנולוגיה נופלת בין הכסאות

רוב הקוראים הטכניים כאן מכירים פתרונות וירטואליזציית PC כמו VMWare, Xen, KVM ועוד, ולמי שלא מכיר: הכוונה לתוכנה שמדמה 2 (או יותר) מחשבים שמריצים מערכות הפעלה דומות או שונות על המחשב המארח. מערכת ההפעלה המדומה נקראת Guest והמחשב המארח נקרא Host.

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

אינטל מכירה את הבעיה עוד ממזמן ומהנדסיה גם המציאו פתרון עוד ב-2006 לכך. הפתרון הוא מעין “תוספת” הנקראת VT-d (או איך שאינטל קוראים לזה: Intel® Virtualization Technology for Directed I/O) והוא ממומש ב-2 חלקים: ה-VT-d נמצא במעבד וה-VT-x נמצא בצ’יפ הגשר הצפוני (אפשר לקרוא על כך בהרחבה כאן)

הפתרון של אינטל, בקצרה, הוא שיטה של שימוש ב-DMA של המחשב על מנת למפות אזורי זכרון (ומכאן גם ציודים) למכונות הוירטואליות בגישה אקסלוסיבית למכונה הוירטואלית. דוגמא פשוטה: אם יש ברשותך 2 כרטיסי מסך, תוכל למפות את אחד הכרטיסים ישירות למכונה הוירטואלית, וכך תקבל ביצועים מקסימליים, תוכל להריץ משחקים, אפליקציות תלת מימדיות וכל דבר שחשקה בו נפשך מבלי להזדקק לאמולציה שתוכנת הוירטואליזציה תספק עבורך. דוגמא אחרת היא גישה אקסלוסיבית לפורטי Ethernet. כיום ההגבלה היא ברמה של תוכנת הוירטואליזציה, אבל עם VT-d ההגבלה היא ברמת ה”ברזלים”, כך שיוצא מכך שכשיש VT-d, אפשר לקבל ביצועים הרבה יותר גבוהים וגם למפות ציודי PCI וכו’ למכונות וירטואליות.

הכל טוב ויפה. ניקח מחשב רגיל (לא שרת) שנרכש בשנה, שנתיים האחרונות וניכנס ל-BIOS ונחפש את הפוקנציה הזו (היא אמורה להימצא בהגדרות של ה-North Bridge). רוב הסיכויים שאם תחפשו לא תמצאו את זה. זה קיים בחלק גדול מהלוחות שאינטל עצמה מייצרת, קיים בשרתים, קיים על מק פרו ומקבוק פרו, אבל על רוב הלוחות של שאר היצרנים זה לא נמצא. יותר גרוע: בתוכנות הוירטואליזציה גם שם התמיכה היא בעייתית, בלשון המעטה: ב-ESX (גירסאות 3.5 ומעלה) יש תמיכה ל-VT-d אבל לא ב-Workstation. ל-Xen יש תמיכה כלשהי (שמסובכת בטירוף, אגב) אבל לא ל-QEMU הרגיל. ב-Parallels יש תמיכה אך ורק בגירסא מיוחדת של התוכנה וגם אז זה רץ אך ורק על דגם מסוים של תחנת עבודה של HP. ב-KVM יש תמיכה אבל תצטרך לקמפל קרנל ולמפות ידנית את הציוד כדי “להסיר” אותו מהמכונה המארחת ולהפעיל אותו במכונה הוירטואלית.

ובכן, מדוע המצב כל כך גרוע עם VT-d? יצרני הלוחות מפנים אצבע מאשימה כלפי אינטל. כך לדוגמא חברת ASUS מדברת על כך שבשביל VT-d יש צורך ב-DMA Remappping (אותו מיפוי שכתבתי עליו פה בהתחלה) והטבלאות שאינטל מספקת ליצרני ה-BIOS וליצרנים אחרים הם בעייתיים בלשון המעטה, מה שאומר שיש לא מעט סיכוי שברגע שתפעיל את המכונה הוירטואלית, המחשב שלך כולו יתקע. אינטל מצידה דווקא לא הכניסה את טכנולוגיית ה-VT-d לכל המעבדים אלא רק למעבדי Core 2 Duo VPro ולמעבדי XEON לתחנות עבודה ושרתים. מדוע אינטל לא דחפה את הטכנולוגיה לכל המעבדי Mainstream שלה כמו שהם הכניסו את ה-VT? אה, שאלה טובה, מצוינת אפילו, אבל לאינטל אין תשובות. מצד שני, אם אתה תקנה היום מעבד כמו i7 אז הפעם זה כבר בפנים.

וכך נוצר מצב עצוב שבו יש טכנולוגיה עם פתרון לבעיות וירטואליזציה למשתמשים כבדים, אבל עקב תקלות באינטל הטכנולוגיה לא חדרה ממש לא ברמה של הסיליקון וכמעט שלא ברמה של הפתרונות וירטואליזציה הקיימים. אם אתה משתמש בתוכנה כמו VMWare Workstation או VirtualBox אז צר לי, אין תמיכה ב-VT-d כרגע, 4 שנים אחרי שאינטל המציאה (אההמ… “המציאה”.. החבר’ה ב-IBM נשפכים מצחוק) את הטכנולוגיה. אם זה לא היה עצוב, זה היה מצחיק..