DevOps Star (Звезда Девопса)
2.16K subscribers
270 photos
210 videos
19 files
326 links
Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin

По всем вопросам @evgenycarter
Download Telegram
5 вариантов генерации конфигурационных файлов Shell-скриптами

Подготовка конфигурационных файлов из шаблонов — весьма распространённая задача системного администрирования. Решать её можно разными способами, каждый из которых хорош по-своему, здесь же мы рассмотрим, как это сделать с помощью Shell-скриптов.

https://habr.com/ru/companies/ruvds/articles/843048/

#devops #девопс

👉 @devops_star
👍1
DCGM-Exporter

Экспортер метрик NVIDIA GPU для Prometheus с использованием DCGM

Чтобы собирать метрики на узле с GPU, просто запустите контейнер dcgm-exporter:


docker run -d --gpus all --rm -p 9400:9400 nvcr.io/nvidia/k8s/dcgm-exporter:3.3.8-3.6.0-ubuntu22.04
curl localhost:9400/metrics
# HELP DCGM_FI_DEV_SM_CLOCK SM clock frequency (in MHz).
# TYPE DCGM_FI_DEV_SM_CLOCK gauge
# HELP DCGM_FI_DEV_MEM_CLOCK Memory clock frequency (in MHz).
# TYPE DCGM_FI_DEV_MEM_CLOCK gauge
# HELP DCGM_FI_DEV_MEMORY_TEMP Memory temperature (in C).
# TYPE DCGM_FI_DEV_MEMORY_TEMP gauge
...
DCGM_FI_DEV_SM_CLOCK{gpu="0", UUID="GPU-604ac76c-d9cf-fef3-62e9-d92044ab6e52"} 139
DCGM_FI_DEV_MEM_CLOCK{gpu="0", UUID="GPU-604ac76c-d9cf-fef3-62e9-d92044ab6e52"} 405
DCGM_FI_DEV_MEMORY_TEMP{gpu="0", UUID="GPU-604ac76c-d9cf-fef3-62e9-d92044ab6e52"} 9223372036854775794
...


https://github.com/NVIDIA/dcgm-exporter

#devops #девопс

👉 @devops_star
👍1
Настраиваем работу конвейера CI/CD (почти) без рук. Опыт использования Orchestra R в энтерпрайзе

Компании, что используют Jenkins в качестве CI/CD‑инструмента, обычно делают несколько экземпляров, если в разработке участвует множество команд или приходится работать с большим количеством проектов. При этом оркестрация Jenkins-ов в командах — не самая простая работа, а во многом ещё и рутинная. С одной стороны, сложно соблюдать все требования сборки и тестирования и вовремя находить согласующих. С другой, одним скриптом невозможно решить всю задачу от получения доступов до вывода релизов в эксплуатацию.

Есть правило, что если система становится слишком сложной, то люди чаще ищут способы обойти алгоритмы, а не следовать им. Чтобы не усложнять систему, а разложить всё по ролям и этапам, мы пришли к созданию собственного инструмента — Orchestra R. С его помощью мы хотели не только автоматизировать работу конвейера CI/CD, но и упростить жизнь всех DevOps‑инженеров. В этом материале поделимся особенностями работы инструмента и опытом эксплуатации в СберТехе.

https://habr.com/ru/companies/sberbank/articles/855556/

#devops #девопс

👉 @devops_star
👍1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Docker vs. Kubernetes. Что мы должны использовать?

Что такое Docker?
Docker - это платформа с открытым исходным кодом, которая упрощает создание, распространение и запуск приложений с помощью контейнеров. Она позволяет создавать легкие, переносимые, самодостаточные контейнеры из любого приложения со всеми его зависимостями.

Что такое Kubernetes?
Kubernetes, также известная как K8s, - это система с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнерными приложениями. Она группирует контейнеры, из которых состоит приложение, в логические блоки для удобства управления и обнаружения в кластере машин. Для запуска контейнеров в Kubernetes используются не Docker Engine, а такие среды выполнения контейнеров, как containerd и CRI-O.

Чем они отличаются?
Docker ориентирован на автоматизацию создания и развертывания отдельных контейнеров на одном узле. Хотя он может управлять коллекциями контейнеров с помощью Docker Swarm, он более ограничен по сравнению с Kubernetes с точки зрения масштабируемости и возможностей.

Kubernetes продвинулась дальше в области оркестровки контейнеров, управляя кластерами узлов, на которых работают Linux-контейнеры. Она обеспечивает планирование, балансировку нагрузки и предоставляет надежную платформу для автоматизации развертывания, масштабирования и обеспечения требуемого состояния приложений.

Таким образом, Docker отлично справляется с управлением контейнерами на одной системе, а Kubernetes предназначен для управления и масштабирования многоконтейнерных приложений в кластерах.

#devops #девопс

👉 @devops_star
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Cilicon - это приложение для macOS, использующее фреймворк виртуализации Apple для создания, предоставления и запуска эфемерных виртуальных машин CI с производительностью, близкой к нативной. В настоящее время оно поддерживает Github Actions, Buildkite Agent, GitLab Runner и произвольные скрипты.

В зависимости от ваших настроек, вы сможете запустить свой собственный CI в считанные минуты 🚀.


https://github.com/traderepublic/Cilicon

#devops #девопс

👉 @devops_star
👍1
SLD (Stack-Lifecycle-Deployment)

OpenSource решение для самообслуживания инфраструктуры, которое определяет и управляет полным жизненным циклом ресурсов, используемых и развёртываемых в облаке! Это интерфейс для Terraform с REST API для автоматизации Terraform и OpenTofu.

https://github.com/D10S0VSkY-OSS/Stack-Lifecycle-Deployment

#devops #девопс

👉 @devops_star
👍21
Pghero

Панель управления производительностью для Postgres

https://github.com/ankane/pghero

#devops #девопс

👉 @devops_star
👍1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
1🤮1💩1
Для чего используется Kubectl?

kubectl — это командная утилита для взаимодействия с Kubernetes-кластером. Она используется для выполнения различных операций по управлению кластерами и развертыванию приложений. С kubectl можно выполнять следующие задачи:

1. Управление ресурсами: создавать, обновлять и удалять ресурсы в кластере (например, Pod, Deployment, Service).
2. Мониторинг и отладка: просматривать информацию о текущем состоянии ресурсов и кластера, диагностировать проблемы.
3. Запуск команд в кластере: запускать команды внутри контейнеров, например, для проверки их состояния или выполнения отладочных задач.
4. Обновление приложений: управлять версиями и состоянием развернутых приложений, поддерживать их обновление и масштабирование.
5. Настройка кластера: управлять конфигурациями, такими как сетевые настройки и политика безопасности.

Пример команды kubectl для получения списка всех подов в текущем пространстве имён:


kubectl get pods


Эта команда возвращает информацию обо всех запущенных подах, их состоянии и доступных IP-адресах.

#devops #девопс

👉 @devops_star
👍1
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.


#devops #девопс

👉 @devops_star
👍1
Unused

CLI-инструмент, экспортер для Prometheus и модуль на Go для перечисления неиспользуемых дисков во всех облачных провайдерах

Этот репозиторий содержит библиотеку на Go для поиска ваших неиспользуемых постоянных дисков у разных облачных провайдеров, а также бинарные файлы для отображения этой информации в CLI или экспорта метрик для Prometheus.

В Grafana Labs мы размещаем рабочие нагрузки у разных облачных провайдеров. Оркестрация рабочих нагрузок управляется Kubernetes, и мы обнаружили, что из-за некоторых ошибок в конфигурации системы хранения у нас накапливалось множество неиспользуемых ресурсов, особенно постоянных дисков. Эти утечки ресурсов стоят денег, и, поскольку эти ресурсы больше не используются, это приводит к финансовым потерям. Эта библиотека и сопутствующие инструменты помогут вам определить такие ресурсы и очистить их.

https://github.com/grafana/unused

#devops #девопс

👉 @devops_star
👍1
Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?

Docker базируется на технологиях:

🔸 namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
🔸 cgroups — позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities — позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces — (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.

Компоненты докера:

🔻 Docker Daemon — тот самый Container Engine; запускает контейнеры.
🔻 Docker CLI — утилита по управлению Docker.
🔻 Dockerfile — инструкция по тому, как собирать образ.
🔻 Image — образ, из которого раскатывается контейнер.
🔻 Container
🔻 Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.

#devops #девопс

👉 @devops_star
👍1
Для чего нужна команда git commit --amend?

Команда git commit --amend используется для изменения последнего коммита в локальном репозитории. Она позволяет исправить сообщение коммита, добавить в него изменения, которые не были учтены, или удалить файлы, которые не должны были быть в коммите.

Основные случаи использования:

1. Изменение сообщения коммита: если было допущено опечатку или необходимо уточнить содержание сообщения коммита.

git commit --amend -m "Новое сообщение коммита"


2. Добавление изменений в последний коммит: если были забыты изменения, которые нужно включить в последний коммит, можно их добавить, выполнить git add для этих файлов и затем git commit --amend, чтобы объединить их с предыдущим коммитом.

3. Удаление ненужных файлов: если случайно добавлен лишний файл, можно удалить его с помощью git rm, затем выполнить git commit --amend, чтобы пересобрать коммит без этого файла.

После выполнения git commit --amend создается новый коммит с измененной историей, что важно помнить, если работа ведется в команде.

#devops #девопс

👉 @devops_star
3👍1
Sudo без бинарного setuid или SSH через UNIX-сокет

В этом посте я подробно расскажу, как заменить sudo (программу с setuid), используя SSH через локальный UNIX-сокет.

Я считаю, что программы с setuid / setgid — это устаревшая часть наследия UNIX, которую следует исключить. В будущем посте я объясню причины безопасности, стоящие за этим утверждением.

Это связано с работой группы Confined Users SIG в Fedora.

https://tim.siosm.fr/blog/2023/12/19/ssh-over-unix-socket/


#devops #девопс

👉 @devops_star
👍1
Деплой больших инфраструктур в Yandex Cloud: как минимизировать риски и ошибки

Привет, я Алексей Колосков, DevOps‑инженер Hilbert Team. Сегодня я расскажу вам историю о компании, которая из маленькой облачной инфраструктуры выросла до сложного решения с использованием Infrastructure as Code (IaC) и Terraform. И, как это часто бывает, в процессе роста учли не всё. Все персонажи вымышлены и любые совпадения случайны (ну, почти).

В этой статье покажу грабли, на которые можно наступить при росте облачной инфраструктуры, и расскажу, как их обойти.

https://habr.com/ru/companies/yandex_cloud_and_infra/articles/858704/

#devops #девопс

👉 @devops_star
👍2
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
👎4
Media is too big
VIEW IN TELEGRAM
Правильный DevOps для Spring Boot и Java
Рустам Курамшин

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

источник

#devops #девопс

👉 @devops_star
👍1
Teller — универсальный open-source менеджер секретов для разработчиков

Больше не нужно покидать терминал, чтобы использовать секреты при разработке, тестировании и создании приложений.

Вместо использования кастомных скриптов, токенов в файлах .zshrc, видимых команд EXPORT в истории bash, ошибочно размещенных файлов .env.production и других уязвимостей на рабочей станции, просто используйте Teller и подключите его к любому хранилищу секретов, ключевому хранилищу или облачному сервису, который вам нужен (Teller поддерживает HashiCorp Vault, AWS Secrets Manager, Google Secret Manager и многие другие).

Вы можете использовать Teller для упорядочения своего окружения или внедрения его как процесса и лучшей практики для вашей команды.

https://github.com/tellerops/teller

#devops #девопс

👉 @devops_star
👍1
Собрали основные концепции Docker в одну диаграмму

#devops #девопс

👉 @devops_star
👍2