במאמר הקודם סיפקנו רקע כללי, הצגנו את הסיבות לשימוש בגישה זו ודיברנו על ההבדלים בין תהליכי IT מסורתיים לבין גישת DevOps. בחלק זה נסביר מתי כדאי לאמץ גישת DevOps (ומתי לא), נדבר על מחזור חיי פיתוח תוכנה, נציג עקרונות מרכזיים בגישה ונדון על תחומי האחריות של איש ה- DevOps.
יש להשתמש בגישת DevOps עבור יישומים מבוזרים גדולים כגון אתרי eCommerce או יישומים המתארחים על פלטפורמת הענן.
באופן כללי, המתודולוגיה לא אמורה לשמש עבור יישומים שהם mission-critical כגון חברות אנרגיה ועוד מקומות המחזיקים מידע רגיש. יישומים כאלה צריכים בקרה קפדנית על סביבת הייצור, מדיניות ניהול השינוי (change management), מדיניות בקרת גישה למרכזי נתונים ועוד. למרות זאת, כיום ישנם הרבה מאוד ארגונים, בינם אפילו בנקים בישראל, שהחלו לאמץ תהליכי DevOps עבור סביבות On premise.
ב- DevOps קיימת אינטגרציה עמוקה בין הפיתוח (development) לבין צוותי התפעול (operations). הבנת משמעות הגישה אינה אפשרית מבלי להבין תחילה את מחזור החיים של DevOps. להלן סיכום קצר על מחזור חיים מתמשך ב- DevOps:
1. פיתוח - שלב הפיתוח הוא השלב שבו המפתחים מממשים את הפונקציונליות של המערכת ואת ההגדרות שלה בגישת הפיתוח המודרנית. שלב הפיתוח מחולק למחזורי פיתוח קטנים כדי לאפשר פידבק והתאמת הפתרון לצרכים בפועל. בשלב הזה אנשי ה- DevOps עובדים ביחד עם צוות הפיתוח כדי לייצר אוטומציה של התהליכים והתשתיות כדי להאיץ את פיתוח התוכנה ותהליך המסירה.
2. בדיקות - צוותי ה- QA בודקים את המערכת בסביבה אמיתית, ובעזרת כלים כמו Selenium מבצעים אוטומציה לבדיקות כדי לזהות ולתקן באגים בחלק החדש של הקוד.
3. אינטגרציה - בשלב זה, פונקציונליות חדשה משולבת עם הקוד, והבדיקה מתבצעת. Continuous Development (פיתוח מתמשך) אפשרי רק בשל Continuous Integration (אינטגרציה מתמדת) ובדיקה.
4. Deployment (פריסה) - בשלב זה, תהליך הפריסה מתרחש באופן מתמשך, ומבוצע בצורה כזו כי כל השינויים שנעשו בכל פעם בקוד, לא צריכים להשפיע על תפקוד של אתר אינטרנט בעל תעבורה גבוהה.
5. ניטור- בשלב זה, צוות ה- OPS מטפל בהתנהגות המערכת או בבאגים שנמצאו בשלב ה- production. יש לציין שבהרבה חברות היום הניטור מתבצע על ידי צוותי הפיתוח וה- DevOps.
זרימת העבודה מתייחסת לסקירה חזותית של הרצף שבו הקלט (Input) מסופק. בנוסף, מתריעה על פעולות המבוצעות במערכת, ומפיקה פלט (Output) עבור התהליך התפעולי.
זרימת עבודה מאפשרת להפריד ולסדר עבודות מבוקשות על ידי המשתמשים, וכמו כן מספקת יכולת לשקף את התהליך האידיאלי בעבודות קונפיגורציה.
1. פעולה ממוקדת לקוח: צוות ה DevOps -חייב להיות ממוקד בלקוחות, כדי שהם יוכלו להשקיע באופן קבוע במוצרים ובשירותים.
2. אחריות מקצה לקצה: צוות ה- DevOps צריך לספק תמיכה בביצועים עד שהמערכת תגיע לסוף חייה. עובדה זו משפרת את רמת האחריות ואת איכות המוצרים מהונדסים.
3. Continuous Improvement (שיפור מתמשך): תרבות DevOps מתמקדת בשיפור מתמשך כדי למזער שלבים "בזבזניים" בתהליך העבודה (שלוקחים זמן רב ומפחיתים את רמת היעילות), מה שמאיץ את שיפור המוצר או השירותים המוצעים.
4. אוטומציה להכל: אוטומציה היא עקרון חיוני של תהליך DevOps. לא רק עבור פיתוח תוכנה, אלא גם עבור כל התשתית.
5. עבודה כצוות מאוחד: בתרבות DevOps מוגדרים תפקידים של מעצב, מפתח ובודק, הדגש הוא על עבודה כצוות מאוחד העובד בשיתוף פעולה מלא.
6. ניטור ובדיקת הכל: עקרון חשוב מאוד עבור צוות DevOps הוא ניטור תמידי וביצוע בדיקות עבור פרוצדורות.
איש DevOps הוא איש IT שעובד עם מפתחי תוכנה, מפעילי מערכות, וצוותי IT אחרים כדי לנהל פיתוח קוד. איש ה- DevOps זקוק למגוון מיומנויות כדי לתקשר ולשתף פעולה עם צוותי פיתוח, בדיקות ותפעול.
גישת DevOpsדורשת שינויים מצטברים תכופים בגרסאות קוד, כלומר משטרי פריסת קוד ופיקוח תכופים. למרות שאנשי DevOps בדרך כלל אינם נדרשים לכתוב קוד חדש מאפס, חשוב שיהיה להם בסיס במספר שפות פיתוח תוכנה.
מהנדס Devops יעבוד עם צוות הפיתוח כדי להתמודד עם כתיבת סקריפטים ולחבר אלמנטים שונים של קוד, כמו ספריות או SDK (software development kits)ׁ.
• מסוגל לבצע בקרה במערכת, בקיא בפתרון בעיות בכל הפלטפורמה וביישומים
• ניהול פרויקטים ביעילות באמצעות שימוש בפלטפורמות פתוחות
• הגברת הנראות של הפרויקט באמצעות ביצוע מעקב שוטף
• ביצוע אנליזות, עיצוב ותכנון אוטומציות במערכת ובסקריפטים
• הבטחת פתרון של בעיות מערכת באמצעות שימוש בפתרונות האבטחה הטובים ביותר בסביבת ה-On premise ובסביבת הענן - תלוי בבגרות הארגון ובמגבלות רגולציה.
• איש ה- DevOps צריך להיות אדם שלומד מהר ובעל מיומנות של פתרון בעיות
במאמר הקודם סיפקנו רקע כללי, הצגנו את הסיבות לשימוש בגישה זו ודיברנו על ההבדלים בין תהליכי IT מסורתיים לבין גישת DevOps. בחלק זה נסביר מתי כדאי לאמץ גישת DevOps (ומתי לא), נדבר על מחזור חיי פיתוח תוכנה, נציג עקרונות מרכזיים בגישה ונדון על תחומי האחריות של איש ה- DevOps.
יש להשתמש בגישת DevOps עבור יישומים מבוזרים גדולים כגון אתרי eCommerce או יישומים המתארחים על פלטפורמת הענן.
באופן כללי, המתודולוגיה לא אמורה לשמש עבור יישומים שהם mission-critical כגון חברות אנרגיה ועוד מקומות המחזיקים מידע רגיש. יישומים כאלה צריכים בקרה קפדנית על סביבת הייצור, מדיניות ניהול השינוי (change management), מדיניות בקרת גישה למרכזי נתונים ועוד. למרות זאת, כיום ישנם הרבה מאוד ארגונים, בינם אפילו בנקים בישראל, שהחלו לאמץ תהליכי DevOps עבור סביבות On premise.
ב- DevOps קיימת אינטגרציה עמוקה בין הפיתוח (development) לבין צוותי התפעול (operations). הבנת משמעות הגישה אינה אפשרית מבלי להבין תחילה את מחזור החיים של DevOps. להלן סיכום קצר על מחזור חיים מתמשך ב- DevOps:
1. פיתוח - שלב הפיתוח הוא השלב שבו המפתחים מממשים את הפונקציונליות של המערכת ואת ההגדרות שלה בגישת הפיתוח המודרנית. שלב הפיתוח מחולק למחזורי פיתוח קטנים כדי לאפשר פידבק והתאמת הפתרון לצרכים בפועל. בשלב הזה אנשי ה- DevOps עובדים ביחד עם צוות הפיתוח כדי לייצר אוטומציה של התהליכים והתשתיות כדי להאיץ את פיתוח התוכנה ותהליך המסירה.
2. בדיקות - צוותי ה- QA בודקים את המערכת בסביבה אמיתית, ובעזרת כלים כמו Selenium מבצעים אוטומציה לבדיקות כדי לזהות ולתקן באגים בחלק החדש של הקוד.
3. אינטגרציה - בשלב זה, פונקציונליות חדשה משולבת עם הקוד, והבדיקה מתבצעת. Continuous Development (פיתוח מתמשך) אפשרי רק בשל Continuous Integration (אינטגרציה מתמדת) ובדיקה.
4. Deployment (פריסה) - בשלב זה, תהליך הפריסה מתרחש באופן מתמשך, ומבוצע בצורה כזו כי כל השינויים שנעשו בכל פעם בקוד, לא צריכים להשפיע על תפקוד של אתר אינטרנט בעל תעבורה גבוהה.
5. ניטור- בשלב זה, צוות ה- OPS מטפל בהתנהגות המערכת או בבאגים שנמצאו בשלב ה- production. יש לציין שבהרבה חברות היום הניטור מתבצע על ידי צוותי הפיתוח וה- DevOps.
זרימת העבודה מתייחסת לסקירה חזותית של הרצף שבו הקלט (Input) מסופק. בנוסף, מתריעה על פעולות המבוצעות במערכת, ומפיקה פלט (Output) עבור התהליך התפעולי.
זרימת עבודה מאפשרת להפריד ולסדר עבודות מבוקשות על ידי המשתמשים, וכמו כן מספקת יכולת לשקף את התהליך האידיאלי בעבודות קונפיגורציה.
1. פעולה ממוקדת לקוח: צוות ה DevOps -חייב להיות ממוקד בלקוחות, כדי שהם יוכלו להשקיע באופן קבוע במוצרים ובשירותים.
2. אחריות מקצה לקצה: צוות ה- DevOps צריך לספק תמיכה בביצועים עד שהמערכת תגיע לסוף חייה. עובדה זו משפרת את רמת האחריות ואת איכות המוצרים מהונדסים.
3. Continuous Improvement (שיפור מתמשך): תרבות DevOps מתמקדת בשיפור מתמשך כדי למזער שלבים "בזבזניים" בתהליך העבודה (שלוקחים זמן רב ומפחיתים את רמת היעילות), מה שמאיץ את שיפור המוצר או השירותים המוצעים.
4. אוטומציה להכל: אוטומציה היא עקרון חיוני של תהליך DevOps. לא רק עבור פיתוח תוכנה, אלא גם עבור כל התשתית.
5. עבודה כצוות מאוחד: בתרבות DevOps מוגדרים תפקידים של מעצב, מפתח ובודק, הדגש הוא על עבודה כצוות מאוחד העובד בשיתוף פעולה מלא.
6. ניטור ובדיקת הכל: עקרון חשוב מאוד עבור צוות DevOps הוא ניטור תמידי וביצוע בדיקות עבור פרוצדורות.
איש DevOps הוא איש IT שעובד עם מפתחי תוכנה, מפעילי מערכות, וצוותי IT אחרים כדי לנהל פיתוח קוד. איש ה- DevOps זקוק למגוון מיומנויות כדי לתקשר ולשתף פעולה עם צוותי פיתוח, בדיקות ותפעול.
גישת DevOpsדורשת שינויים מצטברים תכופים בגרסאות קוד, כלומר משטרי פריסת קוד ופיקוח תכופים. למרות שאנשי DevOps בדרך כלל אינם נדרשים לכתוב קוד חדש מאפס, חשוב שיהיה להם בסיס במספר שפות פיתוח תוכנה.
מהנדס Devops יעבוד עם צוות הפיתוח כדי להתמודד עם כתיבת סקריפטים ולחבר אלמנטים שונים של קוד, כמו ספריות או SDK (software development kits)ׁ.
• מסוגל לבצע בקרה במערכת, בקיא בפתרון בעיות בכל הפלטפורמה וביישומים
• ניהול פרויקטים ביעילות באמצעות שימוש בפלטפורמות פתוחות
• הגברת הנראות של הפרויקט באמצעות ביצוע מעקב שוטף
• ביצוע אנליזות, עיצוב ותכנון אוטומציות במערכת ובסקריפטים
• הבטחת פתרון של בעיות מערכת באמצעות שימוש בפתרונות האבטחה הטובים ביותר בסביבת ה-On premise ובסביבת הענן - תלוי בבגרות הארגון ובמגבלות רגולציה.
• איש ה- DevOps צריך להיות אדם שלומד מהר ובעל מיומנות של פתרון בעיות
הודעתך לא התקבלה - נסה שוב מאוחר יותר
Oops! Something went wrong while submitting the form