בדף הזה מוסבר איך להתחיל להשתמש ב-Batch for Google Cloud.
סקירה כללית
Batch הוא שירות שמנוהל במלואו שמאפשר לתזמן, להוסיף לתור ולהפעיל עומסי עבודה של עיבוד באצווה במשאבי Google Cloud . לדוגמה, כדאי להשתמש ב-Batch למחשוב עתיר ביצועים (HPC), ללמידת מכונה (ML) ולעומסי עבודה של עיבוד נתונים. Batch מקצה משאבים ומנהל את הקיבולת בשמכם, וכך מאפשר לעומסי העבודה שלכם באצווה לפעול בהיקף גדול.
כשמשתמשים ב-Batch, לא צריך להגדיר ולנהל מתזמני משימות של צד שלישי, להקצות משאבים ולבטל את ההקצאה שלהם, או לבקש משאבים בכל אזור בנפרד. כדי להריץ משימה, מציינים פרמטרים למשאבים שנדרשים לעומס העבודה, ואז Batch מקבל משאבים ומכניס את המשימה לתור לביצוע. Batch מספק שילוב מקורי עם שירותים אחרים של Google Cloud כדי לעזור בתזמון, בהפעלה, באחסון ובניתוח של משימות באצווה, כך שתוכלו להתמקד בשליחת משימה ובצריכת התוצאות.
ה-Batch מורכב מהרכיבים הבאים:
משימה (Job): תוכנית מתוזמנת שמריצה קבוצה של משימות עד לסיום, ללא אינטראקציה של המשתמש, בדרך כלל עבור עומסי עבודה חישוביים. לדוגמה, עבודה יכולה להיות סקריפט מעטפת יחיד או חישוב מורכב עם כמה חלקים.
באופן ספציפי, משימה באצווה מייצגת מערך של משימה אחת או יותר, ואת הסביבה שבה המשימות האלה יפעלו. מגדירים את התוכנית של העבודה כרצף של פריט אחד או יותר שאפשר להפעיל. כל משימה מריצה את רצף הרכיבים הניתנים להרצה במשאבים של הג'וב. אפשר להגדיר את המשימות של עבודה כך שיפעלו במקביל או ברצף.
משימה: ביצוע אחד של רצף של קבצים להרצה של משימה. אם יש לעבודה כמה משימות, צריך לציין איך רוצים שכל הרצה תשתנה על ידי הפניה למשתנה הסביבה של אינדקס המשימה בקובצי ההפעלה של העבודה.
ניתן להפעלה: סקריפט או קונטיינר שניתן להפעלה, שמוגדר כחלק מעבודה.
משאבים: התשתית שנדרשת להרצת משימה. לפחות, צריך לציין את משאבי המחשוב הנדרשים לכל משימה: ליבות CPU, זיכרון ואחסון נוסף בדיסק האתחול (אם נדרש). אופציונלי, אפשר גם לציין אפשרויות אחרות של משאבים לעבודה. מערכת Batch יוצרת ומוחקת באופן אוטומטי את המשאבים שעומדים בדרישות שלכם במהלך זמן הריצה של העבודה.
כלומר, כל משימת Batch פועלת בקבוצה אזורית של מופעי מכונה מנוהלים (MIG), שהיא קבוצה של מופע אחד או יותר של מכונה וירטואלית (VM) תואמת של Compute Engine, שכל אחד מהם ממוקם באחד מהתחומים הכלולים. לכל מכונה וירטואלית יש חומרה ייעודית לליבות CPU ולזיכרון – שמשפיעים על הביצועים של העבודה – ודיסק אתחול – שבו מאוחסן קובץ אימג' של מערכת הפעלה (OS) והוראות להפעלת העבודה. אם מצוין, יכול להיות שעבודה תכלול גם משאבים נוספים או תהיה לה גישה למשאבים נוספים – לדוגמה, יחידות GPU או נפחי אחסון חיצוניים. מספר מכונות ה-VM שמוקצות לעבודה תלוי בדרישות החומרה ובאפשרויות התזמון של המשימות שאתם מציינים.
לסיכום, Batch מאפשר ליצור ולהריץ משימות שכל אחת מהן מקצה באופן אוטומטי את המשאבים שנדרשים לביצוע המשימות שלה, ומשתמש בהם.
מידע נוסף על התנהגות המשימות והאפשרויות שלהן זמין במאמר סקירה כללית על יצירה והפעלה של משימות.
תמחור
אין עלות נוספת לשימוש ב-Batch. החיוב מתבצע רק על העלות של משאבי הבסיס שנדרשים להרצת העבודות.
מידע נוסף על העלויות שקשורות ל-Batch ועל סינון דוחות החיוב ב-Cloud כדי לראות את העלויות של Batch זמין במאמר בנושא תמחור.
הגבלות
ההגבלות הבאות חלות על Batch:
- אסור לחרוג מהמכסות והמגבלות של Batch בפרויקט.
- בעבודות אפשר להשתמש רק בסוגי מכונות מסדרות המכונות הבאות:
- לשימוש כללי: C4, C4A, C4D, C3, C3D, E2, N4, N2D, N2, N1 ו-T2D
- מותאמות לצריכת מעבד גבוהה (compute-optimized): C2, C2D ו-H3
- מותאמת לצריכת זיכרון גבוהה (memory-optimized): M3, M2 ו-M1
- אופטימיזציה למעבד גרפי: A4, A3 Ultra, A3 Mega, A3 High, A2, G4 ו-G2
- אפשר לציין רק סוג מכונה אחד לכל משימה. הסוג יכול להיות מוגדר מראש או בהתאמה אישית.
- אי אפשר לציין יותר מקבוצת משימות אחת לכל עבודה. לכל המשרות יש רק קבוצת משימות אחת בשם
group0.
דרישות מוקדמות
כדי להתחיל להשתמש ב-Batch, צריך לעמוד בדרישות המוקדמות הבאות:
- אם לא השתמשתם ב-Batch בפרויקט שלכם, צריך להפעיל את Batch בפרויקט.
- מגדירים את Batch לכל משתמש חדש.
הפעלת Batch בפרויקט
כדי להתחיל להשתמש ב-Batch בפרויקט, מבצעים את הפעולות הבאות:
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
מוודאים ש-Batch מופעל בפרויקט:
מפעילים את ממשקי ה-API של Batch, Compute Engine ו-Cloud Logging.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמוודאים שלפרויקט יש חשבונות שירות עם ההרשאות הנדרשות ליצירה ולגישה למשאבים להרצת משימות Batch.
חשוב לדעת: כדי לאפשר למשתמשים ליצור ולהריץ משימות Batch בפרויקט, צריך לתת להם הרשאה להשתמש באחד מחשבונות השירות האלה. לכן, אל תבחרו חשבונות שירות שיש להם יותר הרשאות ממה שאתם רוצים להעניק למשתמשים האלה.
חשבון השירות שכל עבודה משתמשת בו כברירת מחדל הוא חשבון השירות של Compute Engine שמוגדר כברירת מחדל, אבל אפשר גם להגדיר חשבון שירות אחר לשימוש בעבודה.
אלא אם אתם מתכננים להשתמש רק בהגדרת ברירת המחדל של חשבונות השירות של העבודה, צריך להקצות את תפקידי ה-IAM הבאים לכל חשבונות השירות שהפרויקט משתמש בהם לעבודות Batch.
- Batch Agent Reporter (
roles/batch.agentReporter) בפרויקט - כדי לאפשר למשימות ליצור יומנים ב-Cloud Logging: Logs Writer (
roles/logging.logWriter) בפרויקט
יכול להיות שחשבון השירות שבו אתם משתמשים למשימה יזדקק גם לתפקידים נוספים, בהתאם לאפשרויות ההגדרה שבהן אתם רוצים להשתמש למשימות. כדי לדעת אם נדרשות הרשאות נוספות, אפשר לעיין במסמכי התיעוד של כל משימה. מידע נוסף על מתן תפקידים לחשבונות שירות זמין במאמרים הגבלת חשבונות שירות וניהול הגישה לחשבונות שירות.
- Batch Agent Reporter (
חשוב להכיר את סוכן שירות Batch של הפרויקט:
אחרי שיוצרים משימה באצווה, סוכן השירות של Batch נוצר באופן אוטומטי עבור הפרויקט עם השם הבא:
service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.comמחליפים את
PROJECT_NUMBERבמספר הפרויקט של הפרויקט.לסוכן השירות של Batch מוקצה אוטומטית תפקיד ה-IAM Google Batch Service Agent (
roles/batch.serviceAgent). ההגדרה הזו נדרשת כדי להשתמש ב-Batch בפרויקט.עם זאת, במקרים מסוימים – למשל, הפעלת משימה ברשת VPC משותפת – צריך להעניק הרשאות נוספות לסוכן השירות של Batch בפרויקט.