Немного истории
Релиз Golang состоялся в 2012 году и пришелся как раз на этап активного развития методологии DevOps. Забавное совпадение или судьба?
Прошло уже 10 лет, Go оброс широким комьюнити и в наше время стал одним из самых востребованных языков программирования в DevOps. Давайте разберемся, почему это произошло.
Чем Golang так хорош
Простота. Пожалуй, самое важное для инженеров свойство этого языка – легкость в изучении. Небольшое количество ключевых слов позволяет беспроблемно освоить синтаксис и начать писать программы.
Быстрота. Golang компилируется мгновенно – иногда даже быстрее, чем С++. Больше того, он собирается в бинарник без каких-либо дополнительных действий, что ускоряет процесс билда и доставки.
Комьюнити. Большое комьюнити – а у Go оно действительно массивное – означает, что язык поддерживается и развивается. Если вас не устраивает инструмент из коробки, вы можете легко найти похожий, но с какими-то доработками.
Инфраструктура. Большинство инструментов для DevOps станут гораздо понятнее после изучения Golang. Например:
- Docker, с помощью которого код и пакеты зависимостей упаковываются в контейнер;
- Kubernetes, который позволяет параллельно управлять несколькими контейнерами;
- Terraform, помогающий автоматизировано управлять и оркестрировать инфраструктуру;
- Prometheus, который применяется для мониторинга инфраструктуры через сбор метрик.
Востребованность. По последним данным «Хабр Карьера» Go вошел в тройку самых высокооплачиваемых языков программирования, конкурируя за третье место со Swift.
Кроссплатформенность. Находясь в Windows, можно собрать бинарник для Linux и выкатить на production тот, который подходит для этой системы. В конечном счете, выкатка кода сводится к доставке одного файла.
Многопоточность. Go поддерживает многопоточность прямо из коробки, что делает его идеальным языком для высоконагруженных систем, параллельной обработки и тяжелых вычислений.
Инструментарий. Кроме многопоточности Golang предоставляет массу коробочных решений: для тестирования, отладки и т. д. Это позволяет лишний раз не обращаться к сторонним библиотекам, избегая ненужных уязвимостей и багов.
Благодаря этим свойствам языка инженеры смогут совершенствовать рабочие процессы, ускорять запуск, усилить безопасность проекта и со знанием дела применять DevOps-практики в своей работе.
Какие задачи можно решать на Go
- Автоматизировать процесс разработки, чтобы ускорить программирование.
- Работать с микросервисной архитектурой и высоконагруженными системами.
- Создавать сложные программы, организовывать тесты, оптимизировать приложения.
- Работать с API, взаимодействовать с Docker, запускать и присоединяться к рабочему контейнеру.
- Писать кастомные операторы и использовать паттерны Kubernetes.
- Выносить монолиты в микросервисы.
Если хотите глубже погрузиться в изучение Go – занимайте место на курсе Слёрма «Golang для инженеров».
Здесь мы обучаем не только программированию на Golang, но и тем инструментам, без которых не обойдется в работе ни один продвинутый инженер: Docker и K8s.