DevOps – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שוחזר מעריכות של 31.154.174.46 (שיחה) לעריכה האחרונה של Uzielbot
מ הגהה, ניסוח
שורה 1:
{{הנדסת תוכנה}}
ב[[פיתוח תוכנה]], '''DevOps''' היא [[תרבות ארגונית]] ו[[מתודולוגיית פיתוח תוכנה|מתודולוגיית עבודה]] אשר שמה דגש על שיתוף הפעולה והתקשורת בין [[מתכנת|מפתחי התוכנה]] לבין שאר אנשי ה-[[טכנולוגיית מידע|IT]] שבחברה. השיטה דוגלת בביצוע [[אוטומציה (כללי)|אוטומציה]] של תהליכי [[פריסת תוכנה|אספקת התוכנה]] (delivery) ושל שינויים בתשתיות. מקור המילה DevOps הוא מראשי התבות של המילים ה[[אנגלית|אנגליות]] development (פיתוח) ו-operations (תפעול). מטרת השיטה לכונן תרבות וסביבה שבהן [[בניית תוכנה|בנייה]], [[בדיקות תוכנה|בדיקות]] ושחרורוהוצאה לאור של גרסאות תוכנה יכולים להתבצע במהירות, לעיתים קרובות ובאופן אמין יותר.
 
בארגונים מסורתיים, המורכבים מבעלי תפקידים המתמחים בביצוע פונקציות ספציפיות, שיתוף פעולה בין המחלקות שאחראיות על הפעולות שתוארו למעלה, לבין פעילויות התפעול של ה-IT הוא נדיר. גישת ה-DevOps מקדמת תהליכים ושיטות שמטרתם לחשוב על [[תקשורת]] ושיתוף פעולה בין צוותי הפיתוח, אבטחת המידע, ה-[[הבטחת איכות|QA]] וה-IT.
שורה 13:
* בדיקות (test) – [[בדיקות תוכנה]] ומדידת הביצועים
* אריזה (package) – אחסון תוצרי בנייה בינאריים (artifact repository), הכנת היישום לפריסה
* שחרורהוצאה לאור (release) – ניהול שינויים, אישור שחרורהוצאה לאור של גרסאות, אוטומציה לשחרורלהוצאה לאור של גרסאות
* קונפיגורציהתצורה (configure) – הגדרה וניהול תצורה של תשתיות
* ניטור (monitor) – ניטור ביצועים של היישום בזמן ריצה, [[חוויית משתמש]]
 
שורה 21:
== DevOps בהשוואה ל-Agile ו-Continuous delivery ==
 
בארגונים אשר אימצו את גישת [[פיתוח תוכנה זריז]] (Agile) חלה עלייה בכמות גרסאות התוכנה היוצאות לאור. במקור, שיטת ה-DevOps נוצרה מהעלייה בפופולריות של פיתוח זריז. שיטות ה-Agile ו-DevOps דומות אך שונות במספר היבטים חשובים: Agile מהווה שינוי בצורת החשיבה, בעוד ש-DevOps מיישמת שינוי בתרבות הארגונית הלכה למעשה. אחת המטרות של DevOps היא לייסד סביבה בה יכולים להתקיים שחרוריהוצאות לאור של גרסאות תוכנה אמינות יותר ובקצב גבוה יותר. מנהלים האחראים על שחרוריהוצאות לאור של גרסאות מתחילים להשתמש בכלים כגון אוטומציה לשחרורלהוצאות לאור של גרסאות וכלים ל-[[continuous integration]] כדי לסייע בקידום מטרה זו. כל זה נעשה תוך יישום גישת ה-[[continuous delivery]] ("אספקת תוכנה מתמשכת").
 
למושגים Continuous delivery ו-DevOps משמעות דומה, ולעיתים קרובות מבלבלים ביניהם, אך עם זאת אלו הן שתי תפישות שונות. גישת ה-DevOps רחבה יותר, והיא מתמקדת בשינוי תרבותי, ובפרט בשיתוף הפעולה בין הצוותים השונים שלוקחים חלק באספקה (delivery) של התוכנה (פיתוח, QA, IT, הנהלה, וכו'וכולי), כמו גם האוטומציה של תהליכי אספקת התוכנה. בהשוואה לכך, continuous delivery היא גישה אשר מתמקדת באוטומציה של שחרורהוצאה לאור של גרסאות, חיבור בין התהליכים השונים, וביצוע מהיר ותכוף יותר שלהם. המטרות הסופיות של שתי הגישות הן זהות ולעיתים קרובות משלבים ביניהן להשגת מטרות אלו. גישות ה-DevOps וה-continuous delivery באות מאותו רקע של שיטות עבודה זריזות ו"חשיבה רזה": ביצוע של שינויים קטנים ומהירים עם התמקדות בתועלת עבור הלקוח הסופי. השיטות מתבססות על תקשורת ושיתופי פעולה פנימיים איכותיים, ובכך מסייעות להשיג זמנים קצרים לשחרורלהוצאה לאור של התוכנה לשוק (time to market), תוך הפחתת סיכונים.
 
== אימוץ שיטת ה-DevOps והיחס לארכיטקטורת תוכנה ==
שורה 35:
 
=== ארכיטקטורה ===
אף על פי שתאורטית ניתן ליישם את גישת ה-DevOps יחד עם כל [[ארכיטקטורת תוכנה]], ארכיטקטורת ה-[[microservices]] (מיקרו-שירותים) הופכת לסטנדרטלתקן עבור מערכות המתוכננות ל"[[פריסת תוכנה|פריסה]] מתמשכת" ([[continuous deployment]]). מכיוון שכל שירות הוא קטן, הדבר מאפשר לארכיטקטורה של כל שירות להתפתח בתהליך של continuous refactoring ([[Refactoring|ארגון הקוד מחדש]] באופן מתמשך), ובכך להפחית את הצורך בתכנון נרחב מראש, ומאפשר שחרורהוצאה מוקדםלאור ומתמשךמוקדמת ומתמשכת של התוכנה.
 
== ראו גם ==