הגדרת תשתית ענן ב-Google Cloud Platform

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

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הגדרת GCP: היכן התשתית נשברת ראשונה

תשתית ענן נשברת לא בבחירת השירותים, אלא בתפעול. הגדרת GCP מתחילה בפרויקט, ברשת ובהרשאות גישה, אבל התקלות הראשונות מגיעות ממקום אחר: מישהו תיקן כלל חומת אש בקונסולה "לרגע", ולאחר חצי שנה אף אחד כבר לא יכול להסביר למה התעבורה בין השירותים עוברת דווקא כך. אין במה להחזיר תיקון כזה לאחור — אף אחד לא שמר את המצב ההתחלתי.

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

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

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

מה נותנת סביבת ענן מנוהלת: אפקטים מדידים

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

תדירות השחרורים עולה בלי עלייה בתקלות

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

זמן ההתאוששות נמדד בדקות

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

זמינות וצפיות במקום החלטות ידניות

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

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

מצבי פריסה של הענן: השוואת אפשרויות

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

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

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

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

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

שלבי הגדרת GCP: מהאודיט ועד למסירה

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

  1. אודיט תשתית. עורכים מלאי של מה שכבר עובד ב-GCP, אוספים מפת תלויות בין השירותים, קובעים זמינות יעד ופרופיל עומס. בפלט — רשימת צווארי בקבוק ותוכנית שינויים עם סדרי עדיפויות.
  2. סכימת רשת והרשאות. מחלקים את הסביבה לתת-רשתות, מתארים ניתוב, כללי חומת אש ונקודות יציאה החוצה. תפקידים וחשבונות שירות מופרדים לפי עקרון ההרשאה המינימלית — חשיפה של מפתח אחד לא פותחת את כל הפרויקט.
  3. הרכבת סביבות. התשתית מתוארת בקוד ונפרסת באופן זהה בסביבות פיתוח, קליטה ותפעול — סוג השגיאות "עבד מקומית" נעלם.
  4. צפיות. מדדים, לוגים והתראות עם ספים על מדדים מרכזיים, כדי שהתורן יראה את סיבת התקלה ולא רק את עצם קיומה.
  5. בדיקת עמידות בכשלים. מוציאים מכלל פעולה באופן מבוקר צמתים ואזורים שלמים, בודקים מעבר אוטומטי ומודדים זמן התאוששות בפועל של השירות.
  6. מסירת הפרויקט. מוסרים הרשאות, סכימות, קונפיגורציות ונהלי תגובה, ומכשירים את הצוות על ניתוח תקלות אופייניות. מכאן התשתית חיה בלעדינו.

מה נשאר אצלכם: קונפיגורציות, סכימות, נהלים

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

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

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

העברת העומס לענן: מדדים לפני ואחרי

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

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

מה השתנה במספרים

הפריסה הצטמצמה משעות ל-10-15 דקות: הבנייה והבדיקות רצות אוטומטית על כל שינוי בקוד. ההתאוששות לאחר תקלה — משעות ספורות לדקות, כי הצומת עולה מחדש מהתיאור והמצב נלקח מהרפליקה של מסד הנתונים.

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

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

במה נבדלת סביבה מנוהלת משרתים בבעלותכם?

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

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

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

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

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

ספקות טכניים: אינטגרציות, הרשאות, תמיכה

ספקות טכניים בעת הגדרת GCP עולים בשלושה גבולות: תאימות לשירותים שכבר עובדים, הרשאות המהנדסים שלנו בתוך הסביבה שלכם, ותמיכה לאחר המסירה. אנחנו מבררים אותם לפני ההתחלה — כשהעלות של שינוי הסכימה היא הנמוכה ביותר.

יש לנו פלטפורמת ענן אחרת ושרתים משלנו — להעביר הכול?

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

אילו הרשאות יקבלו המהנדסים שלכם?

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

מה עם התמיכה לאחר המסירה?

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

אילו דרישות יש לנתונים?

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

נדון במשימה: מה להכין לשיחה

דיוק האומדן של היקף תשתית ענן נשען על נתוני הפתיחה: ככל שהתמונה ההתחלתית קונקרטית יותר, כך יש פחות הנחות בתוכנית העבודה וקטן הסיכון שהמועדים יזוזו בשלב חיבור הרשתות וההרשאות. להלן מה שכדאי להכין לשיחה; אם חלק מהסעיפים עדיין לא מוגדרים, גם זה נתון פתיחה — נבחן את האפשרויות יחד.

  • הסכימה הנוכחית. מה כבר עובד בענן, מה נשאר על התשתית שלכם ואיך החלקים האלה מחוברים — רשתות, חילופי נתונים, אימות משותף.
  • דרישות לסביבות. כמה סביבות נדרשות (פיתוח, בדיקות, ייצור), האם נדרש בידוד ביניהן והפרדת הרשאות לפי תפקידים.
  • פרופיל העומס. בקשות שיא, נפח ואופי הנתונים, דרישות זמינות וזמן התאוששות מותר לאחר תקלה.
  • מגבלות. היכן הנתונים חייבים להישמר פיזית, אילו דרישות להגנתם ובאילו חלונות ניתן לבצע עבודות בלי לעצור את השירותים.
  • הרשאות. מי הבעלים של חשבון הענן ושל פרופיל התשלום, מי מעניק הרשאות לקרוא את הקונפיגורציה הנוכחית וליצור משאבים חדשים.
  • מה כבר אוטומטי. תיאור התשתית כקוד, קווי בנייה ופריסה, וגם הפעולות הידניות שיש להסיר ראשונות.
  • תוצאה ומועדים. לאיזה תאריך נדרשת סביבה עובדת, מה נחשב מוכנות ואיך תבדקו את התוצאה.

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