המסמך הזה יכול לעזור לכם לתכנן ולעצב את שלב הפריסה של המעבר אל Google Cloud. אחרי שמעריכים את הסביבה הנוכחית, מתכננים את ההעברה אל Google Cloudובונים את הבסיס שלGoogle Cloud , אפשר לפרוס את עומסי העבודה.
המסמך הזה הוא חלק מסדרה של כמה מאמרים בנושא מעבר אלGoogle Cloud:
- העברה אל Google Cloud: איך מתחילים
- מעבר אל Google Cloud: הערכה וגילוי של עומסי העבודה
- מעבר אל Google Cloud: תכנון ובניית הבסיס
- מעבר אל Google Cloud: העברת מערכי נתונים גדולים
- העברה אל Google Cloud: פריסת עומסי העבודה (המסמך הזה)
- העברה אל Google Cloud: מעבר מפריסות ידניות לפריסות אוטומטיות בקונטיינרים
- מעבר אל Google Cloud: אופטימיזציה של הסביבה
- מעבר ל- Google Cloud: שיטות מומלצות לאימות של תוכנית העברה
- מעבר אל Google Cloud: צמצום עלויות
התרשים הבא מדגים את תהליך ההעברה.
שלב הפריסה הוא השלב השלישי בתהליך המעבר אל Google Cloud שבו מתכננים את תהליך הפריסה של עומסי העבודה.
המסמך הזה שימושי אם אתם מתכננים מיגרציה מסביבה מקומית, מסביבת אירוח פרטית, מספק שירותי ענן אחר אלGoogle Cloud, או אם אתם בודקים את האפשרות לבצע מיגרציה ורוצים לדעת איך היא תיראה.
במסמך הזה נסקור את הסוגים השונים של תהליכי פריסה, לפי סדר הגמישות, האוטומציה והמורכבות, וגם נציג קריטריונים לבחירת הגישה המתאימה לכם:
- פריסה ידנית.
- פריסה באמצעות כלים לניהול הגדרות (CM).
- פריסה באמצעות כלים לניהול קונטיינרים.
- פריסה אוטומטית.
לפני שפורסים את עומסי העבודה, צריך לתכנן ולעצב את שלב הפריסה. קודם כול, צריך להעריך את סוגי תהליכי הפריסה השונים שאתם מיישמים עבור עומסי העבודה. כשמעריכים את סוגי תהליכי הפריסה, אפשר להחליט להתחיל בתהליך ממוקד ולעבור לתהליך מורכב יותר בעתיד. הגישה הזו יכולה להניב תוצאות מהירות יותר, אבל היא עלולה גם ליצור חיכוך כשעוברים לתהליך מתקדם יותר, כי צריך לספוג את החוב הטכני שנצבר במהלך השימוש בתהליך הממוקד. לדוגמה, אם אתם עוברים מפריסות ידניות מלאות לפתרון אוטומטי, יכול להיות שתצטרכו לנהל שדרוגים של צינור הפריסה והאפליקציות.
אפשר להטמיע סוגים שונים של תהליכי פריסה בהתאם לצרכים של עומסי העבודה, אבל הגישה הזו עלולה להגדיל את המורכבות של השלב הזה. אם מטמיעים סוגים שונים של תהליכי פריסה, אפשר ליהנות מהגמישות הנוספת, אבל יכול להיות שיהיה צורך במומחיות, בכלים ובמשאבים שמותאמים לכל תהליך, מה שאומר שיידרש מכם יותר מאמץ.
פריסה ידנית
פריסה ידנית לחלוטין נתמכת על ידי תהליך הקצאה, הגדרה ופריסה שלא מתבצע באופן אוטומטי. יכול להיות שיש מפרטים ורשימות משימות לכל שלב בתהליך, אבל אין בדיקה אוטומטית או אכיפה של המפרטים האלה. תהליך ידני עלול להוביל לטעויות אנוש, הוא לא ניתן לשחזור והביצועים שלו מוגבלים בגלל הגורם האנושי.
תהליכי פריסה ידניים לחלוטין יכולים להיות שימושיים, למשל כשצריך להטמיע במהירות ניסוי בסביבת ארגז חול. הגדרת תהליך מובנה ואוטומטי לניסוי שנמשך דקות עלולה להאט את קצב ההתקדמות שלא לצורך, במיוחד בשלבים הראשונים של המעבר, כשעדיין אין לכם את המומחיות הנדרשת בכלים ובשיטות שמאפשרים לכם לבנות תהליך אוטומטי.
המגבלה הזו לא חלה על Google Cloud, אבל יכול להיות שפריסות ידניות מלאות יהיו האפשרות היחידה שלכם כשמדובר בסביבות bare metal שחסרים בהן ממשקי ה-API הנדרשים לניהול. במקרה כזה, אי אפשר להטמיע תהליך אוטומטי כי אין את הממשקים הדרושים. אם יש לכם תשתית וירטואלית מדור קודם שלא תומכת באוטומציה, יכול להיות שתצטרכו ליישם תהליך ידני לחלוטין
מומלץ להימנע מפריסה ידנית מלאה, אלא אם אין לכם אפשרות אחרת.
אפשר להטמיע תהליך הקצאה, הגדרה ופריסה ידני לחלוטין באמצעות כלים כמו מסוףGoogle Cloud , Cloud Shell, Cloud APIs ו-Google Cloud CLI.
פריסה באמצעות כלי ניהול הגדרות
כלים לניהול תצורה מאפשרים להגדיר סביבה באופן שניתן לשחזור ומבוקר. הכלים האלה כוללים קבוצה של תוספים ומודולים שכבר מיישמים פעולות נפוצות של הגדרה. הכלים האלה מאפשרים לכם להתמקד במצב הסופי שאתם רוצים להשיג בסביבה שלכם, במקום ליישם את הלוגיקה כדי להגיע למצב הסופי הזה. אם קבוצת הפעולות הכלולה לא מספיקה, כלים לניהול תצורות כוללים לרוב מערכת הרחבות שבה אפשר להשתמש כדי לפתח מודולים משלכם. אפשר להשתמש בתוספים האלה, אבל מומלץ להשתמש במודולים ובתוספים המוגדרים מראש כשזה רלוונטי, כדי להימנע מנטל פיתוח ותחזוקה נוסף.
משתמשים בכלים לניהול תצורה כשצריך להגדיר סביבות. אפשר גם להשתמש בהם כדי להקצות את התשתית וליישם תהליך פריסה לעומסי העבודה. השימוש בכלים לניהול תצורה (CM) הוא תהליך טוב יותר בהשוואה לתהליך ידני לחלוטין של הקצאת הרשאות, הגדרה ופריסה, כי הוא ניתן לחזרה, מבוקר וניתן לביקורת. עם זאת, יש כמה חסרונות, כי כלי CM לא מיועדים למשימות הקצאה או פריסה. בדרך כלל אין להם תכונות מובנות להטמעה של לוגיקה מורכבת להקצאת הרשאות, כמו זיהוי וניהול של הבדלים בין המצב של התשתית בעולם האמיתי לבין המצב הרצוי, או תהליכי פריסה עשירים, כמו פריסות ללא זמן השבתה או פריסות blue-green. אפשר להטמיע את התכונות החסרות באמצעות נקודות ההרחבה שצוינו קודם. התוספים האלה יכולים להוסיף מאמץ לתהליך הפריסה ולהגדיל את המורכבות הכוללת שלו, כי צריך מומחיות כדי לתכנן, לפתח ולתחזק פתרון פריסה בהתאמה אישית.
אפשר להטמיע את התהליך הזה של הקצאת הרשאות, הגדרה ופריסה באמצעות כלים כמו Ansible, Chef, Puppet ו-SaltStack.
תהליך פריסה בסיסי שמשתמש בכלי CM יכול להכין סביבות זמן ריצה ולפרוס עומסי עבודה בסביבות האלה. לדוגמה, התהליך יכול ליצור מכונה של Compute Engine, להתקין את התוכנה הנדרשת ולפרוס את עומסי העבודה. הגדרת סביבת זמן ריצה שתומכת בעומסי העבודה שלכם אורכת זמן. כדי לקצר את משך הזמן שנדרש להגדרת סביבת זמן ריצה, אפשר להטמיע תהליך שמפעיל כלי CM כדי ליצור תבנית, כמו קובץ אימג' של מערכת הפעלה (OS). אתם יכולים להשתמש בתבנית הזו כדי ליצור מופעים של סביבת זמן הריצה שמוכנים לעומסי העבודה שלכם. לדוגמה, אתם יכולים להשתמש ב-Cloud Build כדי ליצור תמונות של Compute Engine. התמונות האלה נקראות לעיתים קרובות תמונות זהב או תמונות כסף. שתיהן תבניות שלא ניתן לשנות, כמו תמונות של מערכת הפעלה, שיוצרים עבור סביבות זמן הריצה. ההבדל בין השניים תלוי בכמות העבודה שתהליך הפריסה צריך לבצע לפני שהתמונות יכולות להריץ עומס עבודה:
- תמונת זהב: תבנית שיוצרים עבור סביבות זמן הריצה או מכינים מתבנית בסיס. תמונות מוזהבות כוללות את כל הנתונים ופרטי ההגדרה שסביבות זמן הריצה צריכות כדי לבצע את המשימות שהוקצו להן. אתם יכולים להכין כמה סוגים של תמונות מוזהבות כדי לבצע משימות שונות. מילים נרדפות לסוגי תמונות מוזהבות כוללות טעמים, וריאציות וארכיטיפים.
- קובץ אימג' כסוף: תבנית שיוצרים עבור סביבות זמן הריצה על ידי ביצוע שינויים מינימליים בקובץ אימג' מוזהב או בתבנית בסיסית. סביבות זמן ריצה שמריצות תמונת כסף משלימות את ההקצאה וההגדרה שלהן באתחול הראשון, בהתאם לצרכים של תרחישי השימוש שסביבות זמן הריצה האלה צריכות לתמוך בהם.
פריסה באמצעות כלים לניהול קונטיינרים
אם כבר השקעתם או שאתם מתכננים להשקיע במיכלים של עומסי העבודה שלכם, אתם יכולים להשתמש בכלי לניהול מיכלים כדי לפרוס את עומסי העבודה.
כלי לארגון קונטיינרים דואג לניהול התשתית שעליה מבוססת הסביבה שלכם, ותומך במגוון רחב של פעולות פריסה ובלוקים לבנייה שמאפשרים להטמיע את לוגיקת הפריסה שלכם, שאפשר להשתמש בהם כשפתרונות מובנים לא מספיקים. השימוש בכלים האלה מאפשר לכם להתמקד בכתיבת לוגיקת הפריסה בפועל באמצעות המנגנונים שסופקו, במקום להטמיע אותם.
בנוסף, כלי תזמור קונטיינרים מספקים הפשטות שבהן אפשר להשתמש כדי להכליל את תהליכי הפריסה לסביבות בסיסיות שונות, כך שלא צריך לתכנן וליישם תהליכים מרובים לכל אחת מהסביבות. לדוגמה, הכלים האלה בדרך כלל כוללים את הלוגיקה להרחבה ולשדרוג של הפריסות, כך שלא צריך ליישם אותן בעצמכם. אתם יכולים אפילו להתחיל להשתמש בכלים האלה כדי להטמיע את תהליכי הפריסה בסביבה הנוכחית שלכם, ואז להעביר אותם לסביבת היעד, כי ההטמעה זהה ברובה, וזה נעשה בכוונה. אם תתחילו להשתמש בכלים האלה בשלב מוקדם, תוכלו לצבור ניסיון בניהול סביבות מבוססות קונטיינרים, והניסיון הזה יעזור לכם לעבור אלGoogle Cloud.
אתם משתמשים בכלי לניהול קונטיינרים אם עומסי העבודה שלכם כבר נמצאים בקונטיינרים או אם אתם יכולים להעביר אותם לקונטיינרים בעתיד, ואתם מתכננים להשקיע במאמץ הזה. במקרה האחרון, כדאי להריץ ניתוח יסודי של כל עומס עבודה כדי לקבוע את הדברים הבאים:
- מוודאים שאפשר להפוך את עומס העבודה לקונטיינר.
- הערכת היתרונות הפוטנציאליים שאפשר להפיק מיצירת קונטיינרים לעומס העבודה.
אם החסרונות הפוטנציאליים עולים על היתרונות של שימוש בקונטיינרים, כדאי להשתמש בכלי לניהול קונטיינרים רק אם הצוותים שלכם כבר מחויבים לשימוש בהם ואם אתם לא רוצים לנהל סביבות הטרוגניות.
לדוגמה, פתרונות של מחסני נתונים בדרך כלל לא נפרסים באמצעות כלים לניהול קונטיינרים, כי הם לא מיועדים להפעלה בקונטיינרים זמניים.
אפשר להטמיע את תהליך הפריסה הזה באמצעות Google Kubernetes Engine (GKE) ב- Google Cloud. אם אתם רוצים להשתמש בסביבה ללא שרת, אתם יכולים להשתמש בכלים כמו Cloud Run.
פריסה אוטומטית
לא משנה אילו כלים אתם משתמשים בסביבה שלכם לאספקת משאבים, להגדרה, לפריסה ולתיאום, אתם יכולים להטמיע תהליכי פריסה אוטומטיים לחלוטין כדי לצמצם את הסיכון לטעויות אנוש, לאחד, לייעל ולתקנן את התהליכים בארגון. במקרה הצורך, אפשר גם להוסיף שלבים של אישור ידני לתהליך הפריסה, אבל כל שלב הוא אוטומטי.
השלבים בצינור עיבוד נתונים לפריסה טיפוסי מקצה לקצה הם:
- בדיקת הקוד.
- אינטגרציה רציפה (CI).
- יצירת פריטי מידע שנוצרו בתהליך פיתוח (Artifact).
- פריסה רציפה (CD), עם אישורים ידניים בסופו של דבר.
אתם יכולים להפוך כל אחד מהשלבים האלה לאוטומטי בנפרד, כך שתוכלו להעביר בהדרגה את תהליכי הפריסה הנוכחיים שלכם לפתרון אוטומטי, או להטמיע תהליך חדש ישירות בסביבת היעד. כדי שהתהליך הזה יהיה יעיל, צריך להשתמש בהליכי בדיקה ואימות בכל שלב של צינור הנתונים, ולא רק בשלב של בדיקת הקוד או בשלב של CI.
לכל שינוי בבסיס הקוד, צריך לבצע בדיקה יסודית כדי להעריך את איכות השינוי. לרוב הכלים לניהול קוד מקור יש תמיכה ברמה העליונה בבדיקות קוד. בנוסף, הם תומכים לעיתים קרובות ביצירה אוטומטית של ביקורות ובאתחול שלהן על ידי בדיקה של אזור קוד המקור ששונה, בתנאי שהגדרתם את הצוותים שאחראים לכל אזור בבסיס הקוד. בכל בדיקה אפשר גם להריץ בדיקות אוטומטיות של קוד המקור, כמו linters וstatic analyzers, כדי לאכוף עקביות וסטנדרטים של איכות בכל בסיס הקוד.
אחרי שבודקים את השינוי ומשלבים אותו בבסיס הקוד, כלי ה-CI יכול להריץ בדיקות באופן אוטומטי, להעריך את התוצאות ואז לשלוח לכם הודעה על בעיות בגרסה הנוכחית. כדי להוסיף ערך לשלב הזה, מומלץ לפעול לפי תהליך של פיתוח מונחה בדיקות כדי להבטיח כיסוי מלא של הבדיקות של התכונות של כל עומס עבודה.
לכל בנייה מוצלחת, אפשר להפוך את יצירת ארטיפקטים של פריסה לאוטומטית. ארטיפקטים כאלה מייצגים גרסה של עומסי העבודה שמוכנה לפריסה, עם השינויים האחרונים. במסגרת שלב יצירת הארטיפקט, אפשר גם לבצע אימות אוטומטי של הארטיפקט עצמו. לדוגמה, אתם מריצים סריקה של נקודות חולשה מול בעיות ידועות ומאשרים את הפריט לפריסה רק אם לא נמצאו נקודות חולשה. לדוגמה, אתם יכולים להשתמש ב-Artifact Registry כדי לסרוק את הארטיפקטים שלכם ולחפש נקודות חולשה מוכרות.
לבסוף, אפשר להפוך את הפריסה של כל ארטיפקט שאושר בסביבת היעד לאוטומטית. אם יש לכם כמה סביבות זמן ריצה, אתם יכולים גם להטמיע לוגיקת פריסה ייחודית לכל אחת מהן, ואפילו להוסיף שלבי אישור ידניים, אם צריך. לדוגמה, אתם יכולים לפרוס באופן אוטומטי גרסאות חדשות של עומסי העבודה בסביבות הפיתוח, בבקרת האיכות ובטרום-הייצור, ועדיין לדרוש בדיקה ידנית ואישור מצוות בקרת הייצור כדי לפרוס בסביבת הייצור.
תהליך אוטומטי מקצה לקצה הוא אחת האפשרויות הטובות ביותר אם אתם צריכים תהליך אוטומטי, מובנה, יעיל וניתן לביקורת, אבל הטמעה של תהליך כזה היא לא משימה פשוטה. לפני שבוחרים בתהליך כזה, חשוב להבין מהם היתרונות הצפויים, מהן העלויות הכרוכות בכך, והאם רמת הידע והמומחיות הנוכחית של הצוות מספיקה כדי ליישם תהליך פריסה אוטומטי לחלוטין.
אפשר להטמיע תהליכי פריסה אוטומטיים לחלוטין באמצעות Cloud Deploy.
המאמרים הבאים
- כאן אפשר לקבל מידע נוסף על העברת תהליכי הפריסה.
- איפה אפשר לקבל עזרה בתהליך ההעברה?
- מומלץ להשתתף בקורס ההדרכה של Google Skills בנושא מעבר אל Google Cloud.
- לדוגמאות נוספות של ארכיטקטורות, תרשימים ושיטות מומלצות, עיינו במאמר Cloud Architecture Center.
שותפים ביצירת התוכן
מחבר: Marco Ferrari | Cloud Solutions Architect