בניית צינור Azure DevOps הראשון שלך מאפס

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

A pipeline allows developers, DevOps teams and others to produce and deploy reliable code. In the Microsoft realm, the way to build a pipeline is with Azure DevOps with a feature called Azure Pipelines.

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

תודה רבה ל-Peter De Tender, מדריך טכני ב-Microsoft Azure, על עזרתו בכתיבת המאמר הזה.

סקירת הפרויקט

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

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

עלול לקחת לך 30 דקות כדי להשלים את הפרויקט הזה.

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

קהל יעד

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

דרישות סביבה

אם אתה מתכנן לעבור דרך הפרויקט הזה שלב אחר שלב, ודא, לפחות, שיש לך את הדברים הבאים:

יצירת ארגון Azure DevOps

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

  1. מה פורטל Azure, נווטו אל כל השירותים, חפשו DevOps ותבחרו את Azure DevOps. תוכלו לראות מה לצפות מטה. זה יפתח את להבת Azure DevOps כפי שמוצג למטה.
Azure DevOps dashboard

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

Create new Azure DevOps organization page

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

Azure DevOps organization creation page

בנקודה זו, הארגון שלכם ב-Azure DevOps נוצר!

יצירת פרויקט Azure DevOps

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

Azure DevOps מאפשר לך ליצור פרויקט באותו זרימת עבודה כמו יצירת ארגון כפי שבוצע לעיל. אם עקבת, אתה כעת תקבל דף יצירת פרויקט כפי שמופיע למטה.

  1. בדף יצירת הפרויקט, ספק שם לפרויקט שלך בשדה שם הפרויקט. עבור פרויקט זה, תשתמש בפרויקט Azure DevOps בשם devopsdemo.
  2. אשר את יצירת הפרויקט על ידי לחיצה על הכפתור + צור פרויקט.
  3. כרגע, השאר את הנראות מוגדר כ־פרטי. זה מבטיח שהפרויקט שלך לא יתקרא לאינטרנט. פרויקט ציבורי מאפשר גישת קריאה לאנשים שאינם חברים בפרויקט ולמשתמשים שאינם מחוברים.
Azure DevOps project creation page

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

Azure DevOps project overview

בניית צינור בניית Azure DevOps

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

  1. מלוח הבקרה, בחר צינורות ואז בחר בניית בנייה.
Azure DevOps Builds menu

2. תראה הודעה שמודיעה כי עדיין לא נמצאו צינורות בנייה. לחץ על צינור חדש להתחלת יצירת הצינור של בניית הבניה.

No build pipelines bound yet. Creating a new pipeline.

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

Selecting version control source

4. לחץ על GitHub, תתבקש למסור את פרטי הכניסה לחשבון ה-GitHub שלך כפי שמוצג למטה. לפני שתתחיל בשלב זה, זכור ליצור מאגר GitHub ריק, כפי שמוגדר בסעיף הדרישות המוקדמות של מאמר זה!

Providing GitHub credentials

5. לאחר שתלחץ על אישור, תתבקש לאשר ל-Azure Pipelines לגשת למאגרי GitHub שלך.

Authorizing Azure Pipelines to access GitHub

קישור מאגר GitHub לצינור הבניה

לאחר שאישרת ל-Azure DevOps גישה לחשבון ה-GitHub שלך, כעת תקשר מאגר GitHub לצינור הבניה.

  1. בחר את מאגר ה-GitHub הריק שיצרת עבור הפרויקט הזה.
Empty source GitHub repo

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

Confirm Azure DevOps Github integration

3. לחיצה על אישור תגרום להופעת שגיאה כפי שמוצג למטה. שגיאה זו תתרחש מכיוון שהמאגר שנבחר ב-GitHub הוא ריק.

Error when GitHub repo is empty

בנקודה זו, מאגר ה-GitHub שלך יהיה מקושר לצינור הבנייה של Azure DevOps שלך.

אין צורך ליצור צינור חדש כל פעם שברצונך לקשר מאגר GitHub לצינור בניית Azure DevOps.

מילוי קוד מאגר GitHub דוגמתי

צינור הבנייה של Azure DevOps לא יעבוד ללא קוד במאגר GitHub. הקוד אינו חשוב בשלב זה. כדי להוסיף קוד למאגר, נשתמש במאגר קיים כדי לשכפל חלק מהקוד. במאגר זה, יש לי את כל קוד המקור הנדרש לפרסום יישום דוגמתי של מסחר אלקטרוני ב-Azure WebApps.

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

  1. נווט אל מאגר ה-GitHub הדוגמתי הזה ולחץ על ייבוא קוד כפי שמוצג למטה.
Empty myfirstrepo GitHub repo

2. למקום של כתובת ה-URL לשכפול המאגר הישן השתמש ב־http://github.com/007FFFLearning/SimplDev ולחץ על התחל יבוא.

Proving the repo clone URL

כאשר שלב הייבוא של המאגר הושלם בהצלחה, רענן את חלון צינור הבנייה של Azure DevOps, שכך תוכל להמשיך כעת.

בדיקה וצפייה בצינור הבנייה ב־YAML

בנקודה זו, תגיעו לשלב הביקורת של תהליך יצירת הצינור. כעת יוצג לך תיאור של צינור הבנייה בפורמט YAML. קובץ ה-YAML הזה נבנה אוטומטית בהתבסס על זיהוי שפת קוד המקור שהיא dotnetcore בפרויקט זה.

אחת מהיתרונות האמיתיים של Azure DevOps היא הפקודה YAML. בכלים אחרים לפיתוח צוותים, עליך לבנות קובץ צינור באופן ידני.

Reviewing pipeline YAML

הרצת צינור הבנייה ב-Azure באופן ידני

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

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

Pipeline starting

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

Running on the macOS build agent

צינור הבנייה יחזור על אותו תהליך עבור מערכות ההפעלה האחרות (בדוגמה זו) כפי שמוצג בתמונה למטה. השלבים שיעברו יתקנו בהתאם לכיצד נבנה קובץ ה-YAML.

Running on the Linux build agent

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

Successful pipeline run

יצרת כעת צינור בנייה של Azure DevOps!

יצירת צינור של Azure DevOps לשחרור

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

A release pipeline takes a build artifact, a result of the build process and deploys that to one or more environments. In this Project, you’re going to use a release pipeline to publish code in the GitHub repo to an Azure Web App.

  1. מ- Azure DevOps, לחץ על צינורות ואז שחרורים.
Releases menu item

2. לאחר מכן, בחר חדש ואז צינור שחרור חדש. זה משיק את אשף צינור השחרור החדש.

New release pipeline menu option

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

Select the Azure App Service deployment template

4. ספק תיאור ל שם השלב. השלב יכיל משימות בשחרור. עבור הפרויקט הזה, השתמש בשם העלאה אל אפליקציית האינטרנט.

Specify the stage name

צינור השחרור צריך להיראות כמו בצילום המסך למטה.

Created stage

5. בשדה שלבים, בחר 1 משימה, 1 מטלה. בשדה זה תספק בסופו של דבר את ההגדרות של סביבת Azure Web App שתשתמש בה להפצת האפליקציה האמיתית.

6. חלק מתבנית הפרסום של Azure App Service מגיעות כמה פרמטרים שתצטרך להגדיר במסך זה.

  1. שם הבמה – Deploy-to-webapps2 בדוגמה זו.
  2. מנוי Azure – בחר את המנוי שלך ואשר עם Authorize (נדרשות פרטי הזדהות)
  3. סוג היישום – אפליקציית אינטרנט ב- Linux
  4. שם שירות היישום – האפליקציה האינטרנטית שיצרת בשלב הקודם
Setting template parameters

7. כאשר סיימת, לחץ על Pipeline בתפריט העליון של פרויקט הצינור שלך ב-Azure. זה יחזיר אותך למסך הראשי ויאפשר לך להשלים את השלב הבא שהוא ציון ה- ארטיפקטים.

Going back to the pipeline

הוספת ארטיפקטים לצינור השחרור של Azure DevOps

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

במקטע זה, נדבר על כיצד להוסיף ארטיפקטים לצינור השחרור.

  1. בכפתור Pipeline, לחץ על Add an Artifact.
  2. סוג המקור כבר מוגדר כ- Build, שזה מה שתרצה מאחר ותוצאת צינור הבניה שנוצר לפני זה תידרג. בחר בצינור הבניה שנוצר לפני כך ברשימת הנפילה של מקור (צינור בניה).
  3. כשתסיים, לחץ על הוסף כדי לשמור את התצורה.
Adding an artifact

4. לחץ על לחצן שמור בפינה הימנית העליונה של המסך כדי לשמור את צינור השחרור.

יצירת צינור השחרור ב-Azure DevOps

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

כדי ליצור שחרור:

  1. לחץ על לחצן צור שחרור בפינה הימנית העליונה של החלון כפי שמוצג למטה.
New release pipeline overview

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

Create a new release item

3. לאחר מספר שניות, תקבל הודעה (המסגרת הירוקה) שהשחרור נוצר כפי שמוצג למטה. כעת לחץ על שחרור-1 שיפנה אותך לפרטי תהליך השחרור.

Click on Release-1

יצרת כעת שחרור והוא מוכן לפרסום!

פרסום ידני של שחרור

A release is a set of instructions to perform on how to deploy a build. You’ve done all of that. Now it’s time to actually run those instructions and deploy code to an environment.

כאשר אתה נמצא בשחרור -1 שיצרת מוקדם יותר:

  1. בחר בשלב Deploy_to_webapp ואשר את Deploy. בעת עשיית זאת, המצב ישתנה ל- בתהליך כפי שמוצג למטה. בנקודה זו, השחרור מחזיק בקוד המקור מתוך צינור הבנייה שנוצר מוקדם יותר ומעביר אותו למופע של Azure WebApp.

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

Stage in progress

2. לחץ על השלב כאשר הוא בתהליך. תוכל לראות את מידע הקלטה מוצג באזור הפלט של הקונסולה.

Job log showing stage in progress

כאשר השלב יושלם, המצב צריך להראות הצליח כפי שמוצג למטה.

Successful stage

אם הכל עבר כראוי, השחרור צריך להסתיים ועכשיו יש לך אפליקציה אינטרנטית מפורסמת ב- Azure Web App!

בדיקת ה- Azure WebApp שפורסם

עכשיו שהתהליך כולו הושלם, ודא שבודק את תוצאות העבודה שלך.

  1. התחבר ל- פורטל Azure, נווט אל Azure WebApp שבחרת בצינור השחרור כיעד והעתק את כתובת ה- URL כפי שמוצג למטה.
Finding the Azure App Service URL in the Azure portal

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

The front page of the deployed application

עכשיו עשית הכול! עכשיו יש לך אפליקציית אינטרנט של Azure שפורסמה ממאגר GitHub וניתן לאוטומציה במלואה!

ניקוי

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

על מנת לעשות זאת:

  1. חזור למרכז העבודה הראשי שלך ב- Azure DevOps.
  2. לחץ על הגדרות ארגון בפינה השמאלית התחתונה.
  3. במסך הסקירה, לחץ על הלחצן מחק בתחתית העמוד מתחת ל- מחק ארגון.
  4. הקלד את שם הארגון ואז לחץ על מחק. זה צריך להסיר את כל העבודה שביצעת עכשיו.

המסר שלך

אם עקבת אחרי ההוראות בפרויקט הזה, יש לך צינור CI/CD מלא מאפס ב- Azure DevOps. עכשיו יש לך רעיון טוב מה התהליך הזה כולל.

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

Source:
https://adamtheautomator.com/azure-pipelines/