Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azure

29 באפריל 2012

אין תגובות

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azureמושג הענן ובמיוחד הענן של מיקרוסופט – Azure, שגור בשיחות שלנו כאילו היה כאן מאז ומעולם. בדיוק בגלל זה חשבנו שזה בדיוק הזמן לתת קצת סקירת רקע מקיפה למי שרק עכשיו הצטרף לחגיגה ואפילו לאלה שכבר מכירים, אולי להזכיר כמה מושגי יסוד ואולי אף לתת נקודת מבט שונה.

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

כאשר אנחנו אומרים מחשוב ענן, הכוונה היא לשירות כלשהו הניתן על ידי מערכת שנמצאת אי-שם ברשת מבלי שאנו נצטרך לדאוג לאיכן וכיצד אנו מקבלים את השרות. כיום ניתן לקבל שירותי ענן החל משירותים תשתיתיים (IaaS – Infrastructure as a Service), כגון, שרתים, שירותי אחסון ושירותי רשת, דרך שירותי פלטפורמה (PaaS – Platform as a Service), שמוסיפים שירותי מערכת הפעלה ושירותי תוכנה תשתיתיים ועד שירותי תוכנה (SaaS – Software as a Service) שמציעים חבילות תוכנה ללקוחות שרוצים לחסוך ברשיונות ושירותי מחשוב, כמו למשל שירותי Office365 של מייקרוסופט.

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azure

בתמונה: Azure Data Centers ברחבי הגלובוס

נהוג לחלק היום את שרותי הענן לשני חלקים עיקריים, ענן פרטי וענן ציבורי. בענן הפרטי אנחנו משתמשים בפתרונות וירטואליזציה אשר רצים על שרתים שלנו בחברה או בעגה המקצועית – On Premise ואילו הענן הציבורי מספק את שרותיו לכלל הציבור ונמצא אי שם ב… ענן! טוב, למי שבכל זאת מתעקש, הענן של מיקרוסופט מורכב מאשכולות שרתים אשר פרוסים ב-6 Data Centers המפוזרים ברחבי הגלובוס

במאמר הזה נתמקד ביכולות של Windows Azure, הענן הציבורי של מיקרוסופט שמספק פתרונות PaaS ו- IaaS.

יתרונות שירותי מחשוב ענן

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

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

 

שירותי Windows Azure של חברת מיקרוסופט

Windows Azure הוכרזה ע"י מיקרוסופט בשלהי 2008. Windows Azure מאפשרת למשתמשים ניהול יעיל ונוח, של ההבטים השונים במחשוב ענן, כפי שהוזכרו בתחילת המאמר. סביבת Windows Azure מורכבת משלושה חלקים עיקריים: Windows Azure SQL Azure ושירותים נוספים (בעבר נקרא AppFabric). 

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

SQL Azure – זהו למעשה שירות SQL Server עבור הענן, כאשר השרת המאחסן את הנתונים, נמצא בענן, ומשמש כמחסן נתונים עבור האפליקציות השונות.

שירותים נוספים (בעבר נקראו AppFabric) – פלטפורמת Windows Azure מספקת שירותים המאפשרים קישוריות של אפליקציות שונות בסביבת הענן. בין השירותים הללו נכללים שירות קישוריות בין שירותי ענן שונים (On-Premise ושירותים אשר נמצאים אי שם ב"ענן") בעזרת ה-Service Bus אשר מהווה ערוץ תקשורת בטוח ונוח בין השירותים השונים, מנגנון Cache מתוחכם אשר תורם לשיפור ביצועים בסביבת הענן, ע"י שמירת המידע בזכרון וע"י כך חוסך את הצורך לאחזר מידע משירותי האחסון השונים והאיטיים יותר. כמו כן, שירות Access control מטפל באימות והרשאה של קריאות לשירותים השונים.

 

 

פלטפורמת Windows Azure

Roles

אפליקציות הרצות ב- Windows Azure, נקראות "Roles", כאשר ההבחנה העיקרית היא בין Worker Role לבין Web Role. ה- Worker הוא Role כללי, בד"כ נשתמש בו לאפליקציות, שצריכות לרוץ לאורך זמן ולבצע משימות שונות לאורך זמן. Windows Azure מאתחל את ה-Worker Role והוא ימשיך לרוץ עד שיעצרו אותו. Web Role הוא מעין מקרה פרטי של Worker Role, כאשר שירות ה-IIS רץ עליו כברירת מחדל. Web Role יכול להריץ אפליקציות Web למיניהן, כגון אתרים (סטטיים ודינאמיים), Web Services, PHP וכדומה. התקשורת של העולם עם אפליקציות הענן נעשות דרך סטנדרטי תקשורת סטנדרטיים כמו TCP ו- HTTP, כאשר החיבור אל ה-Role הוא דרך נקודת קצה (endpoint) שניתנת להגדרה, למשל Port 80 עבור דפי Web. ב- Windows Azure החיבורים אל נקודות הקצה, עוברים דרך מערכת איזון עומסים (load balancing) באופן אוטומטי.

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

אחסון נתונים

ב-Windows Azure יש מספר דרכים לשמור נתונים החל מתורים (Queues) , שמשמשים בעיקר להעברת מידע בין ה-Role-ים השונים וכלה ב- SQL Azure שהוא למעשה שירות מסד נתונים לכל דבר והוא חיצוני לפלטפורמה. שלושת שירותי האחסון העיקריים בפלטפורמת Azure הם: Queues, Tables ו- Blobs.

Queues

תורים משמשים פחות כמקום אחסון ויותר כאמצעי להעברת מידע והודעות בין ה- Web Role לבין ה- Worker Role. התורים הם אסינכרוניים ומוגבלים לגודל של 64KB להודעה. המידע בתור יישמר עד אשר ניתן הוראה למחוק את ההודעה. כמו כן, אם ה- Role שאמור לקרוא את ההודעה "נופל" ולא מצליח לקרוא אותה, ניתן יהיה לקרוא את המידע באמצעות Role אחר. הפנייה לתור היא שמית כאשר השם שניתן חייב להיות באותיות קטנות (Lower Case), באורך של בין 3 לבין 63 תווים אלפאנומריים ('-' יכול להפריד בין תווים אלו, אך לא ניתן להתחיל ולסיים בו).

Tables

הטבלאות משמשות כמקום אחסון סקלבילי ומובנה, אשר מקושר לחשבון האחסון של הלקוח. טבלאות אלה הן טבלאות לא רלציוניות וללא סכמה (כמו פתרונות NoSQL מוכרים) וככאלה הן מסוגלות לשמור בתוכן מידע מסוגים שונים וכל תא יכול לאחסן סוג מידע אחר, כגון String או int וכיו'ב. טבלאות יכולות להכיל מילארדי שורות ו- טרהבטים של מידע. כל תא אחסון יהיה בעל מאפייני המערכת הבאים: PartitionKey, RowKey ו- LastUpdate שהוא מאפיין מערכת וערכו ניתן ע"י הפלטפורמה. PartitionKey ו- RowKey משמשים לזיהוי חד ערכי של המידע.

ניתן להוסיף מאפיינים נוספים (עד 255 במספר) כאשר סוג המאפיין יכול להיות אחד מסוגי הבסיס הבאים: String, binary, bool, DateTime, GUID, int, int64 ו- double. המאפיינים נשמרים ע"י Azure בצורה של זוג <name, typed value>.

ה- PartitionKey משמש עבור Windows Azure על מנת לנטר את המידע הנשמר בכדי שנוכל להגדיל את מקום האחסון במקרה הצורך. Windows Azure משתמש ב- PartitionKey גם כדי לקבץ נתונים בעלי אותו PartitionKey תחת אותה טבלה, לכן כדאי להשתמש ב-PartitionKey שיהיה ברור ונהיר לשימוש. RowKey הוא המזהה החד ערכי של המידע בתוך ה-Partition ולכן כאשר נרצה לשלוף מידע מסויים, נעביר ל- Azure צירוף <PartitionKey, RowKey> ונקבל ערך יחיד עבור צירוף זה. מאחר ו- Azure שומרת מידע בעל אותו PartitionKey תחת אותה טבלה, ניתן לבצע פעולות טרנזקטיביות על מידע בעל אותו PartitionKey ופעולות אלה יחשבו אטומיות גם מבחינת התשלום עבור השירות.

בלוב – BLOB

Blob – Binary Large Object – בלוב-ים הם הדרך של Windows Azure לשמור מידע בעל נפח גדול בענן. בבלוב אנו נשמור תמונות, סרטונים, קבצים שונים וכל מידע שדורש מקום ויכולת גישה נוחה אליו. ניתן לגשת לבלוב דרך ה-URL:

http(s)://<שם חשבון האחסון>.blob.core.windows.net/<שם ספרייה>/<שם בלוב>

לכל בלוב וספרייה ניתן להוסיף גם מידע שיתאר את התוכן (MetaData) של הבלוב/ספרייה. מידע זה ישמר במערך של שם/ערך עבור כל בלוב וספרייה.

הבלובים מחולקים לשתי תת קטגוריות – בלוקים ודפים.

בלוב מסוג בלוק (Block Blob)

כל בלוב כזה, יכול להכיל נפח אחסון עד 200GB, אשר יאוחסן בבלוקים של 4MB והבלוקים יאוחסנו לפי הסדר הנתון. כלומר, נניח ויש לנו מידע בגודל של 10GB ונרצה לשמור אותו בבלוב, אנו נחלק את המידע לבלוקים של 4MB וכאשר נעלה את המידע לבלוב, כל בלוק יקבל מספר סידורי וכך נשמור על סדר הבלוקים, על מנת שנוכל לאחזר את המידע. בלוב כזה, מתאים לשמירת וידאו עבור סטרימינג, תמונות ומסמכים. בזכות החלוקה לחלקים קטנים של 4MB ובזכות השמירה על הסדר, במקרה של שגיאה בהעלאה של המידע, ניתן לתקן את המידע ע"י העלאת הבלוק הסורר בלבד. כמו-כן, בזכות החלוקה והשמירה על הסדר, ניתן גם להעלות מספר בלוקים במקביל ובכך לקבל ביצועים טובים יותר. לאחר שהעלנו את המידע לבלוב, יש לבצע Commit, על מנת שהמידע יישמר ויהיה נגיש. לפני ביצוע ה- Commit, ניתן להוסיף, למחוק ולשנות בלוקים שונים מאחר ורק לאחר ה-Commit הם יהיו מסודרים לפי הסדר ושמורים במערכת.

בלוק מסוג דף (Page Blob)

בלוק זה, מטרתו לתמוך בגישה אקראית (Random Access) אל המידע, והוא מוגבל בגודל של 1TB. בלוב זה, מורכב ממערך של דפים (Pages) כאשר כל דף הוא בגודל של 512 בתים, ולכן גודל הבלוב יהיה כפולה של 512. קריאה מבלוב זה תעשה ע"י פניה לדף כלשהו בתוך תווך הדפים של הבלוב. כתיבה לבלוב זה, אינה דורשת ביצוע Commit ולכן כל דבר שנעלה לבלוב, יכתב מיידית אליו ויישמר בענן.

כונן Windows Azure

כונן Windows Azure (Windows Azure Drive), הוא מקרה פרטי של Page Blob. זהו Page Blob, אשר הפורמט שלו הוא NTFS. זהו למעשה כונן קשיח וירטואלי, כאשר כל מידע שנכתב אליו, נשמר מיידית בענן ומגובה ע"י המערכת. המנגנון של כונן Windows Azure מאפשר כתיבה ע"י Role אחד בזמן נתון, אך קריאה ניתנת לביצוע ע"י מספר Role-ים בו זמנית.

SQL Azure

SQL Azure הוא שירות מסד נתונים רלציוני, המאפשר לשמור נתונים בטבלאות, להריץ Stored Procedures, לבצע אינדקסים, ליצור Views ולבצע כמעט כל מה שאפשר לעשות עם SQL Server רגיל, כאשר השוני הוא בד"כ ברמה האדמיניסטרטיבית (טבלה שמשווה את שני השרתים ניתן למצוא כאן). ניתן לקנות גדלים שונים של אחסון כאשר הגודל המינימלי הוא 100MB והגודל המקסימלי הוא 150GB.

שליטה ובקרה

השליטה והבקרה בשירותי ה- Azure נעשית בעזרת ה- Windows Azure Management Service, שמספקים כלים ו- API לשליטה בחשבון ה- Azure שלכם. פלטפורמת Windows Azure מספקת ממשקים לכל השירותים שהיא מספקת. ממשקים אלה מגיעים מרמת סביבת הפיתוח – ממשק עבור סביבת .Net ו- Visual Studio וכלה בממשק RESTful המאפשר לכל סביבה תומכת לתקשר עם הענן.

סיכום

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

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

 

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azureהפוסט נכתב ע”י אהרון אצ’ין, ממייסדי חברת CodeValue. אהרון הינו יועץ בכיר לטכנולוגית מיקרוסופט ומומחה בתחום של Windows Azure.

CodeValue  מובילה במתן מענה ובפיתוח פתרונות תוכנה למגוון חברות ומציעה מגוון רחב של שירותים מקצועיים ושירותי ייעוץ. החברה מתמחה ומתמקדת במספר נושאים מרכזיים העומדים היום בקדמת הטכנולוגיות של עולם התוכנה:
Cloud Computing, Mobile, UX, Microsoft Technologies, ALM and TFS

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *