March 1

Инструменты DevOps с открытым исходным кодом, о которых я хотел бы узнать раньше.

Это перевод оригинальной статьи Open-Source DevOps Tools I Wish I Knew About Sooner.

Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.

Когда я только начинал работать в DevOps, я думал, что всё должно быть дорогим.
Мониторинг? Платный. CI/CD? Платный. Логирование? Платное.
Даже такие простые вещи, как проверка доступности, стоили денег.

Мне потребовалось несколько болезненных счетов, чтобы осознать одну вещь:

Практически у каждого крупного DevOps-инструмента есть open-source альтернатива, и многие из них на самом деле лучше.

Это те инструменты, которые я хотел бы, чтобы меня заставили изучить раньше.
Они бы сэкономили мне деньги, время и кучу нервов.

1. Portainer → Графический интерфейс Docker, о необходимости которого я даже не подозревал.

https://www.portinaer.io/

Ссылка: https://www.portinaer.io/

Раньше я управлял Docker исключительно с помощью командной строки.
Всё было хорошо… пока у меня не появились десятки контейнеров, стеков, сетей и томов.

Portainer предоставляет вам:

  • Визуальная панель мониторинга
  • Логи и статистика контейнеров
  • Развертывание в один клик
  • Шаблоны стека
  • Контроль доступа пользователей

Реальный пример:
я управляю несколькими небольшими клиентскими приложениями на VPS-серверах.
Portainer превратил управление контейнерами из запутанных терминальных джунглей в удобный дашборд, где я могу перезапускать, обновлять или проверять контейнеры за считанные секунды.

2. Jenkins→ Моя первая настоящая свобода в области CI/CD

https://www.jenkins.io/

Ссылка: https://www.jenkins.io/

До появления Jenkins я в значительной степени полагался на SaaS-инструменты для непрерывной интеграции.
Они удобны, но бесплатные ограничения просто ужасны.

Jenkins предоставляет:

  • Неограниченное количество пайплайнов
  • Кастомные агенты
  • Огромная экосистема плагинов
  • Полный контроль над сборкой.

Однажды я собрал пайплайн, который:

  1. Запускал тесты
  2. Генерировал Docker-образы
  3. Деплоил в Kubernetes
  4. Отправлял уведомления в Slack

Всё работает на сервере за 10 долларов. Никаких ограничений. Никаких неожиданностей.

3. Prometheus + Grafana → Замена облачного мониторинга

Ссылки:
Prometheus: https://prometheus.io/
Grafana: https://grafana.com/

Все облачные провайдеры взимают дополнительную плату за панели мониторинга.
По мере масштабирования эти суммы быстро растут.

Prometheus обрабатывает метрики.
Grafana великолепно их визуализирует.

Где это меня выручило:
я развернул их в кластере Kubernetes — и внезапно у меня появилось:

  • Панели мониторинга ЦП/памяти
  • Графики состояния Pod’ов
  • Пользовательские оповещения
  • Метрики производительности узлов

И всё это бесплатно.

4. Alertmanager → Оповещения без оплаты

https://prometheus.io/

Ссылка: https://prometheus.io/docs/alerting/latest/alertmanager/

Уведомления по электронной почте… бесплатно.
Уведомления в Slack… бесплатно.
Уведомления Webhook… бесплатно.

До того, как я открыл для себя Alertmanager, я полагался на платные инструменты только для получения уведомлений.

После настройки с помощью Prometheus я смог:

  • Получать оповещения о перезапуске подов.
  • Отслеживать высокую загрузку ЦП.
  • Выявлять сбои при развертывании

Никакого спама в SMS-сообщениях/уведомлениях, никаких скрытых платежей.

5. Loki → Инструмент логирования, который следовало использовать с самого первого дня.

https://grafana.com/oss/loki/

Ссылка: https://grafana.com/oss/loki/

Раньше я перенаправлял логи в случайные папки и “cat”-ил их как пещерный человек.
Потом появился Loki — инструмент агрегации логов с открытым исходным кодом от Grafana.

Это как Elasticsearch, но легче и проще в использовании.

Где это помогло:
Логи срабатывали на:

  • Циклических сбоях Node.js
  • Ошибки подключения к базе данных
  • Неожиданные ошибки 500

И всё это можно было искать в одном дашборде.

6. Argo CD → GitOps: правильный подход

https://argo-cd.readthedocs.io/

Ссылка: https://argo-cd.readthedocs.io/

Если вы работаете с Kubernetes, Argo CD кажется почти волшебным инструментом.

Он за вашим Git-репозиторием и автоматически синхронизирует ваш кластер с манифестами.

Значение:

  • Нет необходимости вручную выполнять kubectl apply
  • Автоматический откат
  • мониторинг состояния приложения
  • развертывание с контролем версий

После того, как я настроил его в среде микросервисов, развертывание стало выглядеть следующим образом:

git push

Вот и всё. Argo позаботился обо всём остальном.

7. Traefik → Обратный прокси, который наконец-то стал понятным.

https://traefik.io/

Ссылка: https://traefik.io/

Конфигурации NGINX заставили меня возненавидеть жизнь.
А потом я открыл для себя Traefik.

Traefik автоматически:

  • Обнаруживает контейнеры
  • Генерирует правила маршрутизации
  • Выдает SSL-сертификаты
  • Управляет балансировкой нагрузки

Пример:
я развернул несколько микросервисов с метками Docker, и Traefik мгновенно их обнаружил с действительным HTTPS-соединением — без необходимости вручную настраивать файлы конфигурации.

8. MinIO → Open-Source хранилище S3

(Бесплатное использование прекращено, но исходный код доступен по ссылке : https://github.com/minio/minio )

Ссылка: https://min.io/

AWS S3 — отличный сервис, но не всегда дешевый.

MinIO предоставляет вам:

  • Объектное хранилище
  • S3-совместимые API
  • Высокую производительность
  • Свободу самостоятельного хостинга

Я использовал его для хранения:

  • Логов
  • Резервных копий
  • Медиафайлов
  • Ресурсов приложений

С тех пор я использую MinIO для локальной разработки, тестовых окружений и даже некоторых производственных задач.

9. K9s → Терминальный интерфейс для Kubernetes

https://k9scli.io/

Ссылка: https://k9scli.io/

kubectl — мощный… но иногда мучительный.

K9s предоставляет вам интерактивную панель управления терминала:

  • Pods
  • Логи
  • Доступ к оболочке
  • События
  • Развертывания

Это как «htop», но для вашего кластера.

Я использую его ежедневно — он значительно ускоряет отладку.

10. Gitea → Самостоятельно размещаемая альтернатива GitHub

Ссылка: https://about.gitea.com/

Для небольших команд и внутренних репозиториев GitHub может быть излишним.

Gitea предоставляет вам:

  • Git-хостинг
  • Issues (задачи)
  • Запросы на слияние
  • интеграции CI
  • Использование серверов с минимальными затратами ресурсов

Я настроил её для внутреннего корпоративного проекта, и разработчики оценили, насколько быстро и удобно всё работает.

Заключительные мысли

DevOps не обязательно должен быть дорогим.
Для большинства инструментов, которые профессионалы используют ежедневно, уже существуют мощные версии с открытым исходным кодом.

А самое главное?

Использование инструментов с открытым исходным кодом заставляет вас действительно понимать, как работает ваша инфраструктура.

Если вы прокачиваете навыки DevOps или модернизируете стек, начните с этих инструментов.
Они сэкономят вам деньги — и сделают вас лучшим инженером.

На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.