DCSIMG
Windows Azure: היכון, הכן, צא! - שחר.נט

שחר.נט

בלוגים שאני קורא

ספרים מומלצים

Windows Azure: היכון, הכן, צא!

מה זה Windows Azure?

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

מה אפשר לפתח עבור Windows Azure?image

בעבודה עם Windows Azure, יש לנו שני סוגי פרוייקטים עיקריים - יש לנו Web Cloud Service, כלומר, Web Application שרץ בענן ו Worker Cloud Service (כלומר, איזשהו service שרץ ללא UI - משהו בדומה ל windows service) ושילוב של שניהם. כל אחד מהם, או שניהם ביחד, הם חלק ממה שנקרא Cloud Service - השירות עצמו שרץ בענן. לכל שירות יכולים להיות בין 0-2 roles, כאשר role ךצורך העניין זה או ה Worker Role חסר הממשק או ה Web Role. ה Cloud Service, ירוץ ב production בתור Hosted Service.

Worker Role מכיל class שיורש מ RoleEntryPoint ועושה override למתודה Start ו GetHealthStatus. המתודה Start רצה תמיד בתחילת כל מופע של ה Worker Role (לכל Cloud Service יכול להיות הרבה יותר ממופע אחד בו זמנית) והיא אחראית לקרוא ללוגיקה שלו. בד"כ, המטרה ב WorkerRole תהיה שירוץ תמיד (לולאת while true) ובד"כ יבצע פעולות עיבוד על נתונים שיעברו אליו ב queue (יש ב Windows Azure מערכת של storage services שמספקת שירותי queues, אכסון קבצים, שמירת מידע בצורה טבלאית עם ADO.NET Data Services)

ה WebRole יכול להיות החל מאיזשהו ממשק משתמש ל Worker Role ועד אתר שלם, ללא Worker Role כלל. במקרה כזה, יהיה צורך להתגבר על כמה מגבלות של אי נוחות (כמו חוסר האפשרות לעבוד עם DB בצורה המקובלת, מגבלות בשמירת state וכו') - לחלקן, יש פיתרון במסגרת ה samples של ה SDK (כמו גרסא ל providers של ASP.NET) ולחלקן פיתרונות שפותחו בשילוב אנשים מהקהילה וממיקרוסופט - כמו שיטה להריץ ASP.NET MVC על Windows Azure.

בכל אופן, ניתן לפתח (כמעט) כל דבר שירוץ בענן, כאשר בפועל בשרתים יש .NET 3.5 עם Service Pack כך, שכל אפליקציה המשתמשת בהם - תרוץ. חשוב לזכור, שאין עבודה עם SQL Server ישירות, אלא רק באמצעות ADO.NET Data Services.

איך מתחילים?

כעיקרון, Windows Azure הוא Hosted Service בשרתים של מיקרוסופט. אבל כדי לאפשר פיתוח נוח ודיבגינג, מוצעת האפשרות להריץ לוקאלית, בדומה ל Web Development Server המשולב ב Visual Studio. כדי לעשות זאת:

  1. תורידו ותתקינו את ה SDK
  2. תורידו ותתקינו Windows Azure Tools for Microsoft Visual Studio 2008 שיוסיף לכם את ה templates הנחוצים כדי להתחיל לפתח ולדבג בקלות מ VS.

בשלב זה, יתחילו לרוץ ה Development Storage שעושה סימולציה לשירות ה storage של Windows Azure ובהם Blobs, Queues ו- Tables.  וה Development Fabric שמתוכו ניתן יהיה לעקוב אחרי כל ה services שרצים על ההדמייה הלוקאלית של windows azure שלנו, לראות את הלוגים שלהם וכו'. בצורה הזאת, גם ניתן לפתח ולדבג בקלות גם ללא token שמאפשר שימוש ב Windows Azure "האמיתי". הוא גם מפשט את תהליך ה publish ל data centers של מיקרוסופט (עליו אני אדבר בפוסט אחר). למעשה, כעת כל מה שאתם צריכים זה ליצור פרוייקט חדש ולבחור מה templates של Windows Azure ואתם יכולים לפתח ולדבג בדיוק כפי שאתם רגילים:

image

שימו לב, שישנם גם samples בנתיב דומה לזה: C:\Program Files\Windows Azure SDK\v1.0

תיכנסו, תעשו extract ל samples.zip ותריצו את buildall.cmd ואת createtables.cmd.

שימו לב שה samples זה הרבה מעבר ל samples: הAPI עצמו של Windows Azure כולל את המינימום הנדרש, מאחר שרוב הדברים נעשים באמצעות קריאות SOAP ו REST שמולם מתקשרים עם, למשל, שירותי ה storage של windows azure (גם האמיתיים וגם ה development). ב samples, יש למשל את StorageClient שכולל מימוש של אובייקטים שחוסכים כל פעם לעשות את התקשורת ידנית והופכים את העבודה עם ה Storage Services (עליהם אני אדבר בפוסט אחר) לפשוטה. למעשה, מדובר בכלי נדרש (שאני מקווה שיהפוך לחלק מה API עצמו) שכמעט תמיד כשבונים אפליקציה עבור windows azure ורוצים להשתמש ב storage services מומלץ להשתמש בו כדי לתקשר מולם.

כמו כן, יש שם מימוש של ה asp.net providers עם ה Data Services, בצורה המתאימה ל Windows Azure ופרוייקט Storage Client שמתבסס על ה providers של powershell ומאפשר ממש לנווט בנתונים המאוכסנים ב Storage Services.

מה הלאה?

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

בהצלחה.

תוכן התגובה

Discountfurnitureguide » Blog Archive » Storage Services כתב/ה:

Pingback from  Discountfurnitureguide  » Blog Archive   » Storage Services

# November 15, 2008 6:07 PM

שחר.נט כתב/ה:

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

# November 23, 2008 11:37 AM

שחר.נט כתב/ה:

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

# November 23, 2008 11:39 AM

תמיר כתב/ה:

חבל שאין תמיכה ב XP.

מותקן אצלי XP ועכשיו לא נראה לי שאחליף ל VISTA רק בשביל זה. יש פתרון?

[חוץ מ VPC]

# December 3, 2008 12:19 PM

תמיר כתב/ה:

מצאתי את זה:

mycloudapp.net/.../Default.aspx

וזה מסביר איך בכל זאת להתקין Windows Azure תחת XP.

וכמו שהוא אומר בהתחלה: *לא מומלץ*

# December 3, 2008 12:35 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 5 and 2 and type the answer here:


Enter the numbers above: