שרת פיתוח

שרת פיתוח

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

 

מה זה שרת פיתוח?

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

 

מה זה צד שרת?

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

 

למה צריך שרת פיתוח?

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

 

האם כל עסק צריך שרת פיתוח?

לא תמיד יש צורך בשרת פיתוח ובמקרים מסוימים אפשר להסתדר גם בלעדיו. נאמר לשם הדוגמה שמפתחים אתר אינטרנט פשוט לעסק ומדובר בעסק קטן ובאתר עם דרישות בסיסיות מאוד. יש פלטפורמות כגון Wix הידועה, אשר מאפשרות לעשות זאת היישר במסגרתן. כך אתר Wix הופך להיות סביבת הפיתוח, מאחר שהוא מאפשר לפתח במהירות בגישת WYSIWYG (או What You See Is What You Get). לאתר מורכב יותר עשויים לפתח באמצעים כגון וורדפרס ושרת פיתוח ייעודי, הכול תלוי בדרישות המיוחדות של כל פרויקט פיתוח בפני עצמו. בכל מקרה, זה לא אומר שההחלטה היא רק אם לרכוש שרת כזה או שלא, יש אפשרות חשובה נוספת – לשכור שרת פיתוח, אם וכאשר זקוקים לו ולכל משך זמן שהוא דרוש. זאת באמצעות שירות ענן שנותן לכך מענה. כמובן, שרת הוא כעקרון מכונה המסוגלת מעצם טבעה לשמש למטרות רבות. כך ששרת קיים שבו העסק עושה שימוש למטרה מסוימת, עשוי לשמש בהמשך כשרת פיתוח. כך גם במקרה שבו משתמשים בשרתים בענן. כאמור – הכול בהתאם לנסיבות המיוחדות של כל עסק. השאלה אם דרוש שרת פיתוח או לא, משתלבת גם בהיבט הרחב יותר של עלויות פרויקט הפיתוח וכל זה משליך על עצם ההחלטה על פיתוח – האם הוא יהיה פנימי, חיצוני או שבכלל יימצא פתרון אחר? כלומר, יש מצבים שבהם יעדיפו להשאיר את הפיתוח למומחים חיצוניים או להשתמש בתוכנה קיימת, גם אם היא לא מתאימה באופן מושלם לדרישותיכם.

 

5        פרמטרים לבחירת שרת פיתוח

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

 

  1. הסביבה הטכנולוגית המתאימה – יש סוגים שונים של טכנולוגיות אשר עליהן עשוי להתבסס שרת. VPS (virtual private server) למשל הוא סוג שרתים בולט וזמין.
  2. משאבים זמינים – השרת צריך להיות בעל כל המשאבים שדרושים למימוש מטרותיו – כוח עיבוד, זיכרון, אחסון, יכולות רישות. אם אתם מקימים שרת פיזי לפיתוח, יש צורך להשיג שרת כזה הכולל את כל המשאבים הדרושים. זה יכול להיות שרת שרוכשים או אולי שרת קיים שמפנים למטרה זו. אולי אפילו במסגרת תהליך קונסולידציית שרתים (מאחדים שימוש בכמה שרתים קיימים ובכך מפנים שרת או שניים לשימושים חדשים). אם בוחרים בשרת בענן, כדאי לשים לב לאפשרויות לגבי הגדלת משאביו, כולל אפשרויות מתקדמות כמו Scaling אוטומטי לצורך הדוגמה.
  3. מה כלול בשירות? – אם מדובר בשרת ששוכרים מגורם חיצוני, השירות עשוי לכלול אפשרויות כאלה ואחרות. למשל, אילו מערכות הפעלה מוצעות בשבילו? האם זמין API? חשוב כמובן לברר נקודות אלה ונוספות ולהבטיח שהן מתאימות לכם.
  4. אמינות – כאמור, פיתוח בשרת נפרד מגן על העסק מבאגים ונזקים אפשריים של תוכנה בפיתוח שעדיין אינה בשלה מספיק. אך במקביל, חיוני להבטיח גם את התקינות של שרת הפיתוח עצמו. אם זה שרת פנימי בעסק, סביר שתרצו לרכוש את כל חלקיו מספקים אמינים ומיצרנים איכותיים. אם זה שרת בענן, גם אז חיוני לבדוק היבטים אלה.
  5. עלויות – היבט העלויות בפרויקט פיתוח עשוי להיות חשוב מאוד. מפתחים הם דבר יקר, שעות העבודה רבות והציוד הנדרש כמו שרתים עשוי להיות יקר גם הוא. אם רוכשים שרת, יש מעבר לעלויות הרכישה גם עליות שוטפות של תחזוקתו. אם זה שרת שאתם שוכרים בענן, אם התשלום הוא לפי שעה או לפי חודש, וכמובן כמה השירות עולה.

 

לסיכום

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