לא להעביר כל דבר ל"מחשוב ענן"

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

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

מבחינת רשיון, מיקרוסופט אוסרת על ספקים להציע ללקוחות שרותים כמו Windows 7 ב-Remote, והאיסור נכלל ברשיון ה-SPLA ורשיונות אחרים, מה שמשאיר את אפשרות של שרותי RDP (או Terminal Services) דרך Windows Server 2008.

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

אבל הבעיה המרכזית היא שיהיו בעיות רבות עם הסצינה הזו מהצד של הגולש: חברות ועסקים רבים בארץ שיש להם חיבור אינטרנט, לוקחים קוים סימטריים של 2-10 מגהביט, ועם זה הם גולשים ברשת, מוציאים/מקבלים דואר ועוד.

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

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

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

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

בחירת ספק VPS: אמזון מתאים לכולם?

אם יש ספק שרתים וירטואליים (VPS) שמגיע לו “שאפו”, זה אמזון (Amazon) עם שרותי ה-EC2. ב-2002 כשאמזון החלו להציע שרותים (עוד לפני שהם הציעו שרתי VPS) כמחשוב ענן, כולם הרימו גבה: מה לאמזון ולתחום הזה בכלל? אבל כיום אמזון מובילים בשוק מחשוב הענן והם אחד הספקים היחידים שאפשר לאמר עליהם שהם בהחלט מציעים מחשוב ענן אמיתי (בניגוד לכל מיני ספקים בארץ ובחו”ל שמציעים “מחשוב ענן” שהוא לא יותר מכמה הצעות לשרתי VPS ותו לא).

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

השרותים של אמזון מתאימים מאוד לחברות תוכנה שמציעות שרותים למשתמשים רבים מאוד ברשת, ושיש ברשותם מתכנתים שיכולים להשתמש ב-API של אמזון כדי להקים ולהרוג מכונות, להשתמש בשרות ה-Load Balancing, ב-S3 וב-Storage שלהם. באתר של אמזון ניתן למצוא מגוון מדריכים לשימוש בשפות שונות כדי להשתמש ב-API, יש קהילה ערה שדנה בכל נושא, וחברות רבות ומפורסמות (כמו Twitter ואחרות) משתמשות בשרותים אלו.

אך האם הפתרונות של אמזון מתאימים לכל אחד שמעוניין בשרת VPS? לאו דווקא.

אתן לכם דוגמא אישית פשוטה: לעבדכם הנאמן יש שרת VPS באמזון (חבילת ה-Micro) שמשמש אך ורק כשרת DNS משני (Slave) ו-rsync פשוט לשמירת ה-Zones. אין בשרת שום שרות אחר שרץ. אמזון מציעים את השרות חינם בשנה ראשונה וזו השנה השניה שאני משתמש בשרות הזה. נכון לחודש זה, החשבונית שקיבלתי מאמזון על שרת זה: 19 דולר וקצת עודף.

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

אבל האם עדיין לי, כאדם פרטי עם שרת VPS בודד, שווה לקחת את ההצעה הזו?

לא תמיד.

הנה מספר סיטואציות שיכולות לקרות לכל אחד:

  • שינית הרשאות קבצים ותיקיות "ביד נדיבה" (בלינוקס לדוגמא עם פרמטר כוכבית או R-)
  • הכנסת Kernel חדש למערכת אולם ביצעת שינוי "מינורי" ב-GRUB והשינוי היה שגוי
  • מודול מסויים נופל ומפיל דברים אחרים, מה שלא מאפשר לך לבצע SSH.
  • (תקלה מוכרת שחוזרת במקרים רבים): ישנו שיבוש ברמת ה-File system והמערכת ממתינה שתכניס סיסמא
  • כל תקלה אחרת שמונעת מהמערכת לסיים את ה-Boot
  • שינוי הגדרות רשת וכתוצאה מכך הרשת אינה עולה ב-VPS
  • במקרה של Windows – תקלת STOP

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

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

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

טכנולוגיות וירטואליזציה מבוססות מעבד

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

כשזה מגיע לרכישת מחשב אישי, חשוב מאוד לפני שרוכשים לבדוק האם במעבד שיהיה במחשב החדש ישנה תמיכת וירטואליזציה. אינטל קוראים לזה Intel-VT ו-AMD קוראים לזה AMD-V. רבים נוטים לחשוב כי אם הטכנולוגיה ותיקה (היא קיימת משנת 2005), היא נמצאת על כל מעבד חדש שיוצר לאחרונה, אולם אין הדבר כך. אדרבא, במקרים רבים (במיוחד במעבדים של אינטל) המחיר הזול של המעבד כולל גם "הפתעה" קטנה: אין תמיכת VT במעבד, לכן כשאתם נמצאים בחנות לרכוש מחשב, בדקו איזה דגם המעבד, והריצו חיפוש בגוגל (בד"כ התוצאה הראשונה תהיה דף המפרט הטכני באתר של אינטל). כנסו לדף זה, והסתכלו כמעט בסוף הדף: האם קיימת תמיכת VT? (זה יופיע כ-Yes או No).

אם יש תמיכת VT, אז כל פתרונות הוירטואליזציה יעבדו. אם אין, רק VMWare Workstation יעבוד וגם אז במהירות מוערכת של חצי ממה שהמעבד שלכם מסוגל להנפיק. פתרונות תוכנה כמו VirtualBox, או פתרונות של מיקרוסופט (Hyper-V) לא יעבדו.

כשזה מגיע לשרתים.. כאן הסיפור נהיה יותר מסובך. לאינטל יש 2 טכנולוגיות נוספות שמסייעות בוירטואליזציה:

  • אם אתם הולכים לרכוש שרת שתהיה בו עבודה רבה של תקשורת (בין אם מדובר בתקשורת בין המכונות הוירטואליות בשרת עצמו או בין שרתים פיזיים אחרים), כדאי לבדוק אם המעבדים שאתם רוכשים לשרת כוללים תמיכה של VT-C, או בשם המפוצץ שאינטל נתנה לכך: Intel® Ethernet Virtualization Technology for Connectivity. טכנולוגיה זו משפרת (במקרים מסויימים במעט, במקרים מסויימים בצורה רבה) את התקשורת Ethernet.

יש עוד טכנולוגיה שנקראת VT-D (מסמך PDF). הטכנולוגיה הזו מאפשרת לעשות משהו מעניין והוא למפות כרטיס PCI אל מכונה וירטואלית. כך לדוגמא, אם אתם מריצים שרת SQL עצבני שאוכל דיסקים כאילו אין מחר, אפשר למפות אליו מערך דיסקים+כרטיס RAID, ושאר המכונות הוירטואליות יהיו מחוברות לדיסקים הרגילים שבשרת (או ל-NFS, iSCSI, NAS וכו'). היתרון העצום? מערכת ההפעלה הוירטואלית תקבל אקסלוסיביות לציוד הנ"ל מבלי שמערכות אחרות או הוירטואליזציה "תפריע באמצע".

אבל.. ל-VT-D יש בעיה קטנה הקשורה יותר להחלטות של חברות טכנולוגיה. אינטל כוללת VT-d רק בחלק קטן מהמעבדים, וגם אם יש לך במעבד תמיכת VT-d, יש סיכוי לא קטן שב-BIOS בלוח האם אין תמיכה לזה (הבעיה הזו קיימת עוד מ-2006!), כך שאם החברה שלכם חושבת להשתמש בטכנולוגיה זו, יש לבדוק עם המשווק שיש תמיכה גם במעבד וגם בלוח האם.

יש תמיכה ב-VT-d גם במעבד וגם בלוח? מצוין. עוד לא סיימנו עם הבעיות…

איזו טכנולוגיית וירטואליזציה אתה הולך להשתמש בחברה? Hyper-V של מיקרוסופט? סורי, אין תמיכה. ל-ESX/I של VMWare, ל-KVM של רד-האט, ל-Xen של Citrix יש תמיכה, אולם לעיתים היא חלקית (כמו במקרה של Xen), לכן מומלץ לבדוק לגבי הוירטואליזציה שאתה הולך להשתמש אם יש תמיכה ל-VT-d.

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