הכרות עם Devops
המונח Devops מורכב מצמד המילים Development & Operations כלומר איש דבאופס משלב עבודה בין כל המחלקות המשתתפות בתהליך פיתוח תוכנה, החל משלבי התכנון דרך הפיתוח ועד לבדיקות, וכן, באופרציה ( יישום בפועל של תוכנה - התקנה, קונפיגורציה ועוד). התפקיד העיקרי של איש הדבאופס הוא לשפר את יעילות הארגון.
חלק מהפעולות שמבצע איש הדבאופס במטרה לשפר את יעילות הארגון:
בדיקות אוטומטיות
אוטומציה של כל מיני תהליכים – מהגעה או עזיבה של עובד את הארגון, עד הכנסה של פיצ׳ר חדש לתוך המוצר.
אימוץ תהליכי CI/CD – ״מסירה רציפה״ (נסביר בהמשך), ו״בנייה רציפה״ של המוצר. כלומר, שאיפה שהתהליכים סביב הפיתוח שיהיו כמה שיותר רציפים. ללא הפסקה.
ניהול יעיל של משאבי הארגון – כמו מסדי הנתונים או כל משאב שייעול השימוש בו יחסוך הרבה זמן וכסף.
יכולות ניטור על המוצר – בקרה על הקוד, ניטור העלויות, בקרה על ביצועי המפתחים.
שמירה על סטנדרטים גבוהים יותר של קוד ובדיקותיו – למשל, באמצעות יצירת פייפליין שלא מאפשר לדחוף שינוי שלא עובר את הטסטים.
מניעת פיתוח מיותר – בין היתר באמצעות:
– יכולת שימוש בכלים קיימים שמציעות חברות חיצוניות (Third party)
– מניעת מצב של פיתוח זהה בחברה פעמיים
מנגנוני התראה בזמן אמת
מניעה של פרוצדורות שיפגעו בארגון – כמו פגיעה בצד האבטחתי שלו
כלים למציאת באגים
|
כלים שימושים ב- DevOps
ה - DevOps מתבסס על שימוש בכלים רבים, תוכנות מדף חינמיות Open Source בעיקר, שימוש בבדיקות אוטומטיות שבד"כ שנכתבות בשפות תכנות סקריפטינג בעיקר Python ו-BASH, ניהול גרסאות, ניהול שרתים,פיתוח אוטומציה וכן הלאה, ישנם כלים רבים, נתייחס רק לעיקריים שבהן:
git- שרת גרסאות- בשרת זה נשמרים הקוד של המפתחים.
Jekins- שרת אוטומציה- מנהל משימות שמריץ את הבדיקות האוטומטיות שלנו, אחד הכלים הפופולריים עבור CI\CD.
Kubernetes- מערכת המאפשרת ניהול, קיפוג, scaling, פריסה אוטומטית של יישומים על גבי קונטיינרים. הרי כבר ציינו שה Docker Containers הם וירטואליים, אז Kubernetes בנוסף לניהול מאפשר גם הגדלת המשאבים של הContainer ע"פ צורך לדוגמא בשימוש ב 2 או 4 מעבדים, או יותר זיכרון ועוד.
Docker Containers - מערכת שמאפשרת להתקין ולהריץ יישומים בתוך קונטיינרים (מכולות), מכולה היא וירטואליזציה ברמת מערכת ההפעלה - דומה Virtual Machine דורשים פחות משאבים ונותנים בגדול את אותה הפונקציונליות.למה צריך מכולות ? לדוגמא, נתייחס למצב בו החברה מוציאה גרסת תוכנה שרצה בענן, מן הסתם היא צריכה לתמוך בכל הדפדפנים (Browsers) לרבות Google Chrome \ Microsoft Edge \ Mozilla Firefox. אז במקום להתקין 3 Virtual Machine ניתן להריץ בדיקות על 3 Docker Containers שונים על אותו מחשב.
Ansible - הינו קוד פתוח שמספק כלי אוטומציה לאספקה, ניהול תצורה, פריסת יישומים, וניהול תהליכי IT ידניים רבים אחרים. בניגוד לכלי ניהול פשטניים יותר, משתמשי Ansible (כמו מנהלי מערכות, מפתחים ואדריכלים) יכולים להשתמש באוטומציה של Ansible כדי להתקין תוכנה, לבצע אוטומציה של משימות יומיומיות, לספק תשתית, לשפר אבטחה ותאימות, לתקן מערכות ולשתף אוטומציה בכל הארגון.
Zabbix - היא תוכנת ניטור קוד פתוח עבור רכיבי IT מגוונים הכולל רשתות, שרתים, מכונות וירטואליות (VMs) ושירותי ענן. Zabbix מספקת מדדי ניטור כגון ניצול רשת, עומס מעבד וצריכת שטח דיסק. התוכנה עוקבת אחר פעולות של מערכות הפעלה מגוונות כגון: לינוקס, Hewlett Packard Unix (HP-UX), Mac OS X, Solaris ומערכות הפעלה אחרות (OSes); עם זאת, ניטור Windows אפשרי רק באמצעות סוכנים.
Terraform - היא קוד תשתיתי המאפשר להגדיר משאבים בענן וגם משאבים מקומיים בקובצי תצורה. בקבצים אלו ניתן לבצע גרסאות, שימוש חוזר ולשתף. אפשר גם להשתמש בזרימת עבודה עקבית כדי לספק ולנהל את כל התשתית שלך לאורך מחזור החיים שלה. Terraform יכולה לנהל רכיבים ברמה נמוכה כמו משאבי מחשוב, אחסון ורשת, כמו גם רכיבים ברמה גבוהה כמו ערכי DNS ותכונות SaaS.
ELK Stack - פלטפורמת Open Source המאפשרת אגירה ועיבוד מידע ממקורות רבים.
ה- ELK Stack מורכב מהרכיבים הבאים: Elasticsearch, Logstash, Kibana ו- Beats.
המערכת דואגת לאיסוף ועיבוד הנתונים ומבצע אינדקס לאחסן את המידע. Kibana מספק ממשק משתמש להשאלת הנתונים והדמייתם. יחד הם משמשים לניטור, פתרון בעיות ואבטחת סביבות IT.
Grafana - מערכת להצגת מידע או ערכים בתצורות שונות כגון: טבלאות, גרפים, שעונים וכדומה. המידע נקרא ממקורות כגון: MySQL, MongoDB.
|