Google App Engine – הדור הבא

google-app-engineבפוסט הקודם שלי כתבתי על פלטפורמת ה-Google Cloud וספציפית על Google App Engine (בקיצור: GAE) והיתרונות הגדולים שלו לבעלי אתרים שהולכים וגדלים.

העניין הוא שמאז ש-GAE יצא לעולם מ-Beta ב-2011, קמו מתחרים רבים לו. לאמזון יש את BeanStalk, ל-רד-האט יש את OpenShift ויש עוד המון חברות שמציעות משהו דומה שנקרא PaaS (ר"ת Platform As a Service) עם אותו עקרון: כתוב את האפליקציה שלך עם הפלטפורמה שלנו, ואנחנו נארח אותה ונדאג לכל עניין הגדילה, אבטחה, משאבים וכו'.

הבעיה המרכזית עם ספקי שרות ה-PaaS היא כשאתה צריך דברים "חריגים" או חיצוניים. אתן דוגמא: נניח שאני בונה אתר "גלשן נולד" ובו הגולשים יכולים להעלות וידאו של עצמם שהם גולשים בים ומצלמים עם מצלמה את עצמם או חבר מצלם אותם. נשמע נחמד?

הבעיה – שום שרות PaaS לא יכול להתאים לאתר כזה. כן, אני יכול להרים כמה סשנים בשרות PaaS שיתנו Front-End – כלומר שיציגו את האתר, ינגנו את הוידאו, יתנו לשאר הגולשים להגיב/לדרג, לפתוח פורום, לשלוח מיילים אפילו – אבל כל מה שקשור לוידאו עצמו, אני לא יכול לעשות כלום ב-PaaS איתו. אני צריך אפליקציה/ספריה כמו FFMPEG שתדע לקבל את הוידאו, לקודד אותו בפורמט קבוע שאני קובע, להוציא ממנו תמונות כדי שיופיעו ב"אלבום" או כתמונת כותרת לוידאו ועוד.

עד היום הפתרון לדבר כזה היה לקחת שרת נוסף, שיעודי רק לכך. השרת הזה היה שונה לחלוטין מכל מה ש-PaaS נותן לי. זהו שרת שהייתי צריך להקים מ-אפס, להתקין עליו FFMPEG, לבנות תקשורת בינו לשרותי ה-PaaS, לתחזק אותו מבחינה אבטחה, עדכוני אבטחה ושאר דברים שהיו גוזלים את זמני. את השרת הייתי יכול לקחת משרות EC2 של אמזון או Cloud Compute של גוגל או אחרים. בקיצור – עכשיו עבודת התחזוקה של המערכת היתה יותר גדולה ואני גם אצטרך לשבור את הראש איך לעשות Scale אם הרבה גולשים ניצלו את היום שמש בחוץ וצילמו 500 קליפים וכולם מנסים להעלות אותם במקביל.

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

גוגל החליטו ליצור בתגובה משהו חדש: יש לנו מצד אחד את PaaS שמאפשר לגדול ולתת שרות מהיר ללקוחות, אבל הוא מוגבל מבחינת אפשרויות שימוש באפליקציות צד ג' או אפליקציות Native שכתובות בשפות כמו C או ++C. מצד שני יש לנו IaaS שזה בעצם ה-EC2 או Cloud Compute ואחרים שמאפשרים לנו להקים VM ולעשות את כל עבודת ההקמה/הגדרות/תחזוקה עליו ואנחנו צריכים לשבור את הראש כמעט על כל פיפס.

הפתרון של גוגל? מדוע שלא נשלב את שתי העולמות יחד? גוגל קוראים לזה: Managed VMs. (בשביל הפוסט אני אקרא לזה בקצרה MVMS)

מה ש-MVMS עושה הוא בעצם הרחבה ל-GAE. עד היום על מנת להקים סשן, היית צריך לבנות קובץ YAML. קובץ YAML אומר למערכת דברים די פשוטים: מהי השפה שבה האפליקציה שלך תרוץ, מה לעשות כשיש URL מסויים, סוגי קבצים שנכנסים ומי בעצם רץ כשמשתמש מגיע למקום מסוים או משתמש בסוג קובץ מסוים.

ב-MVMS ה-YAML הורחב. מעתה תוכל להגדיר ב-YAML שהסשן יהיה בעצם VM, תוכל לאמר אם אתה מעוניין שהגדילה תהיה ידנית או אוטומטית, תוכל להגדיר איזה סוג Image אתה רוצה ל-VM ומה שהכי חשוב: אתה יכול להוסיף בסוף ה-YAML שורות שאומרות למערכת אלו חבילות להתקין (ואת ההגדרות) בזמן שהיא מקימה עבורך את ה-VMs. ב-GAE יש לך 5 סוגי instances שעליהם רצה האפליקציה. ברגע שאתה מגדיר את הסשן כ-VM, האפשרויות שלך גודלות בהרבה לכל סוג VM שגוגל מציעה. צריך מכונה עם הרבה זכרון? הרבה ליבות? פשוט תציין את סוג המכונה ב-YAML.

ומה עם שאר הדברים כמו Load Balancing וכו'? מה עם SSH למכונה? אין צורך לדאוג, הכל אוטומטי. בזמן ההקמה הוא יחבר את המכונה ל-Load Balancer ותוכל להשתמש בשרות כמו memcache השיתופי (או אחד יעודי עבורך שעולה 6 סנט לשעה) ושאר שרותי GAE כאילו מדובר בסשן GAE רגיל.

היתרונות של שיטת MVMS ברורים:

  1. אין צורך ברכישת מכונות רזרביות. בין אם אתה צריך מכונה אחת נוספת או 10,000, תוכל לבצע זאת מיידית.
  2. לא צריך שרות נוסף של Load Balancing שעולה כסף.
  3. אין צורך "לחמם" מכונות VM כדי שיהיו מוכנות להתחבר ל-Load Balancer.
  4. אין צורך בלהקים שרתי Apache או nginx עם כל ההגדרות שישמשו Front End, אתה פשוט יכול להקים סשן GAE בשפה שאתה רוצה (PHP לדוגמא) ולהרים בו את אתר ה-Front End שלך.
  5. לא צריך לשבור את הראש לגבי כתובות IP
  6. אתה יכול להקים אצלך בעבודה את ה-IMAGE שלך עם הלינוקס שאתה אוהב, עם כל ההגדרות שאתה צריך ואתה יכול להעלות את ה-IMAGE ולהשתמש בו.
  7. אתה יכול לבצע SSH ישירות לתוך כל מכונה מבלי להוסיף לה כתובת IP חיצונית ומבלי לזכור את כתובת ה-IP הזמנית שהמערכת מצמידה לה.
  8. אתה תמיד יכול לשנות את ה-VM, לבצע Snapshot ואז להגדיר ב-YAML שכשהמערכת מקימה מכונה חדשה, היא תשתמש ב-IMAGE (שנוצר מה-snapshot).
  9. אין יותר "ביצועים רנדומאליים". מכירים את זה שאתם מתחילים לעבוד על VM שרץ על ענן ופעם אותו VM רץ כמו שד ופעם אחרת זז כמו צב? פה אין את זה. גוגל מגדירים את השרתים לתת ביצועים באופן ליניארי, כך ש-VM אחד לא "חונק" VM שני.
  10. כן – אפשר גם להשתמש במכונת Windows (כרגע 2008, עוד חודשיים בערך – גם 2012).

שימוש ב-MVMS נותן לך סוף סוף את החופש להשתמש באיזו אפליקציה שתרצה, עם הגדרות שתרצה, והמערכות של גוגל ידאגו לרוב הדברים. אתה לא צריך, בניגוד למצב שקיים כיום, להתחיל להגדיר את הכל מאפס, את שרתי ה-Web, את שרות ה-EMAIL, וכו'. אתה אפילו יכול לחבר בקלות מערכות ניהול תצורה כמו Puppet או CHEF בקלות לסשנים שלך, כך שבסוף היום העסק שלך יכול להתרכז יותר בפיתוח האתר/שרות מאשר לסבול מבעיות תחזוקה, הגדרות חוזרות, "רדיפה" אחרי שרת סורר וכו'.

שרות ה-Managed VMs עדיין לא זמין לציבור (אפשר להירשם בלינק לעיל) והוא יהיה זמין במהלך השבועות הקרובים.

(גילוי נאות: הח"מ נותן שרותי פרילאנס לשרותי הענן של גוגל).

על אתרים שגודלים ו-Google Cloud Platform

cloud-homepage-logo_short_900px

הנה סיטואציה שמוכרת לכל מי שיש לו אתר מצליח עם גולשים רבים, ושאותו אתר בנוי על פלטפורמה פתוחה וידועה כמו וורדפרס או ג'ומלה…

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

ככל שהאתר יותר פופולרי, האופטימיזציות שבעל האתר (או מי שהוא שוכר שיעשה עבורו את העבודה הטכנית) יצטרך לעשות הן יותר עמוקות, כמו שימוש בתוספי Cache, אופטימיזציות לבסיס הנתונים, שימוש ב-Cache ב-DB והמתקדמים ישתמשו בפתרונות כמו memcache או Varnish (או שילוב שלהם).

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

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

גוגל בשבוע שעבר הכריזה על מגוון שרותים חדשים במסגרת ה-Cloud Platform שלה, ובאותה הזדמנות הם גם חתכו מחירים בכל השרותי ה-Cloud שהם מספקים, וזו הזדמנות מצויינת לבעלי אתרים פופולריים להסתכל על ה-Google App Engine (ובקצרה: GAE)

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

השימוש ב-GAE מצריך "החלפת דיסקט" אצל בעל האתר. עד היום, כפי שתיארתי לעיל, כשהאתר היה יותר פופולרי, היה צריך לעבור לפלפטפורמה של שרת וירטואלי שאותו מגדילים כמה שצריך עד למצב שצריך מספר שרתים, Load Balancing ועוד.

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

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

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

עכשיו נגיע לחלק של עלויות.

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

אז כמה עולה התענוג? העלות מורכבת מכמה חלקים שנצטרך כדי להשתמש ב-GAE ומומלץ להשתמש בדף הזה כדי לחשב עלויות (לא לשכוח בכל סעיף שאני מזכיר להכניס מספר וללחוץ על Add to Estimate  – התוצאה תהיה מימין למעלה):

  • אנחנו צריכים קודם כל מקום לאחסן את האתר, זה נקרא Google Cloud Storage והמחיר שם מצחיק – 100 ג'יגהבייט יעלו לכם 2.60$ לחודש.
  • אנחנו צריכים לחשב רוחב תעבורה החוצה (תעבורה פנימה היא בחינם). כאן מומלץ לכם להיכנס לאתר שמודד לכם את הטראפיק כדי לראות כמה ג'יגהבייט השתמשתם בממוצע בחודשים האחרונים. אם לדוגמא יש לכם 100 ג'יגהבייט של תעבורה החוצה, העלות תהיה 12$ לחודש. שימו לב: המחיר הזה כולל שרות CDN, כך שאם אתם משלמים כיום לספק CDN, תוכלו לחסוך את ההוצאה הזו.
  • אנחנו צריכים בסיס נתונים. מה גודל ה-DB שלכם וכמה השרת שלכם "מבלה" בעיבוד ה-DB? גוגל מציעים את Cloud SQL שהוא תואם MySQL. אתם יכולים לבקש מהאיש הטכני שלכם לאמר לכם מה גודל ה-DB או שאתם אתם יודעים להשתמש ב-MySQL שימוש פשוט, בצעו mysqldump ל-DB וראו מה גודל הקובץ. בדף החישוב, תבחרו Part Time. מבחינת גודל Instance תבחרו במשהו קטן (תיכף אסביר מדוע) והכניסו את גודל ה-DB שלכם (סביר להניח שהוא לא יותר מכמהה ג'יגה בודדים אם בכלל הוא מגיע לג'יגה. באתרי תוכן רוב הדברים הגדולים הם קבצי המדיה).
  • מה עם שרותי Cache? שרות memcache הוא בחינם. לא עולה לכם כלום 🙂
  • מה עם שרת מייל? אין צורך. ל-GAE יש משלו, כך שהוורדפרס יוציא מיילים בלי שום בעיה.
  • מה עם שרת WEB? יש ל-GAE שרת משל עצמו ואתם לא צריכים להגדיר אותו, כך שאין צורך בשרת Web משלכם.
  • מה עם תוספים לאפליקציות CMS שלכם? את זה אתם מתקינים כמו שאתם מתקינים כרגיל בתוך האפליקציה. אין שינוי.
  • שרותים כמו Compute Engine ו-Persistent Disk במקרה שלנו – אין לנו צורך בהם.
  • מה עם Load Balancing ושאר ירקות לאתרים גדולים? זה מבוצע אוטומטית ע"י ה-GAE ללא תשלום נוסף.

ויש עוד עלות נוספת – עלות ה-Instance. בכל זאת, האפליקציה צריכה לרוץ על משהו. כפי שאתם יכולים לראות כאן, ישנם 4 סוגי instance עם מחירים בין 5 סנט לשעה ל-30 סנט לשעה. עכשיו, לפני שאתם שולפים מחשבי כיס ונבהלים, צריך לזכור כי כבר יש memcache משותף לשרתים (instances) והוא לא נכלל ב-RAM של ה-instance, כך שאתם בעצם צריכים פחות זכרון ממצב רגיל שהייתם משתמשים ב-VM/VPS ובעברית פשוטה: נסו את F1 או F2 ותראו איך האפליקציה שלכם עובדת (וקראו את המסמך בלינק!) לפני שתבחרו את F4.

על מנת שלא תצא לנו חשבונית עם 4 או 5 ספרות ודולרים (והתקף לב בדרך), מומלץ שכשאנו מקימים את האפליקציה ב-GAE, שנשתמש ב-memcache. כך לדוגמא אנחנו נחסוך בפניות רבות ל-SQL ופניות אליו יתבצעו רק אם יש צורך בעדכון (אם מישהו הגיב, או אם אתם מעלים תוכן חדש שיכנס ל-DB).

הגענו לחלק המעניין – של ההתקנה.

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

רוצים להתקין וורדפרס או ג'ומלה? בכיף. כאן ההוראות איך להתקין וורדפרס, וכאן ההוראות איך להתקין Joomla. שימו לב: תצטרכו להתקין שרת MySQL אצלכם במכונה (בכלל הייתי ממליץ לבצע את ההוראות התקנה על מכונת VM אצלכם בבית), ורק לאחר שתריצו את פקודת ה-update והנתונים יעברו ל-GAE ול-Cloud SQL תוכלו להיפטר מהסביבה (אם כי יכול להיות שתרצו לעשות הכל מקומית ואחרי זה לעשות deploy ל-GAE – הכל תלוי בכם).

עוד משהו אחד: יש לכם ערימות של דומיינים? גוגל מציגה שרות חדש שנקרא Google Cloud DNS שנותן לכם להשתמש בתשתית DNS של גודל לנהל את כל הדומיינים שלכם בחינם. לא צריך יותר שרתים שלכם לכך, ולא צריך לדאוג אם שרת זה או אחר נפל או ששוב מישהו אצל רשם הדומיינים דפק רקורד (סבלתי מספיק מהדברים האלו, תודה לכם נטויז'ן!). עוד פרטים – כאן.

בהצלחה

(גילוי נאות: הח"מ נותן שרותי פרילאנס להעברת אתרים ל-GAE ול-Google Cloud).

טיפ בנושא: שדרוג מכונות RHEL

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

כשיש לכם שרת אחד או 2, או מספר קטן מאוד של תחנות RHEL, אז העדכון הוא עניין די פעוט (מבחינת udates, מבחינת upgrade עם אותם עדכונים זה משהו אחר), אבל מה עושים כשיש לך כמה עשרות ואולי מאות שרתים/תחנות עבודה? לתת לכל מכונה להוריד את העדכונים שלה זה נחמד אבל זה לוקח זמן, רוחב פס ודיסק בכל פעם. האם אי אפשר לסדר זאת בתצורה כזו שכל המכונות ישאבו משרת אחד?

לרד-האט יש פתרו שנקרא Red Hat Satellite המאפשר לא רק עדכונים אלא life-cycle שלם למכונות ושרתים שכולל שרותים כמו דיווחי באגים, תמיכה, קבלת תיקונים, בדיקות, יצירת ISO לצרכים שונים וכו'. הכלי הוא כלי גדול וגם עולה בהתאם (כמה אלפי דולרים מחיר התחלתי). אנחנו לעומת זאת צריכים רק את העדכונים, לאחסן אותם על שרת שלנו ואנחנו כבר נפיץ אותם בזמן שנקבע.

על מנת לבצע זאת, נצטרך קודם כל לברר אלו גרסאות RHEL אנחנו משתמשים בחברה. 5? 6? עבור כל אחת מהגרסאות העיקריות נצטרך VM עם המון דיסק פנוי (במינימום 40-50 ג'יגה) וכמובן רשיונות, רשיון פר גירסה Major כך שאם אנחנו משתמשים בחברה ב-RHEL-6 וגם RHEL-5 ולשתיהם אנחנו צריכים עדכונים, אנחנו צריכים 2 רשיונות (כמובן שצריך רשיונות לכל תחנת/שרת RHEL כדי לקבל תמיכה וכו') על מנת לבצע את הקמת ה-REPO החדש שלנו.

ראשית, יש להקים VM עם גירסת RHEL הרצויה. ההתקנה מספיק שתהיה בסיסית עם גישת רשת החוצה ב-HTTP. ויש לבצע register של אותה מכונה ל-RHN. לאחר ההתקנה יש ליצור תיקיה שאליה נאחסן את הקבצים. נקרא לה var/repo/

כעת יש לוודא שחבילת yum-utils וחבילת createrepo מותקנות. אם לא, אפשר להתקין אותם ישירות מה-ISO או בעזרת yum.

כעת נוודא שהשרת רשום לערוץ שממנו אנו רוצים לשאוב עדכונים. לשם כך אפשר להשתמש בפקודה:

rhn-channel -l

אם הכל תקין, נקבל תשובה: rhel-x86_64-server-6 (במקרה שההתקנה היא 64 ביט גירסה 6).

כעת נתחיל לשאוב את העדכונים:

cd /var/repo
reposync -l --repoid=rhel-x86_64-server-6

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

הסתיים? מצוין, עכשיו ניצור ממה שירד repository עם הפקודה הבאה:

createrepo -v --update rhel-x86_64-server-6/getPackage/

זהו. יש לנו repo עם כל ה-RPMS שיש ב-RHEL-6 כולל דברים ישנים וחדשים.

על מנת לאפשר גישה לקבצים שהורדנו, נקים שרות httpd. התקינו את חבילת httpd ובתוך etc/httpd/conf.d/ נקים קובץ בשם repo.conf שיאפשר גישה לקבצים. הנה דוגמא לקובץ:

<VirtualHost *:80>
ServerName rhelrepo
DocumentRoot /var/repo/rhel-x86_64-server-6
ErrorLog logs/repo-error_log
CustomLog logs/repo-access_log common
<Directory "/var/repo/rhel-x86_64-server-6/">
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>

שימו לב לשנות את שם ה-ServerName לשם השרת שלכם.

כעת נפעיל את שרות ה-httpd (עם הפקודה: service httpd restart) ועם הדפדפן ניגש לכתובת: http://rhelrepo/getPackage (שוב, שנו את השם rhelrepo לשם השרת שלכם). אם הכל תקין, תקבלו רשימה ארוכה של קבצי ה-RPM.

עכשיו מגיע החלק שתפיצו בעזרת כל כלי שתרצו – אל כל השרתים שלכם, קובץ repo שב בתיקיה etc/yum.repos.d/ שם ניצור קובץ שנקרא לו rhel6.repo

[RHEL-6-UPDATES]
name=RHEL-6.x Updates
baseurl=http://rhelrepo/getPackage/
enabled=1
gpgcheck=0

מומלץ למחוק את שאר הקבצים שנמצאים באותה תיקיה (ושמורידים את אותם עדכונים מרחוק).

כעת הגיע המבחן הגדול: הריצו yum update ותראו אם המערכת מוצאת עדכונים ומורידה אותם. אם כן, אז ברכותיי – הרמתם לכם שרת REPO מקומי משלכם.

מה שנשאר לעשות הוא להשתמש בפקודות ה-reposync וה-createrepo בתוך סקריפט שירוץ אחת ליום דרך ה-crontab ויעדכן את החבילות ישירות מרד-האט. את זמן ההפצה לכל השרתים והתחנות אתם קובעים לפי הנהלים באותה חברה.

אם אתם צריכים עדכונים ל-RHEL-5, ההבדל היחיד הוא בשם הערוץ, אותו תוכלו לקבל עם פקודת rhn-channel -l

בהצלחה

טיפ: להפוך מערכת CentOS ל-RHEL

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

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

לשם ההפיכה, נצטרך קודם כל את ה-ISO פרוס לקבצים בתיקיה כלשהי (אפשר כמובן על NFS, רק כדאי שתבצעו קודם כל mount במכונה שאנחנו הולכים לשנות). לאחר שביצענו mount נעבור למצב root (זה המצב שבו נישאר כרגע) עם sudo או – su.

עתה יש להריץ את הפקודה הבאה:

rpm -e --nodeps centos-release

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

עתה, נרים לנו REPO משלנו עם הנקודה שאליה ביצענו mount. כנסו לתיקיית etc/yum.repos.d/ ושם ניצור קובץ dvd.repo – הנה דוגמא משלי:

[DVD]
name=DVD REPO
baseurl=///mnt/Server/
enabled=1
gpgcheck=0

במקרה הנ"ל, ה-mount שביצעתי היה לתוך תיקיית mnt/ כמו כן יש לשים לב שכמות הקו נטוי (/) היא בתוספת / כך שאם מדובר במערכת קבצים מקומית (ולא http) יש צורך שיהיו 3 קווים נטויים.

כעת יש להעיף את קבצי ה-repo האחרים של CentOS (הם מתחילים במילה CentOS)

עכשיו ננסה להשתמש ב-repo החדש שהוספנו. הריצו את הפקודה הבאה:

yum install redhat-release

סביר להניח שההתקנה תבקש לעדכן את initscripts. אשרו את ההתקנה.

כעת יש צורך להריץ yum update על מנת לעדכן חבילות שונות. הכל יבוצע אוטומטית.

אם אתם מעוניינים לרשום את המכונה בשרתים של רד-האט, יש להריץ את הפקודה הבאה:

yum install rhnlib rhnsd rhn-client-tools rhn-check yum-rhn-plugin rhn-setup

שימו לב לא להכניס מספרי גרסאות, המערכת תתקין את הגרסאות האחרונות מהיכן שהיא מוצאת ב-REPO.

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

זהו, כעת כל מה שנותר לבצע הוא reboot וכעת יש לכם שרת RHEL כאילו התקנתם אותו מאפס מה-ISO. תוכלו לבדוק זאת ע"י הקשת פקודת: lsb_release -d

גוגל נכנסת חזק לתחום הענן הציבורי

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

לתחום הענן הציבורי נכנסה בשנתיים האחרונות (באיחור אופנתי, כרגיל) מיקרוסופט עם ה-Azure שלה. בהתחלה כמערכת שאתה מפתח עליה אפליקציות במגוון שפות, ולאחר מכן שרותי Azure גדלו ל-IAAS/PAAS. במיקרוסופט, שהכח העיקרי שלה מגיע מהשוק העסקי, עשו דברים קצת שונים מאמזון והחלו את המתקפה על השוק העסקי עם Office 365 כשהם משכנעים ארגונים רבים לאחסן את המייל/יומן/מסמכים בענן, ורק לאחרונה נודע כי מיקרוסופט הולכת להציע שרותים אלו גם גירסה אישית במחיר של 7$ לחודש (או 90$ לשנה) שאותה אפשר להריץ על Windows או MAC או בגרסאות הטאבלט/מובייל שמיקרוסופט הוציאה ותוציא. במקביל מיקרוסופט מנסה לדחוף בצורה אגרסיבית את שרותי ה-IAAS כתחליף לאמזון ולשם כך היא משתמשת ב"צבא" אנשי המכירות שיש להם עם דילים שונים בהתאם לגודל הארגון. עד כה המאמצים להעביר חברות מאמזון ל-Azure לא ממש מנחילים הצלחה רבה למיקרוסופט, אבל תסמכו על מיקרוסופט שיעשו הכל כדי שחברות סטארט-אפ או כל חברה שמציעה שרותי Web ישתמשו ב-Azure. מיקרוסופט אפילו נותנת תמיכה (לא מי יודע מה, למען האמת) בגרסאות לינוקס CentOS/RHEL (מנסיון אישי שלי: אם נתקלת בבאגים, תתחיל לחפש פתרונות בגוגל, התמיכה של מיקרוסופט כולל תמיכה בחו"ל פשוט לא יודעים לתמוך בלינוקס, במיוחד אם אתה מרים הגדרות רשת מורכבות.)

לשטח הזה נכנסים גוגל (ליתר דיוק נכנסו). עד כה גוגל הציעו את ה-App Engine, שרות PAAS שמאפשר לך לפתח אפליקציה שתרוץ בענן של גוגל, אולם בשנה האחרונה גוגל התחילה להציע שרותי IAAS כאשר ההצעות שהם מציעים נשמעים מעולים לאנשי לינוקס שמכירים לינוקס טוב, אבל לך תסביר את הדברים למנהל מעליך, במיוחד שכמות מערכות ההפעלה שנתמכות היתה די קטנה וממש מיועדת לגיקים (Debian 6,7, CentOS 6.2), או שתסביר לו כמה זה מעולה שאתה יכול להרים מערכות Diskless, את זה שאתה יכול להרים 1200 מערכות מאפס תוך פחות מדקה, ושלל דברים מגניבים ששוב – מדברים לגיקים שבינינו אבל קשה לשכנע את ההנהלות לקחת את ה-IAAS ולהשתמש בו כמשאב עיקרי לחברה, כך שהמצב היה שגוגל התחילה להציע דברים, אבל מבחינת שוק – לא הרבה נכנסו אליו. אבל דברים מתחילים להשתנות אצל גוגל ועכשיו הם מתחילים לצאת לאור, ועבדכם הנאמן יגלה כאן כמה דברים שאותם תשמעו רשמית עוד שבועיים: גוגל אתמול הוציאה הודעה שעשתה כאב ראש רציני למתחרים: חיתוך מחירים סופר אגרסיבי באחסון און ליין, ספציפית ב-Google Drive. מעתה, 100 ג'יגהבייט יעלו לך בחודש רק $1.99. רוצה טרהבייט של מקום? בכיף, המחיר צונח מ-50 דולר ל-$9.99 לחודש. רוצה לאחסן את כל ספריית המוסיקה/קליפים/תמונות שלך וצריך 10 טרה? זה יעלה לך $99.99 לחודש, כלומר המחיר צנח בעשרות אחוזים כלפי מטה.  זה נחמד, אבל מה עם האחסון ב-IAAS? (מה שתואם ל-S3 של אמזון) – ובכן, גם הוא בעוד שבועיים יקבל הנחתת מחיר אגרסיבית.

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

  • צריך גרסאות Windows? כן, גם בגוגל שמעו שעסקים מעוניינים ב-Windows Server והם שכרו צוותים שלמים לתמיכה והקמת מערכות כך שתוכל להקים לך Windows Server 2012 כ-VM כולל כל השרותים והתמיכה שתצטרך.
  • ה-App engine יעבור שדרוג מאסיבי ומעתה תוכל להרים עליו שרותים כמו Joomla ועוד – כך שכל מה שתצטרך זה להקים Engine, לזרוק עליו Joomla עם העיצובים והתוספים שלך. לגבי כל עניין ה-Scaling לא תצטרך לדאוג כי המערכת של גוגל תדאג לזה (אה, ולא תצטרך לשבור את הראש על ההגדרות של Web Server או MySQL וכו' – הכל יהיה יותר קל)
  • אפליקציות נוספות יתמכו ללא שינוי קוד דרך ה-App Engine
  • הרצת כל גירסת Linux וכל Kernel שתרצה. (כן, כולל תמיכה ב-SELinux וגם הפצות מבוססות Rolling Release).
  • תמיכה מלאה ב-Docker (כך שתוכל להקים כמה קונטיינרים עם מערכות לינוקס אחרות על VM יחיד)
  • הבטחה להגנה נגד DDoS
  • ואת שאר הדברים תשמעו עוד שבועיים (אני לא מעוניין למתוח את החבל יותר מדי עם גוגל..)

עכשיו, נקודה קצת ישראלית: כמו שאתם יודעים, שככל שזה מגיע לתמיכה, אתה יכול לפנות במקרה של אמזון לפורומים (או לשלם פרימיום לתמיכה) או להתרגל לתמיכה הודית (שזה תרגול מעולה איך לדפוק את הראש בקיר), אבל בגוגל החליטו לשנות דברים: הם שוכרים אנשים (חלקם עשו עליה ארצה) שנמצאים פה בישראל שיעזרו לכם גם בהמרה של האתר שלכם ותמיכה טכנית בכל ה-Cloud Platform, וגם צוות מכירות כחול לבן, כך שאם יש לך שאלות, מישהו טכני או נציג רשמי נמצא במרחק טלפון/אימייל לקביעת פגישה פרונטאלית. יותר מזה – במסגרת תוכנית ה-Starter Pack של גוגל, חברות מקבלות קרדיט כספי לשימוש ב-Cloud Platform כך שבמקום שהסטארט-אפ ישרוף את כספו על מחשוב ענן באלפי דולרים לחודש, גוגל נותנת להם קרדיט להשתמש ובכך לחסוך את הכסף שכל כך קריטי לאותם סטארט-אפים. אגב, כשזה מגיע לבחינת ביצועים, קשה להשוות בין השלושה כי חסרים פרמטרים שלא כל כך גלויים לציבור, אבל ב-infoworld החליטו לבדוק בכל זאת, והתוצאות מראות תמונה די פשוטה: אם אתה מחפש ביצועים נטו, גוגל היא הכתובת עבורך (אחרי גוגל נמצאת במקום שני אמזון ומיקרוסופט במקום שלישי), כך שלגוגל יש במה להתגאות.

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

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