שילוב של Cloud Deploy עם מערכות אחרות

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

  • כלי בדיקה
  • ניהול תהליכי עבודה

במאמר שילוב עם מערכת ה-CI מוסבר איך קוראים ל-Cloud Deploy מצינור ה-CI.

לפני שמתחילים

ההוראות בדף הזה מבוססות על ההנחה שכבר עמדתם בתנאים הבאים:

שילוב עם בדיקות אוטומטיות

אתם יכולים להשתמש ב-Cloud Deploy עם Pub/Sub כדי לשלב בדיקות בצינור העברת הנתונים, וכך לקדם את הגרסה באופן אוטומטי, לצורך העברה רציפה.

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

שימוש ב-Pub/Sub לאוטומציה של קידום

  1. האזנה להודעות Pub/Sub מהנושא clouddeploy-operations.

    ההודעה מכילה את המאפיינים הבאים:

    • Action: SUCCEED
    • ResourceType: Rollout
    • Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
  2. כשמקבלים הודעה שהפריסה הצליחה, מריצים את הבדיקות באפליקציה שנפרסה.

  3. אם הבדיקות מצליחות, מתבצעת קריאה ל-Cloud Deploy כדי לקדם אוטומטית לשלב הבא:

    gcloud deploy releases promote RELEASE_NAME \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --annotations=KEY=VALUE,...
    

    where:

    • RELEASE_NAME

      הוא שם הגרסה. חובה לציין ערך.

    • PIPELINE_NAME

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

    • REGION

      הוא האזור שבו הצינור פועל. אם הגדרתם את המאפיין deploy/region, אתם יכולים להשמיט את הדגל הזה.

    • KEY=VALUE,...

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

      gcloud deploy releases promote --annotations="from_target=test,status=stable"

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

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

אם יש לכם כתובת URL שמובילה למיקום שבו אפשר לגשת לתוצאות הבדיקה, אתם יכולים לספק את כתובת ה-URL הזו כהערה בהשקה, באמצעות הדגל --annotations. הנה דוגמה:

gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"

מידע נוסף זמין במאמר שימוש בתוויות ובהערות עם Cloud Deploy.

שילוב עם מערכות לניהול תהליכי עבודה של צד שלישי

‫Cloud Deploy מפרסם הודעות תפעוליות ב-Pub/Sub. כלי לניהול תהליכי עבודה יכול להירשם לנושאים האלה ב-Pub/Sub ולהשתמש בהם כדי להפעיל תהליכי עבודה ספציפיים.

לאישורים

נושא clouddeploy-approvals מודיע למערכת שלכם כשנדרש אישור להשקה. מערכת זרימת העבודה החיצונית יכולה לבצע את הפעולות הנדרשות כדי לקבל את האישור, ואז להתקשר אל gcloud deploy rollouts approve.

לחשבון שמריץ את הפקודה rollouts approve צריך להיות תפקיד IAM מוגדר מראש roles/clouddeploy.approver.

כדי להגדיר תהליך עבודה לאישור חיצוני:

  1. נדרש אישור ביעד.

    בהגדרה של היעד הזה, כוללים את requireApproval: true.

  2. כדי להשתמש בהודעות, צריך להירשם לנושא Pub/Sub ולהגדיר את המערכת לניהול תהליכי העבודה.clouddeploy-approvals

  3. כשהמערכת לניהול תהליכי העבודה מקבלת הודעה מהנושא clouddeploy-approvals שכוללת את "Action": "Required", היא מפעילה תהליך עבודה לאישור, שמוגדר בהתאם לדרישות של הארגון.

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

    Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...

    הפלט של תהליך העבודה לאישור הוא אישור או דחייה של ההשקה.

  4. המערכת לניהול תהליכי העבודה מחזירה את האישור או הדחייה ל-Cloud Deploy בצורה של הפקודה הבאה:

    הפקודה לאישור היא:

    gcloud deploy rollouts approve ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    הפקודה לדחיית ההשקה היא:

    gcloud deploy rollouts reject ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    where:

    • ROLLOUT

      הוא שם ההשקה שנדרש אישור לגביה.

    • PIPELINE_NAME

      הוא צינור העברת הנתונים שמנהל את הפריסה של האפליקציה.

    • RELEASE_NAME

      השם של הגרסה שאליה משויך הפריסה הזו.

    • REGION

      הוא האזור שבו צינור העברת הנתונים פועל.

הנה דוגמה:

gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1