loose_code | Unsorted

Telegram-канал loose_code - DevOps Portal | Linux

11687

Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Связь: @devmangx № 5581790357

Subscribe to a channel

DevOps Portal | Linux

Kubernetes 1.33 (кодовое имя Octarine) был выпущен чуть более двух недель назад

В релиз вошли 64 улучшения (!!), поэтому полезно иметь краткий и наглядный обзор.

Визуальный разбор Kubernetes 1.33:
https://dev.to/aurelievache/understanding-kubernetes-part-55-kubernetes-133-changelog-1k5l

Подробности о релизе доступны в официальных примечаниях к релизу Kubernetes 1.33 и релиз-нотах GKE 1.33.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Если вы инженер DevOps и ещё не слышали о метриках DORA — пора это исправить.

DORA расшифровывается как DevOps Research and Assessment (исследование и оценка практик DevOps).

Эта команда стоит за отчётом State of DevOps — ключевым источником информации о том, что действительно отличает высокоэффективные инженерные команды.

Но как метрики DORA применяются в реальных командах?

Вот как их можно отслеживать и даже создавать дашборды для визуализации:

🔹Частота деплоев (Deployment Frequency):
Отслеживайте количество деплоев через вашу CI/CD-платформу (GitHub Actions, GitLab, Jenkins и т.д.). Отправляйте данные о деплоях в систему метрик, такую как Prometheus, Datadog или даже Google Sheets через webhook.

🔹Время выполнения изменений (Lead Time for Changes):
Используйте временные метки Git-коммитов и событий деплоя в прод. Интегрируйте инструменты вроде Jira с GitHub или GitLab. Данные можно визуализировать в Grafana или Looker.

🔹Процент неудачных изменений (Change Failure Rate):
Интегрируйте инструменты управления инцидентами (PagerDuty, Opsgenie и т.д.) с логами деплоя. Коррелируйте инциденты с последними релизами. Это можно отслеживать в Grafana, Datadog или даже в Excel (для небольших команд).

🔹Время восстановления сервиса (Time to Restore Service):
Используйте системы алёртов, такие как Prometheus Alertmanager, Splunk или New Relic. Измеряйте время от срабатывания алёрта до полного устранения инцидента. Визуализируйте тренды на дашборде для контроля MTTR (среднего времени восстановления).

🔹Надёжность (Reliability):
Определите SLO (например, аптайм 99.9%) и отслеживайте их с помощью мониторинга SLI/SLO в Prometheus, Datadog или Nobl9. Визуализируйте бюджеты ошибок и аптайм во времени.

Инструменты вроде Grafana, Looker, Power BI или Tableau отлично подходят для создания кастомных дашбордов.

Не обязательно внедрять всё сразу.

Выберите одну метрику. Постройте простой дашборд. И постепенно улучшайте подход.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Когда-нибудь хотелось просто «запрыгнуть» в работающий Docker-контейнер?

Именно для этого и существует docker exec

Нужно отладить что-то или посмотреть логи?

exec позволяет запускать любые команды внутри контейнера без его перезапуска.

На фото краткая шпаргалка, которая точно пригодится

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Не позволяйте одному контейнеру съедать всю память сервера

Устанавливайте ограничения по памяти в Docker с помощью флага --memory или в файле Compose.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Недавно Docker добавил новую функциональность под названием Docker Bake, которая предназначена для управления сложными сборками

Если у вас есть разные сборки для различных стадий CI, таких как lint, test и другие, этот инструмент поможет вам управлять сборками в более декларативной и упрощённой форме.

Также он подходит для проектов, использующих monorepo-архитектуру, но с разнообразными сборками.

Отлично совместим с docker-compose.

Docker Bake теперь официально доступен в Docker Desktop 4.38!

Подробнее в блоге Docker: https://www.docker.com/blog/ga-launch-docker-bake/

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Ошибка в безопасности Docker, которую упускают даже сеньоры:

Не добавлять файл .dockerignore с исключением .env — огромный риск.

Если не исключить .env из процесса сборки Docker, переменные окружения, включая API-ключи, учетные данные к БД и другие секреты, попадают прямо в образ.

Совет: всегда добавляйте .env и другие чувствительные файлы в .dockerignore.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Быстрый совет по Docker Compose

Обновление версии образа у запущенного контейнера

Да, это возможно в Docker и практически без простоев.

В блоке services необходимо определить параметры deploy (как на изображении выше). Важным параметром здесь является order. Он указывает Docker сначала создать и запустить новый контейнер с обновлённой версией образа. После запуска нового контейнера трафик будет перенаправлен на него, а старый контейнер будет остановлен и удалён.

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

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

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Nerdlog — tui-инструмент для работы с логами на локальных и удалённых хостах.

🔹Не требует централизованного сервера — взаимодействие с удалёнными машинами происходит через SSH

🔹Логи не скачиваются целиком — обработка выполняется на удалённой стороне, в интерфейс передаётся уже результат

🔹Для удобства просмотра реализованы таймлайн и гистограмма

Статья с подробностями: dmitryfrank.com/projects/nerdlog/article
Репозиторий: github.com/dimonomid/nerdlog

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

После многих лет использования NGINX в проектах на Docker Compose, автор решил перейти на
traefik — и отмечает, что это стало одним из лучших решений в области DevOps за всё время.

В своём блоге он подробно описывает полную настройку, что изменилось и почему использование Traefik значительно упрощает работу.

Traefik из коробки предоставляет:

Автоматическую маршрутизацию на основе меток контейнеров
Встроенный HTTPS через Let’s Encrypt
Дашборд в реальном времени для маршрутов и сервисов
Балансировку нагрузки с поддержкой "липких" сессий
Нативную интеграцию с Prometheus для сбора метрик
Отсутствие необходимости вручную поддерживать конфигурационные файлы

Ссылка на блог:
prateekjain.dev/why-i-replaced-nginx-with-traefik-in-my-docker-compose-setup-32f53b8ab2d8" rel="nofollow">https://medium.com/@prateekjain.dev/why-i-replaced-nginx-with-traefik-in-my-docker-compose-setup-32f53b8ab2d8

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Самый распространённый способ запустить контейнер — использовать Docker CLI. Но что именно делает команда docker run? Чем она отличается от:

🔹 podman run

🔹 nerdctl run

🔹 ctr run

🔹 runc create/start

Мини-курс, чтобы научиться запускать контейнеры с разными рантаймами:
https://labs.iximiuz.com/skill-paths/run-containers-across-runtimes

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Список часто используемых команд Kamal

Хотя перечень не является полным, он охватывает наиболее распространённые задачи

🔹Команда инициализации используется для создания конфигурационных и секретных файлов один раз после добавления Kamal в проект.

$ kamal init


🔹Установка Docker на всех целевых хостах
$ kamal server


🔹 Алиасы

Kamal предоставляет kamal shell из коробки. Я обычно добавляю kamal console для быстрого доступа к Rails-консоли.
$ kamal shell [-d production]
# app exec -i --reuse "bin/rails console"
$ kamal console [-d production]


🔹 Деплой приложения [в staging-окружение]
$ kamal deploy [-d staging]


🔹Откат приложения до VERSION [в staging-окружении]
$ kamal rollback [VERSION] [-d staging]


🔹 Сборка образов
Большую часть времени вы не будете использовать команду kamal build напрямую,
так как она в основном используется в kamal deploy и kamal redeploy.
Тем не менее, вы можете использовать её для сборки образа без его пуша, что удобно для тестирования.
$ kamal build dev


🔹 Ниже приведены несколько команд для чтения логов приложения и его аксессуаров
$ kamal app logs [--roles=web -n 100 -f]
$ kamal app logs [--primary -n 100 -f]
$ kamal app logs [--hosts=<ip_address> -n 100 -f]
$ kamal audit


🔹 Логи аксессуара PgHero [в staging-окружении]
bash
$ kamal accessory logs pghero [-d staging]```

🔹 Логи прокси-сервера [в staging-окружении]
$ kamal proxy logs [-d staging]


🔹 Показать объединённую конфигурацию (включая секреты) [для staging-окружения].

Полезно для отладки и если вы забыли IP-адрес сервера.
$ kamal config [-d staging]


🔹 Вывести секреты в stdout [для staging-окружения]
$ kamal secrets print [-d staging]


🔹 Показать информацию обо всех контейнерах, сгруппированных по ролям [для staging-окружения]
$ kamal details [-d staging]


🔹 Показать только контейнеры приложения [в staging-окружении], [например, для web-ролей]
$ kamal app details [-d staging] [--roles=web]


🔹 Показать только контейнеры аксессуара PgHero [в staging-окружении]
$ kamal accessory details pghero -d staging


👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Совет дня по Linux

Многие либо не знают об этом, либо почти не используют.

В Linux вы можете нажать ~TAB TAB, чтобы быстро получить список всех доступных пользователей в системе.

$ ~TAB TAB


👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Как (и зачем) использовать containerd? 🧐

containerd — вероятно, самый широко используемый контейнерный рантайм:

🔹Docker использует его под капотом для запуска контейнеров и хранения образов.

🔹Kubernetes использует его как CRI-рантайм для запуска Pod'ов.

Практикуйтесь в работе с containerd: https://labs.iximiuz.com/courses/containerd-cli

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Sysadmin vs DevOps 😁

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Калькулятор Chmod

Отличный калькулятор Chmod для преобразования прав доступа к файлам Linux между различными форматами.

https://chmod-calculator.com/

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Освойте деплойменты в Kubernetes

Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы — от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.

Отлично подходит для практики реальных операций, стоящих за kubectl apply/create и kubectl rollout.

Попробуйте здесь

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Утилита для мониторинга передачи данных

Недавно я занимался миграцией веб-сайта, в рамках которой нужно было вручную перенести данные из SQL-файла на ноутбуке в новую базу данных MySQL (RDS). Размер файла составлял примерно 450 МБ.

Мне нужно было отслеживать прогресс импорта, и я узнал об утилите Pipe Viewer (pv).

Pipe Viewer, или просто pv, — это инструмент командной строки, позволяющий отслеживать прогресс передачи данных.

Вот команду, которую я использовал:

pv backup.sql | mysql -h rds.amazonaws.com -u bibinwilson -p my_db


Пример вывода:
80.0MiB 0:08:36 [ 158KiB/s]
[==================================>] 100%

Утилиту можно встроить в любой стандартный конвейер (pipeline) между двумя процессами, чтобы наглядно отображать скорость передачи данных, затраченное время, степень завершённости и примерное оставшееся время до окончания операции.

Возможности:

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

Утилиту необходимо установить через соответствующий пакетный менеджер.

Инструмент: https://ivarch.com/programs/pv.shtml

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Многие DevOps-инженеры не до конца понимают структуру директории Ansible и то, как всё связано между собой.

Вот шпаргалка, которая поможет лучше разобраться

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Хакатон «ВНЕДРЕЙД» от Orion soft собирает 300 сильнейших представителей ИТ-касты, готовых штурмовать инфру Т‑Банка, Авито, Lamoda, CDEK и Магнита.

48 часов кода, драйва и никаких ограничений. После 22:00 карета превращается в тыкву, а внедрейд во внедрейв: темные окна, светлые головы и вечно горячий роутер.

Когда? 7-8 июня
Где? Москва, «Суперметалл»
Приз — экспедиция на Эльбрус для всей команды

Присоединяйся к штурму бигтеха: [Подать заявку]

Читать полностью…

DevOps Portal | Linux

Быстрый совет по Linux

Хватит управлять SSH-подключениями вручную!

Используй блоки Host в ~/.ssh/config.

С конфигом, как ниже, достаточно просто:

$ ssh dev-server


👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Основы сетевых пространств имён в Linux

Прежде чем переходить к Docker и Kubernetes, стоит разобраться в базовых технологиях:

🔹Создание сетевого пространства имён в Linux: https://labs.iximiuz.com/challenges/linux-network-namespace

🔹Соединение двух сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-two-network-namespaces

🔹Соединение нескольких сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-multiple-network-namespaces

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Быстрый совет по Linux

Если у вас возникают проблемы с чтением каталогов в переменной $PATH, используйте команду tr, чтобы заменить двоеточия (":") на символы новой строки ("\n"), чтобы отобразить их построчно:

$ echo $PATH | tr ":" "\n"


👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Быстрый совет по Bash: массовое переименование файлов с помощью rename

Команда rename позволяет заменить один шаблон на другой сразу в нескольких именах файлов. В этом примере все расширения файлов .html в текущем каталоге преобразуются в .php.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Оказывается, чтобы расти в доходе в ML и IT, недостаточно закончить топовый матфак, работать 24/7 и знать все фреймворки мира

Да, это круто, но это – далеко не главное. На самом деле чаще всего выигрывают люди с прокаченным софт скиллами – те, кто уверенно ведет диалог и грамотно доносит ценность своих решений.

Вот вам пример: Senior ML-инженер Олег Андриянов рассказывает в своем канале, как его доход вырос за 4 года в 12,5 раз. В блоге куча крутых статей, вот наш топ-3:

Как гарантированно повысить свою зарплату?

– 
Какие 2 ключевых софт-скилла делают тебя на голову выше конкурентов на рынке труда?

– 
Как Олегу удалось вырасти в доходах в 12,5 раз за 4 года?

У автора большой опыт руководителя, так что он знает, чего хочет от сотрудника индустрия, и в его канале – не фантазии, а настоящие практические инструменты, которые помогут быстрее достичь карьерных целей.

Подписывайся, если хочешь стать незаменимым в любой IT-команде: @andriyanov_leads

Реклама. СЗ Волков Д.Д. ИНН: 370701873479, erid: 2Vtzqwy7BPx

Читать полностью…

DevOps Portal | Linux

Как работают email протоколы?

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Никогда не открывайте порты в Docker-контейнерах следующим образом:

ports:
- "3000:3000"


Такое конфигурирование позволяет контейнеру обходить любые правила брандмауэра, настроенные на хосте. Если необходимо обеспечить внешний доступ к контейнеру, делайте это так:

ports:
- "127.0.0.1:3000:3000"


Такая конфигурация привязывает сервис к localhost, предотвращая доступ к нему извне по адресу ip:3000.

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

26 сетевых протоколов, которые нужно знать

FTP (20/21, TCP) — Протокол передачи файлов: используется для передачи файлов между клиентом и сервером.

SFTP (22, TCP) — Защищённый протокол передачи файлов: FTP по SSH для безопасной передачи файлов.

TFTP (69, UDP) — Упрощённый протокол передачи файлов: простой, незащищённый протокол передачи файлов.

SSH (22, TCP) — Secure Shell: защищённый удалённый вход и выполнение команд.

TELNET (23, TCP) — Teletype Network: незащищённый удалённый вход и выполнение команд.

SMTP (25, TCP) — Простой протокол передачи почты: используется для отправки электронной почты.

SMTPS (587, TCP) — SMTP через TLS: SMTP поверх Transport Layer Security (TLS) для защищённой передачи электронной почты.

POP3 (110, TCP) — Post Office Protocol v3: получение электронной почты путём её загрузки с сервера.

POP3S (995, TCP) — POP3 через SSL: защищённый POP3 для получения электронной почты.

IMAP (143, TCP) — Протокол доступа к сообщениям Интернета: доступ к электронной почте напрямую на сервере.

IMAPS (995, TCP) — IMAP через SSL: защищённый IMAP-доступ к почте.

HTTP (80, TCP) — Протокол передачи гипертекста: незащищённый веб-сёрфинг.

HTTPS (443, TCP) — Безопасный протокол передачи гипертекста: защищённый веб-сёрфинг через SSL или TLS.

DNS (53, TCP/UDP)
— Система доменных имён: используется для преобразования доменных имён в IP-адреса.

DHCP (67/68, UDP) — Протокол динамической настройки хоста: используется для динамического назначения IP-адресов.

NTP (123, UDP) — Протокол сетевого времени: синхронизация часов по сети.

LDAP (389, TCP) — Протокол лёгкого доступа к каталогам: доступ и управление информацией каталогов.

LDAPS (636, TCP/UDP) — LDAP через SSL: используется для защищённого доступа к LDAP.

SNMP (161/162, UDP) — Протокол простого управления сетью: используется для мониторинга и управления сетевыми устройствами.

SYSLOG (514, UDP) — Системное логирование: протокол и система журналирования сетевых событий.

SMB (445, TCP) — Протокол серверных сообщений: совместное использование файлов и сетевые коммуникации.

SQL (1433, TCP) — Язык структурированных запросов (SQL): управление БД от Microsoft.

SQLNET (1521, TCP) — SQLNET (служба Oracle Network): обеспечивает взаимодействие клиентов Oracle SQL с сервером баз данных Oracle.

MySQL (3306, TCP) — MySQL: сервер базы данных MySQL.

RDP (3389, TCP/UDP) — Протокол удалённого рабочего стола: удалённый доступ к рабочему столу.

SIP (5060/5061, TCP/UDP) — Протокол установления сеансов: используется для управления мультимедийными сессиями связи.


👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Если хочется влюбиться в профессию заново, Создайте курс для Яндекс Практикума!

Яндекс Практикум — сервис современного онлайн-образования, где обучают актуальным цифровым профессиям. Сейчас есть возможность присоединиться к команде в качестве автора.

Роль автора подойдёт тем, кто любит погрузиться с головой в контент — разрабатывать уроки, задания, тесты, чек-листы, памятки, квизы; нагрузка от 10 часов в неделю.

Условия сотрудничества — комфортные:
• дополнительный доход, удалёнка,
• возможность строить программу по своему усмотрению,
• команда, где ценятся как знания, так и мемы.

Посмотрите, что ожидают от кандидата, и откликайтесь, если интересно:

Роль автора DevOps
Роль автора DevSecOps

Читать полностью…

DevOps Portal | Linux

Виртуальная машина vs Контейнеры

👉 DevOps Portal

Читать полностью…

DevOps Portal | Linux

Многие инженеры по Kubernetes до конца не понимают, как работает автоскейлинг в Kubernetes и в чём разница между HPA, VPA и KEDA.

Вот инфографика, чтобы помочь вам лучше разобраться.

👉 DevOps Portal

Читать полностью…
Subscribe to a channel