אפשרויות פריסה ומודל משאבים

במאמר הזה מתוארות אפשרויות הפריסה השונות שזמינות ב-Cloud Run, ומוסבר על המשאבים הזמינים ב-Cloud Run.

אפשרויות פריסה

ב-Cloud Run יש כמה אפשרויות פריסה. אחרי הפריסה, כל האפשרויות פועלות כמו מקרים של קונטיינרים בסביבת ארגז חול בתשתית המנוהלת במלואה של Cloud Run, עם יכולת התאמה רחבה.

קובצי אימג' של קונטיינרים שאפשר לפרוס

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

פריסה מקוד המקור

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

כשפורסים מקוד מקור, Cloud Build הופך את הקוד לקובץ אימג' בקונטיינר שמאוחסן ב-Artifact Registry. אפשר לפרוס קוד מקור שכולל Dockerfile או שמשתמש באחת מסביבות זמן הריצה של השפות הנתמכות.

פונקציות

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

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

פריסת פונקציה יוצרת שירות ב-Cloud Run.

פריסה רציפה של קוד מקור מ-Git

בעזרת Cloud Run אפשר להגדיר פריסה רציפה מ-Git. בדומה לפריסות של קוד מקור, אתם יכולים לפרוס קוד מקור שכולל Dockerfile או שנכתב באחת מסביבות הריצה של השפות הנתמכות.

אפשר לבצע פריסה רציפה מ-Git עבור שירותים של Cloud Run. אפשר להגדיר אותם באופן ידני ב-Cloud Build עבור משימות של Cloud Run.

שירותי Cloud Run

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

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

בתרשים הבא מוצג מודל המשאבים של Cloud Run לשירותים:

שירותים וגרסאות ב-Cloud Run

הדיאגרמה מציגה פרויקט שמכיל שלושה שירותי Cloud Run: שירות א', שירות ב' ושירות ג'. לכל אחד מהשירותים יש כמה גרסאות: Google Cloud

  • שירות א' מקבל כמה בקשות, ולכן Cloud Run הפעיל כמה מופעים כדי לטפל בעומס. כל אחד מהמופעים האלה מפעיל רק קונטיינר אחד (הקונטיינר של האפליקציה).

  • לשירות ב' אין בקשות, לכן הוא במצב המתנה ו-Cloud Run לא מפעיל אף מכונה.

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

גרסאות של שירות Cloud Run

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

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

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

מופעים של שירות Cloud Run

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

משימות ב-Cloud Run

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

הפעלות של משימות ב-Cloud Run

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

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

משימות של משימות ב-Cloud Run

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

מאגרי עובדים ב-Cloud Run

מאגרי עובדים הם משאב ב-Cloud Run שנועד במיוחד לעומסי עבודה שאינם קשורים לבקשות, כמו תורים של משימות pull. שימו לב שלמאגרי עובדים אין את התכונות הבאות:

  • אין נקודת קצה או כתובת URL
  • אין דרישה שהקונטיינר שנפרס יאזין לבקשות ביציאה
  • ללא שינוי גודל אוטומטי

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

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

כשמאגר העובדים מחובר לרשת VPC, כל מופע במאגר העובדים מקבל כתובת IP ברשת ה-VPC ויכול לשלוח ולקבל תעבורה אל ומתוך ה-VPC הזה.