Подходит ли Go для DevOps?
Да, для инструментов, которые перерастают скрипт: CLI-утилит, которые вы отдаёте другим командам, экспортеров Prometheus, контроллеров 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, где пишут операторы Kubernetes, провайдеры Terraform или внутренние CLI-утилиты, а также всякий раз, когда нужно читать исходный код инструментов, которые вы используете. Это сильный второй язык для DevOps-инженера, и именно ему учит эта страница.
Что можно написать на Go после этого пути DevOps?
Хорошие первые проекты: CLI-утилита на библиотеке вроде Cobra, экспортер Prometheus на client_golang, небольшой сервис, который читает Kubernetes API через client-go, или инструмент, превращающий ранбук из shell-команд в один бинарный файл с помощью os/exec. Курс Go даёт вам язык (структуры, интерфейсы, горутины и каналы); эти библиотеки и фреймворки для операторов вроде Kubebuilder составляют следующий слой и здесь пока не охвачены.
Сколько времени нужно, чтобы освоить DevOps на Go?
При часе занятий в день на Linux, Git и Docker вместе уйдёт около месяца, на Kubernetes около недели, на SQL две-три недели и на курс Go около семи: всего три-четыре месяца. Работа в терминале окупается с первой недели, задолго до шага с Go.
Бесплатен ли этот roadmap DevOps на Go?
Да. Все курсы в нём бесплатные: терминал Linux, упражнения по Git, Docker и Kubernetes, уроки SQL и Go, подсказки Bugsy и сертификат за каждый пройденный курс. Всё работает в браузере: не нужно ничего устанавливать, арендовать кластер и платить по счетам за облако.