בפוסט הקודם בנושא Docker Containers, קיבלנו הצצה לסביבות פיתוח, DevOps והכנסת גרסאות מהירה לייצור. וגם הפוסט הזה נותן הצצה לתחום אנשי ה DevOps. הפעם החלטתי לתת הצצה הכוללת Step By Step ליצירת אפליקציה (דף אינטרנט) בסביבת ייצור ופרסומה לתוך Azure App Service כאתר אינטרנט בסביבת Azure. נראה כיצד ליצור מסביבה זו עותק משני עבור סביבת Stage ולבצע השינויים ופריסה מחודשת לייצור, חזרה ל rollback והכל באופן שקוף למשתמש ללא השבתה.בעבר, צוות ה Release, אנשי האופרציה, היו מקבלים גרסאות מצוות הפיתוח, מתאמים השבתה ומטמיעים את הקוד החדש בשרתי האפליקציה. בצוות שאני עבדתי בו לא היו קבצי exe להתקנה אוטומטית אלא הרבה מאוד סקריפטים. כל הטמעה שכזו גררה השבתה (בסביבה שנמדדת על השבתות). כל שדרוג אפליקציה והכנסת שינויים בין סביבת פיתוח, stage, ייצור הייתה אופרציה מסורבלת ואם היה צורך ב rollback אז כבר נכנסת לשעות הלילה. וזו הייתה השגרה שלנו.Azure AppService הינו שירות PaaS המאגד בתוכו גם אתרי אינטרנט ואפליקציות וגם תומך בגישת ה CI / CD.באפליקצה הרצה בסביבת Azure AppService ישנה אפשרות להעתיק את האפליקציה וליצור ממנה סביבה נוספת.כל סביבה כזו מכילה בתוכה הגדרות יחודיות (נניח קישור לבסיס נתונים אחר, URL שונה) - Deployment Slots.ולייתר דיוק, כל Deployment Slots הינו אינסטנס נפרד של אפליקציה (סביבת ייצור, פיתוח, Stage). מאחורי הקלעים, כל סביבה של האפליקציה, Slots, חולקים את אותם המשאבים של ה VM, ה Service Plan. ה Deployment Slot הראשי נקרא Default, וניתן ליצור עוד כארבעה סביבות, Slots.תהליך זה מאפשר לנו לבדוק בסביבת ה Stage את הגרסה החדשה, בלחיצת כפתור (או פקודה) להעביר את הגרסה החדשה לייצור ואת הגרסה הישנה שהייתה בייצור, להעביר לסביבת ה Stage. תהליך הנקרא Swap. הכל באופן שקוף למשתמש וללא השבתות. תשאלו מדוע להעביר את הסביבה הישנה לStage? מפני שתהליך זה מאפשר לי לבצע Roll Back מיידי במקרה שמשהו בקוד לא פועל כפי שצריך.מה שחשוב לי שתקחו מהפוסט הזה היא הגמישות והפשטות המירבית המופקת בעבודה עם כלים כגון Visual Studio ו Azure. את ההדגמה ביצעתי עם Visual Studio 2015 אבל ניתן להקים מערכים כאלו בPowerShell וגם להעלות דרך FTP וכו'.Azure App Service ו Azure בכלל זו פלטפורמה מדהימה שקצב הפיתוח והיכולות מגיעים בקצב מסחרר. שווה להתעדכן.
בואו נראה את התהליך from A to Z:
הקמת אפליקציהאצלי מוגדר visual studio 2015 comunity עם Azure sdk https://blogs.msdn.microsoft.com/microsoftimagine/2015/07/20/welcome-to-visual-studio-2015-with-azure/
נפתח את VS ונגדיר file > new > web siteנגדיר asp.net empty web site
ניצור קובץ index.html ונגדיר אותו כדף This is PROD!
גם בשרתי אינטרנט iis, apache יש צורך להגדיר אילו דומיינים מקושרים לאותו השרת.להסבר מלא להגדרת custom domain יש לעבור ללינק הנ"ל https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-custom-domain-nameיש לגשת לApp Servises > MyProd
הגדרה של Deployment Slots וביצוע Swop
לצערי מחקתי את סביבת ההדגמה ולא הספקתי לצלם את המסך, אולם בסיום, יווצר Slot עם URL:http://myprod-stage.azurewebsite.net
כעת יש ליצור את האפליקציה עצמה עבור סביבת ה Stage. ניתן לעשות זאת במספר דרכים. אנחנו נעשה זאת דרך VS.
שימו לב. תחת ה Resource Group שלי יש מספר אתרים. ישנו גם ה MyProd, האפליקציה שיצרנו. מתחתיה יש את ה Deployment Slots והנה ה Stage Slot שיצרנו מקודם.
נבחר את ה Stage לסיום התהליך ופבלוש האפליקציה של ה Stage
הנה, נוצרה לנו אפליקציית ה stage בנתיב http://myprod-stage.azurewebsites.net
עכשיו כשיש לנו סביבת ייצור בגרסה 1.0 וסביבת stage בגרסת 1.1 הגיע הזמן להכניסה לייצור!
בסביבת ה Stage נלחץ על כפתור ה Swapישנן מספר אופציות לביצוע Swap. ניתן לביצוע דרך סקריפט, PowerShell. ניתן לביצוע בpreview mode ואז נצטרך להגדיר complete swap לסיום
בסיום התהליך נקבל את גרסת הStage ב URL של הייצור ואת גרסת הייצור הישנה בסביבת הStageלא עבר תקין? התגלה באג? ניתן להחליף את הגרסאות באותה הדרך - ע"י Swap
בפוסט הקודם בנושא Docker Containers, קיבלנו הצצה לסביבות פיתוח, DevOps והכנסת גרסאות מהירה לייצור. וגם הפוסט הזה נותן הצצה לתחום אנשי ה DevOps. הפעם החלטתי לתת הצצה הכוללת Step By Step ליצירת אפליקציה (דף אינטרנט) בסביבת ייצור ופרסומה לתוך Azure App Service כאתר אינטרנט בסביבת Azure. נראה כיצד ליצור מסביבה זו עותק משני עבור סביבת Stage ולבצע השינויים ופריסה מחודשת לייצור, חזרה ל rollback והכל באופן שקוף למשתמש ללא השבתה.בעבר, צוות ה Release, אנשי האופרציה, היו מקבלים גרסאות מצוות הפיתוח, מתאמים השבתה ומטמיעים את הקוד החדש בשרתי האפליקציה. בצוות שאני עבדתי בו לא היו קבצי exe להתקנה אוטומטית אלא הרבה מאוד סקריפטים. כל הטמעה שכזו גררה השבתה (בסביבה שנמדדת על השבתות). כל שדרוג אפליקציה והכנסת שינויים בין סביבת פיתוח, stage, ייצור הייתה אופרציה מסורבלת ואם היה צורך ב rollback אז כבר נכנסת לשעות הלילה. וזו הייתה השגרה שלנו.Azure AppService הינו שירות PaaS המאגד בתוכו גם אתרי אינטרנט ואפליקציות וגם תומך בגישת ה CI / CD.באפליקצה הרצה בסביבת Azure AppService ישנה אפשרות להעתיק את האפליקציה וליצור ממנה סביבה נוספת.כל סביבה כזו מכילה בתוכה הגדרות יחודיות (נניח קישור לבסיס נתונים אחר, URL שונה) - Deployment Slots.ולייתר דיוק, כל Deployment Slots הינו אינסטנס נפרד של אפליקציה (סביבת ייצור, פיתוח, Stage). מאחורי הקלעים, כל סביבה של האפליקציה, Slots, חולקים את אותם המשאבים של ה VM, ה Service Plan. ה Deployment Slot הראשי נקרא Default, וניתן ליצור עוד כארבעה סביבות, Slots.תהליך זה מאפשר לנו לבדוק בסביבת ה Stage את הגרסה החדשה, בלחיצת כפתור (או פקודה) להעביר את הגרסה החדשה לייצור ואת הגרסה הישנה שהייתה בייצור, להעביר לסביבת ה Stage. תהליך הנקרא Swap. הכל באופן שקוף למשתמש וללא השבתות. תשאלו מדוע להעביר את הסביבה הישנה לStage? מפני שתהליך זה מאפשר לי לבצע Roll Back מיידי במקרה שמשהו בקוד לא פועל כפי שצריך.מה שחשוב לי שתקחו מהפוסט הזה היא הגמישות והפשטות המירבית המופקת בעבודה עם כלים כגון Visual Studio ו Azure. את ההדגמה ביצעתי עם Visual Studio 2015 אבל ניתן להקים מערכים כאלו בPowerShell וגם להעלות דרך FTP וכו'.Azure App Service ו Azure בכלל זו פלטפורמה מדהימה שקצב הפיתוח והיכולות מגיעים בקצב מסחרר. שווה להתעדכן.
בואו נראה את התהליך from A to Z:
הקמת אפליקציהאצלי מוגדר visual studio 2015 comunity עם Azure sdk https://blogs.msdn.microsoft.com/microsoftimagine/2015/07/20/welcome-to-visual-studio-2015-with-azure/
נפתח את VS ונגדיר file > new > web siteנגדיר asp.net empty web site
ניצור קובץ index.html ונגדיר אותו כדף This is PROD!
גם בשרתי אינטרנט iis, apache יש צורך להגדיר אילו דומיינים מקושרים לאותו השרת.להסבר מלא להגדרת custom domain יש לעבור ללינק הנ"ל https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-custom-domain-nameיש לגשת לApp Servises > MyProd
הגדרה של Deployment Slots וביצוע Swop
לצערי מחקתי את סביבת ההדגמה ולא הספקתי לצלם את המסך, אולם בסיום, יווצר Slot עם URL:http://myprod-stage.azurewebsite.net
כעת יש ליצור את האפליקציה עצמה עבור סביבת ה Stage. ניתן לעשות זאת במספר דרכים. אנחנו נעשה זאת דרך VS.
שימו לב. תחת ה Resource Group שלי יש מספר אתרים. ישנו גם ה MyProd, האפליקציה שיצרנו. מתחתיה יש את ה Deployment Slots והנה ה Stage Slot שיצרנו מקודם.
נבחר את ה Stage לסיום התהליך ופבלוש האפליקציה של ה Stage
הנה, נוצרה לנו אפליקציית ה stage בנתיב http://myprod-stage.azurewebsites.net
עכשיו כשיש לנו סביבת ייצור בגרסה 1.0 וסביבת stage בגרסת 1.1 הגיע הזמן להכניסה לייצור!
בסביבת ה Stage נלחץ על כפתור ה Swapישנן מספר אופציות לביצוע Swap. ניתן לביצוע דרך סקריפט, PowerShell. ניתן לביצוע בpreview mode ואז נצטרך להגדיר complete swap לסיום
בסיום התהליך נקבל את גרסת הStage ב URL של הייצור ואת גרסת הייצור הישנה בסביבת הStageלא עבר תקין? התגלה באג? ניתן להחליף את הגרסאות באותה הדרך - ע"י Swap
Oops! Something went wrong while submitting the form