אתם יכולים לשלב את Cloud Deploy עם חלק מהמערכות האחרות שאתם מסתמכים עליהן להכנת תוכנה להפצה. בדף הזה מוסבר איך לשלב את Cloud Deploy עם:
- כלי בדיקה
- ניהול תהליכי עבודה
במאמר שילוב עם מערכת ה-CI מוסבר איך קוראים ל-Cloud Deploy מצינור ה-CI.
לפני שמתחילים
ההוראות בדף הזה מבוססות על ההנחה שכבר עמדתם בתנאים הבאים:
יש לכם לפחות צינור העברת נתונים אחד מוגדר ורשום ב-Cloud Deploy.
הגדרתם לפחות יעד אחד, וצינור העברת הנתונים שלכם מפנה ליעד הזה.
הגדרתם התראות Pub/Sub כדי לקבל התראות מהנושאים הבאים:
clouddeploy-operationsclouddeploy-approvals
שילוב עם בדיקות אוטומטיות
אתם יכולים להשתמש ב-Cloud Deploy עם Pub/Sub כדי לשלב בדיקות בצינור העברת הנתונים, וכך לקדם את הגרסה באופן אוטומטי, לצורך העברה רציפה.
אפשר גם להשתמש בהערות בהשקה כדי לספק קישור לתוצאות הבדיקה. מידע נוסף זמין במאמר שימוש בתוויות ובהערות עם Cloud Deploy.
שימוש ב-Pub/Sub לאוטומציה של קידום
האזנה להודעות Pub/Sub מהנושא
clouddeploy-operations.ההודעה מכילה את המאפיינים הבאים:
Action: SUCCEEDResourceType: RolloutResource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
כשמקבלים הודעה שהפריסה הצליחה, מריצים את הבדיקות באפליקציה שנפרסה.
אם הבדיקות מצליחות, מתבצעת קריאה ל-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.
כדי להגדיר תהליך עבודה לאישור חיצוני:
-
בהגדרה של היעד הזה, כוללים את
requireApproval: true. כדי להשתמש בהודעות, צריך להירשם לנושא Pub/Sub ולהגדיר את המערכת לניהול תהליכי העבודה.
clouddeploy-approvalsכשהמערכת לניהול תהליכי העבודה מקבלת הודעה מהנושא
clouddeploy-approvalsשכוללת את"Action": "Required", היא מפעילה תהליך עבודה לאישור, שמוגדר בהתאם לדרישות של הארגון.ההודעה כוללת גם הפניה לפריסה שצריך לאשר, בפורמט הבא:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...הפלט של תהליך העבודה לאישור הוא אישור או דחייה של ההשקה.
המערכת לניהול תהליכי העבודה מחזירה את האישור או הדחייה ל-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_NAMEwhere:
ROLLOUT
הוא שם ההשקה שנדרש אישור לגביה.
PIPELINE_NAME
הוא צינור העברת הנתונים שמנהל את הפריסה של האפליקציה.
RELEASE_NAME
השם של הגרסה שאליה משויך הפריסה הזו.
REGION
הוא האזור שבו צינור העברת הנתונים פועל.
הנה דוגמה:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1