מודולים של Skaffold

Skaffold הוא כלי לשורת הפקודה שמקל על פיתוח רציף של אפליקציות שנוצרו ב-Kubernetes. ‫Skaffold מטפל בתהליך העבודה של בנייה, שליחה ופריסה של האפליקציה, ומספק אבני בניין ליצירת צינורות CI/CD. ‫Skaffold הוא המנוע שמפעיל את Cloud Code.

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

‫Skaffold תומך בהגדרה של כמה תלות בהגדרות, שאפשר למקם אותן יחד באותו קובץ skaffold.yaml ולהפריד ביניהן באמצעות מפרידי מסמכי YAML ‏ (---), או למקם אותן בקובצי skaffold.yaml נפרדים שאליהם מתבצעת הפניה מקובץ skaffold.yaml ברמה גבוהה יותר. כדי להפוך הגדרה למודול, צריך לתת לה שם באמצעות השדה .metadata.name.

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

ניפוי באגים באפליקציות באמצעות מודולים של Skaffold

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

תחילת העבודה עם דוגמה של מודולים ב-Skaffold

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

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

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

תרחישים נפוצים לדוגמה

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

פיתוח מיקרו-שירותים

אתה מפתח frontend שעובד בעיקר על מודול frontend. בתור מיקרו-שירות, ל-frontend אין קוד מפורש או תלות בספרייה במאגר backend, אבל הוא דורש ש-backend יופעל ויפעל באשכול.

אתם משתמשים בפרויקט מבוסס-Skaffold שמכיל הגדרת מודול frontend כדי לפרוס ולנפות באגים מ-IDE של Cloud Code לאשכול פיתוח משותף, שבו צוות ה-Backend פורס גם את השירות שלו. צוות ה-DevOps מתחזק את האשכול המשותף הזה.

ברוב המקרים לא תצטרכו לעבוד עם קוד backend, לנפות בו באגים או לעדכן את ההגדרות של Kubernetes. ‫Skaffold יוצר פריסה של הגדרות אחרות שנדרשות ל-frontend. מגדירים את הגדרות הפריסה של Cloud Code כך שהאיטרציה תתבצע רק במודול frontend.

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

פיתוח וניפוי באגים של מיקרו-שירותים (microservices) חוצי-גבולות

כשצריך לנפות באגים בכמה מיקרו-שירותים ביחד, אפשר:

  • פותחים את ספריית האב שבה נמצאות כל ספריות המשנה עם קוד המקור של המודולים, ביחס אחת לשנייה.
  • בחירת קובץ הבסיס skaffold.yaml לפריסה (הגדרות)
  • מגדירים את הגדרות הפריסה של Cloud Code כך שיחזרו רק על מודולים של frontend ו-backend שזמינים באופן מקומי (ומודול ההגדרות המתאים של Kubernetes אם יש בו שינויים).

אפשר גם להשתמש בקובץ שורש skaffold.yaml נפרד לפיתוח מקומי שכולל שרת נתונים סטטי.

עריכת YAML חכמה של מודולים

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

פנייה לתמיכה

כדי לשלוח משוב או לדווח על בעיה ב-IntelliJ IDE, עוברים אל Tools (כלים) > Cloud Code > Help / About (עזרה / מידע) > Submit feedback or report an issue (שליחת משוב או דיווח על בעיה) כדי לדווח על בעיה ב-GitHub.