כאשר ארגון עובד על פיתוח של מוצר כגון תוכנה, אתר, אפליקציה וכדומה, עובדים על המוצר הזה לעיתים מאות ואף אלפי מפתחים, כאשר כל אחד מהם אחראי לעיתים רק על חלק קטנטן מתוך קוד ענק שנראה אינסופי. אולם מה קורה אם נרצה לעשות פיתוחים של תכונות חדשות למוצר, ונרצה לעשות בדיקות והתאמות, לפני שנשחרר אותם לעולם החיצוני? לשם כך, נהוג לפתח קודם כל על מה שנקרא שרת פיתוח. מה זה בעצם שרת פיתוח, ולמה צריך אותו? על כך במאמרנו כאן.
מדוע צריך שרת פיתוח?
נניח לדוגמה שאנחנו מפתחים אתר אינטרנט ממש גדול ופעיל. האתר הזה פונה לשרת מסוים ברשת נכון?
אם אנחנו המפתחים של האתר, ואנחנו רוצים להוסיף תכונה חדשה לאלמנטים הקיימים באתר, אנחנו צריכים שרת לעבוד עליו שידמה לי את סביבת הפרודקשן של העולם האמיתי מצד אחד, אבל שלא יקבל טראפיק אמיתי של אנשים שגולשים באתר, למשל כדי שלא יראו מה אנחנו עושים לפני שסיימנו לעבוד עליו, וכדי לוודא שחוויית המשתמש שלהם תהיה מיטבית. משום כך, אנחנו צריכים סביבת פיתוח נפרדת, שהיא מבודדת מהעולם החיצון. בעצם ארגונים משתמשים בשרת פיתוח, על מנת לאפשר סביבת עבודה נפרדת ומבודדת לצורך כתיבה, בדיקה ושינוי של קוד. לעבודה עם שרת פיתוח יש שני יתרונות עיקריים:
1. שרת פיתוח מאפשר למפתחים לעבוד בצורה מבודדת ופרטית על קוד, ללא הפרעה לשרתי הייצור. כך ניתן לבצע שינויים בקוד מבלי להסתכן בשיבוש הפעולה התקינה של המוצר.
2. שרת פיתוח מאפשר לסביבת הפיתוח לדמות בצורה מדויקת יותר את סביבת הייצור (נקרא גם Production, או שרת אינטרנט "חי"), וכך ניתן לבצע בדיקות יסודיות, על מנת לאתר באגים ובעיות טרם העלאת הקוד לשרת הייצור.
איך עובד הנושא של הקמת שרת פיתוח?
אם כן הבנו שכדאי להריץ כל מיני פיתוחים בסביבה בטוחה ולא בסביבת פרודקשן, מטעמי בטיחות ויעילות. השאלה היא כיצד נקים שרת פיתוח שיתאים לצרכינו?
אפשר להקים שרת פיתוח על מחשב סטנדרטי אישי בעיקרון (בתכלס, שרת פיתוח הוא מחשב). בצורה הזו, אפשר לעבוד על הקוד, עד לרגע שבו תרצו להעלות את הפיתוח של לפרודקשן, כך שהפיתוח שלכם יהיה חלק פעיל מהאתר. אולם על אף היעילות בשרת כזה, היכולת של מחשב אחד לדמות את היכולות של השרתים עליהם באמת מאוחסן האתר היא מוגבלת (הזיכרון במחשב אחד הוא מוגבל, בניגוד לשרתי ענן עליהם מאוחסנים אתרים בסדרי גודל גדולים). מכאן אנו מבינים שצריך להקים שרת פיתוח שידמה ככל האפשר את הסביבה האמיתית בה פועל המוצר שלנו, ומתוך הזווית הזאת, מקימים שרתי פיתוח כיום.