פיתוח באמצעות Cloud Code

1. מטרות

בשיעור ה-Lab הזה:

  • התנסות עם Cloud Code Plugins
  • פריסה לאשכול Kubernetes
  • שידור יומני kubernetes
  • שימוש בטעינה מחדש חמה של שינויים
  • ניפוי באגים באפליקציות פעילות של Kubernetes

2. סביבת העבודה בהכנה

שכפול האפליקציה

כדי לשכפל את המאגר ולפתוח אותו בסביבת הפיתוח:

  1. כדי לפתוח את העורך של Cloud Shell, נכנסים לכתובת ה-URL הבאה

https://ide.cloud.google.com

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

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. עוברים לספרייה ומגדירים את סביבת העבודה בסביבת הפיתוח המשולבת (IDE) לרמה הבסיסית (root) של המאגר

cd sample-app && cloudshell workspace .

הפעלת Minikube

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

  1. בטרמינל, מפעילים את minikube על ידי הרצת:

minikube start

Minikube מגדיר אשכול מקומי של Kubernetes ב-Cloud Shell. ההגדרה הזו תימשך כמה דקות. בזמן שהכלי מתחיל, מומלץ לעיין בממשקים השונים שסופקו על ידי Cloud Code בשלב הבא.

3. התנסות בפלאגין של Cloud Code

Cloud Code מספק תמיכה בסביבת פיתוח משולבת (IDE) לכל מחזור הפיתוח של אפליקציות Kubernetes ו-Cloud Run, החל מיצירת אפליקציה מתבנית קיימת ועד למעקב אחרי המשאבים של האפליקציה שנפרסה. ייעשה שימוש בפקודות ובתצוגות שונות שמסופקות על ידי Cloud Code. בשלב הזה תכירו את הממשקים הבסיסיים.

בדיקת תצוגות של חוקר בסרגל הפעילות

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

API Explorer:

  • בסרגל הפעילות, לוחצים על סמל Cloud Code - Cloud APIs Cloud Code. פרטים נוספים לעבודה בתצוגה הזו זמינים במסמכי התיעוד.

ded1723c524edd72.png

הסייר של Secret Manager:

  • לוחצים על התצוגה 'מנהל סודי' לשתף בסרגל הפעילות. פרטים נוספים לעבודה בתצוגה הזו זמינים במסמכי העזרה

89f88159bcf79fa9.png

Cloud Run Explorer:

  • מנווטים אל Cloud Run Explorer באמצעות הסמל של Cloud Run בסרגל הפעילות שמשמאל. פרטים נוספים לעבודה בתצוגה הזו זמינים במסמכי העזרה

a1d583fd06413011.png

Kubernetes Explorer:

  • מנווטים אל Kubernetes Explorer באמצעות הסמל בסרגל הפעילות שמופיע בצד ימין. פרטים נוספים לעבודה בתצוגה הזו זמינים במסמכי העזרה

b2b8ab3975c5b0c9.png

בדיקת הפקודות בשורת הסטטוס

ניתן לגשת במהירות לפקודות שנמצאות בשימוש נפוץ דרך האינדיקטור בשורת הסטטוס.

  • מאתרים את האינדיקטור של Cloud Code בשורת הסטטוס d61e85cf23a32a40.png + ולוחצים עליו.
  • סקירה של הפקודות השונות שזמינות להרצה ולניפוי באגים ב-CloudRun וב-Kubernetes
  • אפשר ללחוץ על 'פתיחת דף הפתיחה' כדי לקבל פרטים נוספים ופעילויות לדוגמה

בדיקת הפקודות בלוח הפקודות

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

  • פותחים את פלטת הפקודות (לוחצים על Ctrl/Cmd+Shift+P) ואז מקלידים Cloud Code כדי לסנן את הפקודות הזמינות.
  • משתמשים במקשי החיצים כדי לעבור בין הפקודות.

4. פריסה לאשכול Kubernetes

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

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

  1. בחלונית שבחלק התחתון של Cloud Shell Editor, בוחרים באפשרות Cloud Code d61e85cf23a32a40.png.
  2. בחלונית שמופיעה בחלק העליון, בוחרים באפשרות 'הפעלה ב-Kubernetes'. אם מתבקשים, בוחרים באפשרות 'כן' כדי להשתמש בהקשר של minikube Kubernetes.
  3. כדי לראות את ההתקדמות וההתראות, צריך לבחור בכרטיסייה 'פלט' בחלונית התחתונה 4866761cb9c691e2.png
  4. בוחרים באפשרות 'Kubernetes: הרצה/ניפוי באגים – פירוט'. בתפריט הנפתח של הערוץ משמאל c5e31091d464dbcf.png, כדי לראות פרטים נוספים ויומנים בסטרימינג בשידור חי ממאגרי התגים

בסיום ה-build והבדיקות, תופיע בכרטיסייה 'פלט' ההודעה: Resource deployment/sample-app-dev status completed successfully ושתי כתובות URL מופיעות.

  1. בטרמינל של Cloud Code, מעבירים את העכבר מעל כתובת ה-URL הראשונה בפלט (http://localhost:8080) ואז בטיפ הכלי שמופיע, בוחרים באפשרות Open Web Preview.

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

  1. מרעננים את הדף בדפדפן. המספר שלצד המונה גדל ומצביע על כך שהאפליקציה מגיבה לרענון שלכם.

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

5. שימוש בטעינה מחדש חמה של שינויים

בקטע הזה מבצעים שינוי באפליקציה וצופים בשינוי בזמן שהאפליקציה פועלת באשכול Kubernetes המקומי. בכרטיסיית הפלט של ערוץ Kubernetes: Run/Debug, נוסף לכתובות ה-URL של האפליקציה, בפלט כתוב גם Watching for changes., המשמעות היא שמצב השעון מופעל. בזמן ש-Cloud Code נמצא במצב שעון, Cloud Code יזהה שינויים שנשמרו במאגר שלכם ויבנה מחדש את האפליקציה ותפרס אותה מחדש באופן אוטומטי עם השינויים האחרונים.

  1. ב-Cloud Shell Editor, נכנסים לקובץ main.go.
  2. בקובץ Main.go הזה, בשורה 23, משנים את הצבע מירוק לכחול.
  3. שומרים את הקובץ.

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

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

  1. בסיום ה-build, עוברים לדפדפן שבו האפליקציה פתוחה ומרעננים את הדף.

אחרי הרענון, הצבע בחלק העליון של הטבלה משתנה מכחול לירוק.

ההגדרה הזו מאפשרת טעינה מחדש אוטומטית לכל ארכיטקטורה, עם כל הרכיבים. כשמשתמשים ב-Cloud Code וב- minikube, כל מה שרץ ב-Kubernetes כולל את הפונקציונליות הזו של טעינה מחדש באמצעות קוד חם.

6. ניפוי באגים באפליקציות פעילות של Kubernetes

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

בדוגמת ניפוי הבאגים הזו, נתמקד בקטע הקוד של מונה הדפים.

  1. ב-Cloud Shell Editor, פותחים את הקובץ main.go
  2. מגדירים נקודת עצירה באפליקציה על ידי לחיצה על המספר השמאלי של שורה 82 (אם err != nil {)
  3. בחלונית הכחולה שבחלק התחתון של Cloud Shell Editor, לוחצים על הסמל של Cloud Code d61e85cf23a32a40.png.
  4. בחלונית שמופיעה בחלק העליון, בוחרים באפשרות 'ניפוי באגים ב-Kubernetes'.

Cloud Code מריץ ומצרף כלי לניפוי באגים כדי שתוכלו לגשת למצב הזיכרון של האפליקציה, ולא רק להתנהגות של האפליקציה שגלויה למשתמשים.

  1. בסוף תהליך הפריסה תופיע בחלק העליון של החלון הנחיה לאשר את הספרייה בקונטיינר שבו האפליקציה פרוסה. f96e9a814edb44f4.png

צריך לוודא שהערך מוגדר כ-/go/src/app ולהקיש על Enter כדי לאשר את הערך

  1. ממתינים שהפריסה של הכלי לניפוי באגים תסתיים. אפשר לדעת שהתהליך הושלם כששורת הסטטוס משתנה לכתום, והפלט ידווח "Attached debugger to container "sample-app-dev-..." successfully."
  2. בטרמינל של Cloud Code, מעבירים את העכבר מעל כתובת ה-URL הראשונה בפלט (http://localhost:8081) ואז בטיפ לכלי שמופיע, בוחרים באפשרות Open Web Preview. טעינת הדף לא תסתיים, והפעולה הצפויה היא.
  3. חוזרים לסביבת הפיתוח המשולבת (IDE) שבה מופיע עכשיו הכלי לניפוי באגים. הקוד מופיע בכרטיסייה, ואפשר לראות את ערימת הקריאות – אילו משתנים זמינים בחלק הזה של הקוד. אפשר להרחיב את הקטע 'משתנים - מקומי' כדי לראות כאן את הערך הנוכחי של משתנה המונה.
  4. כדי לאפשר את המשך טעינת הדף, יש לבחור באפשרות 'המשך' הסמל בחלון ניפוי הבאגים 8f395391c4828528.png
  5. כשמסיימים לנפות את הבאגים, לוחצים על לחצן העצירה כדי לסיים כל אחד מהשרשורים הפעילים. 81d142a9e1a2c01b.png