מה זה DevOps
בשנים האחרונות תחום ה-DevOps התפתח ותפס תאוצה, תפקידו של איש DevOps כוללני ואם נרד לפרטים, אף משתנה מחברה לחברה, בין השאר תפקידו לשפר את מהירות, האיכות ,המחיר ופרודוקטיביות של תהליכי פיתוח והטמעה בחברה,
זאת באמצעות שילוב של כלים אוטומטיים, שימוש בתשתיות מחשוב בענן, מתודולוגיות חדשות כגון פיתוח תוכנה זריז - אג'ייל (Agile ), אינטגרציה רציפה (Continuous Integration), אספקת תוכנה רציפה/מתמשכת (Continuous Delivery) U ותרבות ארגונית הדורשת מצוותים לעבוד ביחד.
איש DevOps למעשה חוצה מחלקות, המונח Devops מורכב מצמד המילים Development & Operations כאמור מדובר על שילוב עבודה בין כל המחלקות המשתתפות בתהליך פיתוח תוכנה,
החל משלבי התכנון, פיתוח, בדיקות, וכלה באופרציה ( יישום בפועל של תוכנה - התקנה, קונפיגורציה ועוד). ניכר כי תפקידו של איש דבאופס חשוב ומשמעותי הדורש ידע וניסיון במגוון רחב של תחומים, מקצוע DevOps הפך להיות הכרחי לכל חברה וכיום במיוחד הפך למוצר מבוקש במיוחד.
מחזור החיים של DevOps
היות ורוב פיתוח התוכנה כיום עבר לענן, אזי מרבית עבודתו של מנהל Devops עוסק בהכנת תשתיות וניטור המוצר הסופי. להלן השלבים העיקריים במחזור פיתוח התוכנה (Software Life Cycle) בענן :
- Designing (תכנון המוצר) - תחילתו של כל מוצר מתחיל בתהליך תכנון פיתוח המוצר, מה יבצע המוצר, אלו features נכניס למוצר, איזה חומרה נדרשת וכ"ו, הגדרות אלו מגיעות בד"כ ממחלקת ה- Marketing, כאשר בכל איטרציה נתחשב בפידבקים של משתמשים בגרסת התוכנה הקודמת.
- Development (פיתוח תוכנה) - לאחר התכנון ניתן להתחיל את היישום המוצר, כתיבת הקוד ע"פ התכנון שבונה את המוצר - התוצאה- "גרסה", זוהי גרסת תוכנה לא בדוקה.
- Software Testing (בדיקות תוכנה) - בדיקות על גרסה חדשה - וידוא שהגרסה החדשה עובדת, כל שכל הפונקציונליות החדשות תקינות וכן שהפונקציונליות הקודמות עדיין נתמכות (Regression Testing).
- Software Release - לאחר אישור ה QA שגרסת התוכנה "תקינה" , ניתן להוציא אותה להפצה.
- Deployment (הפצה) - העלאת (או התקנת) הגרסה על שרתי Production של הלקוח.
- monitoring (ניטור התוכנה) - מעקב אחר תוכנה בלקוח, פידבק משתמשים, וידוא תקינות.
- Life Cycle - מכיוון שיש פונקציונליות נוספת להוספה מתחילים שוב מהתחלה לגרסה הבאה.
מה הכלים בשימוש ב- DevOps
ה - DevOps מתבסס על שימוש בכלים רבים, תוכנות מדף חינמיות Open Source בעיקר, שימוש בבדיקות אוטומטיות שבד"כ שנכתבות בשפות תכנות סקריפטינג בעיקר Python ו-BASH, ניהול גרסאות, ניהול שרתים,פיתוח אוטומציה וכן הלאה, ישנם כלים רבים, נתייחס רק לעיקריים שבהן:
- git - שרת גרסאות - בשרת זה נשמרים הקוד של המפתחים.
- Jenkins - שרת אוטומציה - מנהל משימות שמריץ את הבדיקות האוטומטיות שלנו, אחד הכלים הפופולריים ביותר בעבור CI\CD.
- Docker Containers - מערכת שמאפשרת להתקין ולהריץ יישומים בתוך קונטיינרים (מכולות), מכולה היא וירטואליזציה ברמת מערכת ההפעלה - דומה Virtual Machine דורשים פחות משאבים ונותנים בגדול את אותה הפונקציונליות.
למה צריך מכולות ? לדוגמא, נתייחס למצב בו החברה מוציאה גרסת תוכנה שרצה בענן, מן הסתם היא צריכה לתמוך בכל הדפדפנים (Browsers) לרבות Google Chrome \ Microsoft Edge \ Mozilla Firefox. אז במקום להתקין 3 Virtual Machine ניתן להריץ בדיקות על 3 Docker Containers שונים על אותו מחשב. - Kubernetes - מערכת המאפשרת ניהול, קיפוג, scaling, פריסה אוטומטית של יישומים על גבי קונטיינרים. הרי כבר ציינו שה Docker Containers הם וירטואליים, אז Kubernetes בנוסף לניהול מאפשר גם הגדלת המשאבים של הContainer ע"פ צורך לדוגמא בשימוש ב 2 או 4 מעבדים, או יותר זיכרון ועוד.
- 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.
היום זה כבר ידוע, לימודי הייטק רק בבית תוכנה
מה נלמד בקורס DevOps
כפי שציינו תחילה, איש מקצוע המתמחה ב DevOps יצטרך לשלוט בגוון רחב של שפות תכנות מתוקף אחריותו המשלב תחזוקת שרתים, ניהול כלים מתקדמים, ניטור התוכנה, פיתוח אוטומציה וכן הלאה.
במסגרת קורס DevOps תלמדו את כלי הDevops האופיניים אשר צוינו לעיל וכן את שפות תכנות הנדרשות, בעיקר Python, BASH (בהתאם לחברה בה תעבדו ייתכן שתיתקלו גם ב Java ו-Javascript), בלימודי דבאופס תלמדו בנוסף חומרים בתחום של פיתוח במתודולוגיית Agile, שימוש בשרתי Linux, שירותי ענן (Microsoft Azure, Google cloud, AWS) וכדומה.
שכר אנשי DevOps
אז לאחר שהבנו כי מדובר בתחום מבוקש בתעשיית ההייטק, האם הדבר בא לידי ביטוי בשכר שלנו ?
ברוב המוחלט של המקרים השכר ההתחלתי לאנשי דבאופס מתחיל בין 20-16 אלף שקלים בחודש.
צריך להתחשב כי מדובר במקצוע המשלב מספר התמחויות, דבר אשר נותן את אותותיו ועל כן יכול להשפיע באופן משמעותי על השכר בהתאם לביקוש בתעשייה, לדוגמא: התמחות בעבודה עם שרתי אמזון, התמחות בניהול שרתי לינוקס וניסיון בעבודה עם Kubernetes - כל אלו ועוד נוספים הם חלק מהפרמטרים המשפיעים באופן ישיר על שכר המתכנת בסוף החודש, כמובן שלצד מאפיינים נוספים כמו ניסיון קודם, ידע בשפות תכנות שונות, רמת הביצוע וכן הלאה.
למי מתאים קורס DevOps?
הוורסטיליות של תחום ה-DevOps הפכה אותו לאחד התחום המבוקשים ידוע כי בוגר קורס DevOps מבוקש יותר משאר המשרות המוצעות בתחום ועל כן השכר הינו גבוה בהתאם.
ניתן לפלג את קהל היעד לשתי קבוצות מרכזיות:
- מועמדים ללא כל ידע מקדים ורקע בתחום, אשר מעוניינים לדעת וללמוד את התחום מאפס וכך אפשר להשתלב בחברות תפקידים התחלתיים.
- עלי רקע קודם בתחום, מועמדים בעלי רקע טכני (אנשי IT, אוטומציה, מנהלי רשתות, מפתחים ואנשי QA), אשר מעוניינים לשפר את רמת המיומנות ב Devops.
חשוב לציין כי רצון ללמוד את התחום אמנם הכרחי אך לא תמיד מספיק ועל כן חשוב לבצע בדיקה התאמה ללימודי DevOps, רוב המכללות מאפשרות מבחני התאמה לתחום חינם.
איפה הכי כדאי ללמוד DevOps?
עקב ההיצע הנמוך באנשי DevOps והביקוש הגבוהה בתעשייה, ישנן מגוון רחב של תוכניות הכשרה בתחום, מספר רב של מכללות מציעות קורסי DevOps ומסלולים כאלו ואחרים בהיקפים שונים, אז איך אתם מבטיחים שהלימודים יהיו הצלחה ובאמת תצליחו למצוא עבודה בסיום הלימודים ?
בהתאם למכללה בה תבחרו ללמוד את תחום ה-DevOps. הבחירה הסופית בתוכנית ההכשרה הרצויה תהיה תלוי במספר גורמים חשובים:
- מי המרצה שמעביר את המסלול ומה הכשרתו
- מה הנושאים הכלולים בקורס, חשוב לעבור על סילבוס של קורס דבאופס ולוודא שהוא עדכני, כפי שהוסבר תחום ה Devops רחב, כולל נושאי פיתוח, אוטומציה, קונפיגורציה וידע הכרחי בכלים רלוונטיים.
- מה וותק המכללה בתחום ? האם היא מוכרת? בעלת שם?
- האם המכללה מבטיחה סטאז' / התמחות מעשית? מי מעביר את ההתמחות ומה משך ההתמחות? ידוע שחברות מעדיפות עובדים בעלי ניסיון, אפילו אם זה ניסיון ראשוני.
באדיבות חברת Real Time Group
מאמר זה נכתב ע" צוות Devops מחברת Real Time Group, בית תוכנה ומרכז הדרכה המספקת שירותי פיתוח, הדרכה והשמה למאות חברות הייטק בארץ ובחו"ל.
כיום ישנה דרישה גבוהה מצד לקוחותינו לפרויקטים בתחום דבאופס ולכן אנו מחפשים מועמדים המעוניינים להצטרף אלינו - ללמוד ולעבוד איתנו.
מחלקת ההדרכה RT College יודעת "לייצר" אנשי דבאופס באמצעות קורס Devops המקיף והמעודכן בארץ, לקראת סיום הקורס בוגרים המעוניינים לעבוד בחברה יעברו התמחות מעשית (סטאז) בליווי מהנדסי Devops בחטיבת הפיתוח עד להשמתם בחברות הייטק.