לבצע ג׳ובים שונים בתזמונים שונים
1. גוגל קלאוד scheduler מבצע קריאת http ל-api מסוים שמתפקד כ-publisher עבור Google pub/sub
2. Publisher שולח ג׳וב ל-Topic מסוים בשירות Google pub/sub.
3. קלאסטר של Kubernetes שמנוהל על ידי גוגל קלאוד, מתפקד כאוסף של subscribers עבור ה pub/sub, וכל subscriber שפנוי שולף ג׳וב ומבצע אותו.
מכיוון שמטרת הארכיטקטורה זה תזמון ג׳ובים, לכן די הגיוני להשתמש בשירות שיודע לתזמן והוא עושה את זה על ידי syntax דמוי Cron.
האלטרנטיבה בגוגל לתזמון היא שימוש בשירות appengine, יש שם אופציה לבצע תזמונים.
אך יש לזה מספר חסרונות:
א. כדי לבצע שינויים בתזמונים, צריך לעלות כל פעם קובץ cron.yaml (אין אופציה באתר).
ב. החיסרון הגדול - כל הקוד שמריץ ג׳ובים, צריך להיות פרוס באותו appengine project. זה הופך את הארכיטקטורה להרבה פחות גמישה, ולכן יהיה קשה יותר לתמוך ב-scalability יותר גדול.
נחזור ל-scheduler שלנו, ככה נראה עמוד השליטה שלו:
ככה נראה עמוד הגדרת ג׳וב חדש:
יש כמה אופציות לבצע את הג׳וב, אני השתמשתי בקריאת http.
עוד אופציה היא לשלוח ג'וב ישירות ל-pub/sub. השאלה הגדולה היא למה לא עשיתי את זה, אלא השתמשתי ב-publisher משלי?
אצלי, כל ג׳וב שמוגדר ב-scheduler זה למעשה אוסף של ג׳ובים השייכים לאותה קטגוריה, מכיוון שרציתי להקל על שליטת הג׳ובים, אז ריכזתי אותם ביחד ונתתי ל-publisher שלי לשלוח ג׳ובים ל-pub/sub.
אפליקציית node.js express שארוזה כ-Docker Container ופרוסה ב-Google Compute Engine.
יודעת לקבל קריאות ושולחת ג׳ובים רלוונטיים ל-pub/sub topic.
מבט אל תוך ה-publisher:
שירות שמתפקד כ-queue של ג׳ובים, ניתן להגדיר טופיקים, לשלוח לשם ג׳ובים ולהירשם בשביל לקבל ג׳ובים משם. ג׳וב ייצא מהתור לאחר ש-subscriber ישלח על כך acknowledge.
מבט על המצב בכל topic אפשר לבצע על ידי אתר מוניטורינג של google cloud - stackdriver.
מבט על מצב התורים בעזרת stackdriver:
אם התור לא חוזר לנקודת האפס כמו בתמונה למעלה, אז אתם עושים משהו לא נכון, חלק מהבעיות שעלולות לגרום לכך:
● לא מספיק subscribers
● אין טיפול בכישלונות הרצה
● Subscribers לא מספיק טובים מבחינת - CPU, RAM וכו׳.
שירות של גוגל שיודע לפרוס קלסתרים של Kubernetes ויודע להריץ docker container image.
השירות מאוד נוח, לפי ההגדרות שלכם הוא מוסיף ומוריד nodes and pods.
אני משתמש בשירות זה להרצת subscribers שמבצעים את הג׳ובים.
מבט אל תוך ה-subscriber:
הארכיטקטורה הזאת מאפשרת להריץ ולשלוט בג׳ובים בצורה נוחה ויעילה, זה מאפשר כל scale אפשרי שאי פעם תדרשו אליו, מקווה שעזרתי.
לבצע ג׳ובים שונים בתזמונים שונים
1. גוגל קלאוד scheduler מבצע קריאת http ל-api מסוים שמתפקד כ-publisher עבור Google pub/sub
2. Publisher שולח ג׳וב ל-Topic מסוים בשירות Google pub/sub.
3. קלאסטר של Kubernetes שמנוהל על ידי גוגל קלאוד, מתפקד כאוסף של subscribers עבור ה pub/sub, וכל subscriber שפנוי שולף ג׳וב ומבצע אותו.
מכיוון שמטרת הארכיטקטורה זה תזמון ג׳ובים, לכן די הגיוני להשתמש בשירות שיודע לתזמן והוא עושה את זה על ידי syntax דמוי Cron.
האלטרנטיבה בגוגל לתזמון היא שימוש בשירות appengine, יש שם אופציה לבצע תזמונים.
אך יש לזה מספר חסרונות:
א. כדי לבצע שינויים בתזמונים, צריך לעלות כל פעם קובץ cron.yaml (אין אופציה באתר).
ב. החיסרון הגדול - כל הקוד שמריץ ג׳ובים, צריך להיות פרוס באותו appengine project. זה הופך את הארכיטקטורה להרבה פחות גמישה, ולכן יהיה קשה יותר לתמוך ב-scalability יותר גדול.
נחזור ל-scheduler שלנו, ככה נראה עמוד השליטה שלו:
ככה נראה עמוד הגדרת ג׳וב חדש:
יש כמה אופציות לבצע את הג׳וב, אני השתמשתי בקריאת http.
עוד אופציה היא לשלוח ג'וב ישירות ל-pub/sub. השאלה הגדולה היא למה לא עשיתי את זה, אלא השתמשתי ב-publisher משלי?
אצלי, כל ג׳וב שמוגדר ב-scheduler זה למעשה אוסף של ג׳ובים השייכים לאותה קטגוריה, מכיוון שרציתי להקל על שליטת הג׳ובים, אז ריכזתי אותם ביחד ונתתי ל-publisher שלי לשלוח ג׳ובים ל-pub/sub.
אפליקציית node.js express שארוזה כ-Docker Container ופרוסה ב-Google Compute Engine.
יודעת לקבל קריאות ושולחת ג׳ובים רלוונטיים ל-pub/sub topic.
מבט אל תוך ה-publisher:
שירות שמתפקד כ-queue של ג׳ובים, ניתן להגדיר טופיקים, לשלוח לשם ג׳ובים ולהירשם בשביל לקבל ג׳ובים משם. ג׳וב ייצא מהתור לאחר ש-subscriber ישלח על כך acknowledge.
מבט על המצב בכל topic אפשר לבצע על ידי אתר מוניטורינג של google cloud - stackdriver.
מבט על מצב התורים בעזרת stackdriver:
אם התור לא חוזר לנקודת האפס כמו בתמונה למעלה, אז אתם עושים משהו לא נכון, חלק מהבעיות שעלולות לגרום לכך:
● לא מספיק subscribers
● אין טיפול בכישלונות הרצה
● Subscribers לא מספיק טובים מבחינת - CPU, RAM וכו׳.
שירות של גוגל שיודע לפרוס קלסתרים של Kubernetes ויודע להריץ docker container image.
השירות מאוד נוח, לפי ההגדרות שלכם הוא מוסיף ומוריד nodes and pods.
אני משתמש בשירות זה להרצת subscribers שמבצעים את הג׳ובים.
מבט אל תוך ה-subscriber:
הארכיטקטורה הזאת מאפשרת להריץ ולשלוט בג׳ובים בצורה נוחה ויעילה, זה מאפשר כל scale אפשרי שאי פעם תדרשו אליו, מקווה שעזרתי.
הודעתך לא התקבלה - נסה שוב מאוחר יותר
Oops! Something went wrong while submitting the form