אוטומציה של תהליך ה- Release עם InRelease for Visual Studio 2013

29 באוגוסט 2013

תגיות: , , ,
אין תגובות

imageגרסת Visual Studio 2013 החדשה מציגה לנו כלי חדש בשם InRelease שהוא למעשה סט של כלי אוטומציה לביצוע קל ופשוט יותר של release (פריסה) ו- deployment לאפליקציות שלנו . בפוסט זה אסביר מה השימושים של הכלי ולמי הוא נועד.

הכלי – InRelease הגיע אלינו מחברה אותה מיקרוסופט רכשה לפני מספר חודשים והאו למעשה בא להשלים קובייה מאוד חשובה בעולם ה- DevOps:  ניהול ה- Deployment לסביבות השונות: Dev, QA, Staging, Production וכו’.

ה – InRelease לא בה להחליף את ה – Team Build אלא להשלים אותו.  אם עד היום הינו צריכים להשתמש בבילד מרמת קימפול הקוד ועד ל- Deployment לסביבה הרצויה –  היום ה- Team Build ישמש אותנו מרמת קימפול הקוד ועד לאריזתו הסופית לפני ה- Deployment. יש לציין כי בדיוק עבור זה הוא נוצר.

 

image

 

 

4 המודולים מהם מורכב ה- InRelease:

Server – לב ליבה של המערכת.
ה- Server מחזיק את בסיס הנתונים, את השליטה ב – Workflows השונים ומסנכרן את הפעילויות על מחשבי היעד.

Client – יש לנו שניים כאילו, אחד מבוסס WPF והאחר מבוסס Web.

Deployer – למעשה מה שמותקן על מחשבי היעד.

Deployer Tools – הרחבות ל – Deployer לביצוע משימות שונות על מחשבי היעד.

 

יש לציין כי תצורתו הנוכחית של ה- InRelease הולכת להשתנות:
ה- Server יהיה חלק מה- TFS 2013,  ה – Client יהיה חלק מה- Microsoft Test Professional וניתן יהיה להשתמש בו גם עם רישיונות ל- VS 2013 Premium ו- VS 2013 Ultimate.

 

יכולות ה- InRelease – הדגמה של פריסה באמצעות הכלי

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

לצורך ההדגמה ניצור העתקה פשוטה בין תיקיות.  ניצור 3 תיקיות: Source, Dev, QA.

בין ביצוע הפריסה ל- Dev לביצוע הפריסה ל- QA נקבל אישור ידני מבחורה חביבה בשם ג’וליה.

 

צעד 1: יצירת תוכנית לצורך ה – Demo, יצרתי תוכנית פשוטה מאוד קראתי לה: DemoInReleaseApp.

צעד 2: ניצור בילד חדש, ניכנס לאזור הבילדים דרך ה – Team Explorer

Step_5_Create_build_definition

צעד 3: נקליק על New Build Definition

Step_6_New_build_def

 

צעד 4: נשתמש ב – Template של ה – InRelease

Step_8_choose_the_InRelease_template

 

צעד 5: נבחר לבנות את האפליקציה אותה בניתי לצורך ה – Demo

Step_7_choose_to_build_the_solution

 

צעד 6: תחת InRelease, נבחר לבצע Deployment לבילד

Step_9_choose_true

 

 

צעד 7: ניפתח את ה – InRelease

Step_1_-_open_InRelease

 

צעד 8: נוסיף את הסביבות והשרתים\מחשבים שמקושרים לכל סביבה

Step_11_Environment_definition

 

צעד 9: נבנה תהליך פריסה.
אני בניתי שתי “תחנות”, האחת Dev והשנייה QA, כמובן שניתן לבנות כמה תחנות שתרצו כולל תחנת Production.
הגדרתי שבין התחנה הראשונה (Dev) ל – QA יש מאשר במקרה זה זוהי ג’וליה, אשת ה- QA שלנו.

Step_10_Release_Path_Dev_QA

 

צעד 10: נבנה Component שיגדיר את הקשר שבין תוצרי ה – Build לתהליך ה – Deployment.
שלב ראשון נגדיר מאיפה לקחת את התוצרים, שלב שני נגדיר פעולה אותה נבצע אם אותם תוצרים.

Step_13_Create_Component_1

Step_14_Create_Component_2

 

צעד 11: נעבור ליצירת ה – Release Template שהוא לב ליבו של כל התהליך.
נתחיל בלהגדיר את הקשר בין ה- Release Template לבילד האוטומטי.
נבחר את הבילד האוטומטי תחת Build Definition ונאפשר לבילד להפעיל את ה – Release.

 

צעד 12: נשלים את שם ה – Release Template ואת ה- Release Path אותו יצרנו קודם ונקליק על Create.

Step_12_Create_Release_Template

 

צעד 13: ניצור את ה- Workflow.
בקוים כללים נבחר כול מחשב\שרת ששייכים לסביבה ומה אנחנו רוצים לבצע עליו, כאשר ניתן לשלוט ב – Database, IIS, Windows OS וכו’ הכול על ידי Tasks שמגיעים עם הכלי.  כמו כן נשתמש ב – Component אותו יצרנו קודם.

ב – Deployment אחד ניתן לשלוט על עשרות ומאות מחשבים ושרתים דרך הכלי!

Step_14_Create_The_workflow

 

צעד 14: עכשיו אנחנו מוכנים להריץ את הבילד. בסיום הבילד הוא קורא ל – InRelease.

נפתח את ה – InRelease, נראה כי יש לנו קריאה ב – Traffic:

Step_15_Starting_Dep_3

 

נפתח את הלוג בסיום ה – Deployment ל – Dev ונראה כי לאחר שסיים הוא ממתין לאישור להמשיך ל- QA:

Step_16_Deployment_Log

 

צעד 15: נאשר את הבקשה.

Step_17_Approve

Step_18_Approve_window

 

נראה כי הוא מסיים את ה – Deployment ל- QA:

Step_19_QA_Deployment_log

 

נפתח את תיקיית ה- QA ונראה שאכן ה- Deployment בוצע כנדרש:

Step_20_QA_Deployment_Result

 

 

סיכום

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

image

רוצים ללמוד עוד על InRelease? כנסו לכאן וצפו בסרטונים ועוד!

יש לכם שאלות בנושא Visual Studio ו-ALM? כנסו לפורום שלנו בעברית.

תהנו!!!

 

 

EranRusotopQהפוסט נכתב על ידי ערן רוסו , מנהל חטיבת ה – ALM & DevOps בחברת TOP Q, המובילה במגוון פתרונות אוטומציה לבדיקת מוצרי תוכנה, ALM ו – DevOps בטכנולוגיה מתקדמת, המיועדים לסביבות מחשוב מרובות מערכות, קונפיגורציות ותהליכים בארגונים בינוניים וגדולים. כנסו לבלוג של ערן וקראו על עוד נושאים מעולם ה- ALM וה- TFS ואתם מוזמנים גם לקבוצת הלינקדאין.

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

כתיבת תגובה

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