האם Go טובה ל־DevOps?
כן, לכלים שגדלים מעבר לסקריפט: CLIs שמוסרים לצוותים אחרים, exporters של Prometheus, controllers של Kubernetes, admission webhooks ושירותים קטנים סביב פלטפורמה. Go נותנת לכם קובץ הרצה אחד להפצה, קומפילציה לפלטפורמות אחרות, עלייה מהירה, ספרייה סטנדרטית שמכסה HTTP, JSON והרצת תוכניות אחרות (os/exec), וספריות קליינט רשמיות ב־Go ל־Kubernetes ול־Prometheus. לסקריפט דבק מהיר, bash או Python בדרך כלל מהירים יותר לכתיבה.
Go או Python לאוטומציה ב־DevOps?
שתיהן, בסופו של דבר. Python היא שפת הסקריפטים הנפוצה יותר ב־DevOps: מהירה יותר לסקריפטים חד־פעמיים, השפה שבה Ansible כתובה, עם SDK לכל ענן מרכזי, והשפה שעמוד מסלול ה־DevOps מלמד בשלב האחרון שלו. Go מנצחת כשסקריפט הופך לכלי: משהו שאנשים אחרים מתקינים, שחייב לרוץ על מכונות בלי סביבת Python, או שצריך להיות מהיר ומקבילי. חמשת השלבים הראשונים זהים בכל מקרה.
מהנדסי DevOps צריכים לדעת Go?
לא כדי להתחיל, ורבים אף פעם לא כותבים בה: bash ו־Python מכסים את רוב האוטומציה היומיומית. Go חשובה יותר בהנדסת פלטפורמה ובעבודת SRE, שבהן כותבים operators של Kubernetes, providers של Terraform או CLIs פנימיים, ובכל פעם שצריך לקרוא את קוד המקור של הכלים שמריצים. היא שפה שנייה חזקה למהנדס DevOps, וזו שהעמוד הזה מלמד.
מה אפשר לבנות עם Go אחרי מסלול ה־DevOps?
פרויקטים ראשונים טובים: CLI שבנוי עם ספרייה כמו Cobra, exporter של Prometheus עם client_golang, שירות קטן שקורא את ה־API של Kubernetes דרך client-go, או כלי שהופך runbook של פקודות shell לקובץ הרצה אחד עם os/exec. קורס Go נותן לכם את השפה (structs, interfaces, goroutines ו־channels); הספריות האלה, ו־frameworks ל־operators כמו Kubebuilder, הן השכבה הבאה ועוד לא מכוסות כאן.
כמה זמן לוקח ללמוד DevOps עם Go?
בשעה ביום, Linux, Git ו־Docker לוקחים יחד כחודש, Kubernetes כשבוע, SQL שבועיים עד שלושה וקורס Go כשבעה שבועות: שלושה עד ארבעה חודשים בסך הכול. העבודה בטרמינל משתלמת כבר מהשבוע הראשון, הרבה לפני שלב ה־Go.
מפת הדרכים ל־DevOps עם Go חינמית?
כן. כל קורס בה חינמי: טרמינל ה־Linux, התרגילים ב־Git, Docker ו־Kubernetes, שיעורי SQL ו־Go, הרמזים של Bugsy ותעודה לכל קורס שמסיימים. הכול רץ בדפדפן: אין מה להתקין, אין cluster לשכור ואין חשבון ענן.