DevOps
Ir al canal en Telegram
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Mostrar más8 810
Suscriptores
-324 horas
+137 días
+1730 días
Carga de datos en curso...
Canales Similares
Nube de Etiquetas
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
agosto '26
agosto '26
+99
en 0 canales
julio '26
+130
en 0 canales
Get PRO
junio '26
+104
en 0 canales
Get PRO
mayo '26
+119
en 0 canales
Get PRO
abril '26
+151
en 0 canales
Get PRO
marzo '26
+221
en 4 canales
Get PRO
febrero '26
+103
en 0 canales
Get PRO
enero '26
+96
en 0 canales
Get PRO
diciembre '25
+80
en 0 canales
Get PRO
noviembre '25
+117
en 37 canales
Get PRO
octubre '25
+127
en 1 canales
Get PRO
septiembre '25
+142
en 36 canales
Get PRO
agosto '25
+178
en 0 canales
Get PRO
julio '25
+130
en 26 canales
Get PRO
junio '25
+180
en 19 canales
Get PRO
mayo '25
+205
en 46 canales
Get PRO
abril '25
+247
en 37 canales
Get PRO
marzo '25
+186
en 38 canales
Get PRO
febrero '25
+207
en 31 canales
Get PRO
enero '25
+210
en 33 canales
Get PRO
diciembre '24
+256
en 35 canales
Get PRO
noviembre '24
+234
en 33 canales
Get PRO
octubre '24
+226
en 29 canales
Get PRO
septiembre '24
+304
en 28 canales
Get PRO
agosto '24
+197
en 18 canales
Get PRO
julio '24
+191
en 1 canales
Get PRO
junio '24
+231
en 24 canales
Get PRO
mayo '24
+205
en 19 canales
Get PRO
abril '24
+172
en 0 canales
Get PRO
marzo '24
+257
en 21 canales
Get PRO
febrero '24
+258
en 17 canales
Get PRO
enero '24
+287
en 23 canales
Get PRO
diciembre '23
+293
en 23 canales
Get PRO
noviembre '23
+231
en 17 canales
Get PRO
octubre '23
+250
en 18 canales
Get PRO
septiembre '23
+202
en 0 canales
Get PRO
agosto '23
+229
en 0 canales
Get PRO
julio '23
+188
en 0 canales
Get PRO
junio '23
+164
en 0 canales
Get PRO
mayo '23
+189
en 0 canales
Get PRO
abril '23
+193
en 0 canales
Get PRO
marzo '23
+131
en 0 canales
Get PRO
febrero '23
+81
en 0 canales
Get PRO
enero '23
+140
en 0 canales
Get PRO
diciembre '22
+142
en 0 canales
Get PRO
noviembre '22
+172
en 0 canales
Get PRO
octubre '22
+152
en 0 canales
Get PRO
septiembre '22
+239
en 0 canales
Get PRO
agosto '22
+289
en 0 canales
Get PRO
julio '22
+447
en 0 canales
Get PRO
junio '22
+417
en 0 canales
Get PRO
mayo '22
+840
en 0 canales
Get PRO
abril '22
+1 487
en 0 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 26 agosto | 0 | |||
| 25 agosto | +3 | |||
| 24 agosto | +4 | |||
| 23 agosto | +1 | |||
| 22 agosto | +7 | |||
| 21 agosto | +8 | |||
| 20 agosto | +4 | |||
| 19 agosto | +5 | |||
| 18 agosto | +4 | |||
| 17 agosto | +6 | |||
| 16 agosto | +3 | |||
| 15 agosto | +1 | |||
| 14 agosto | +3 | |||
| 13 agosto | +4 | |||
| 12 agosto | +3 | |||
| 11 agosto | +5 | |||
| 10 agosto | +5 | |||
| 09 agosto | +2 | |||
| 08 agosto | +7 | |||
| 07 agosto | +4 | |||
| 06 agosto | +5 | |||
| 05 agosto | +2 | |||
| 04 agosto | +3 | |||
| 03 agosto | +3 | |||
| 02 agosto | +2 | |||
| 01 agosto | +5 |
Publicaciones del Canal
Netshoot — набор инструментов для устранения сетевых проблем с Docker и Kubernetes.
Отладка сетей Docker и Kubernetes может быть сложной. Однако при правильном понимании принципов работы сетей Docker и Kubernetes, а также наличии подходящих инструментов, вы сможете эффективно выявлять и устранять сетевые проблемы. Контейнер netshoot включает в себя мощный набор инструментов для диагностики сетевых проблем в Docker. Вместе с этими инструментами идут практические примеры, демонстрирующие, как netshoot можно использовать в реальных сценариях.
https://github.com/nicolaka/netshoot
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
| 2 | У нас есть инсайдерская инфа для девопсов и их руководителей.
17.09.26 в 12:00 технические лидеры Deckhouse объяснят, зачем объединили несколько продуктов в единую платформу, которая закрывает разные задачи — запуск контейнеров, виртуалок и ИИ-нагрузок в облаках, on-prem, edge и гибридной инфраструктуре. Расскажут, почему будущее принадлежит гибридной инфраструктуре и как её строить.
Даже если вы работаете не на уровне энтерпрайза, будет полезно услышать, к чему идёт рынок.
Регистрируйтесь и до встречи в прямом эфире | 578 |
| 3 | 🚨 Helm: как не сломать прод — 5 ошибок, которые делают все
Helm — must-have инструмент для деплоя в Kubernetes. Но даже опытные инженеры наступают на одни и те же грабли, особенно в проде. Разберём, какие ошибки чаще всего приводят к падениям и багам.
🔸 1. helm upgrade без флага --atomic
Без --atomic Helm не откатывает релиз при ошибке — в кластере остаётся полусломанное состояние.
Решение: всегда используйте --atomic на проде:
helm upgrade my-app ./chart --atomic --install
🔸 2. Забытый values.yaml с тестовыми значениями
Нередко инженеры коммитят values.yaml с включёнными debug-логами, выключенным HPA и отключённым SSL.
Решение:
* Разделяй values по окружениям (values-prod.yaml, values-staging.yaml)
* Используй .gitignore для временных файлов
* Применяй валидацию с helm-schema-gen
🔸 3. Не pinned зависимости в Chart.yaml
Если чарты-зависимости подтягиваются без фиксации версий (version: ^1.2.3), то обновления могут неожиданно всё сломать.
Решение:
Фиксируй зависимости чётко: version: 1.2.3 и контролируй обновления вручную.
🔸 4. Отсутствие pre-upgrade и post-upgrade хуков
Если приложение требует миграций БД или прогрева кэша, а хуки не заданы — велика вероятность получить нерабочий релиз.
Решение:
Определи хуки в templates/hooks.yaml:
apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-upgrade
🔸 5. Helm secrets хранятся в чистом виде в Git
Распакованный secrets.yaml в Git — это инцидент.
Решение:
* Используй helm-secrets с sops
* Шифруй secrets.yaml и расшифровывай только при деплое:
helm secrets upgrade my-app -f secrets.enc.yaml
✅ Вывод:
Helm — мощный, но не прощающий ошибок инструмент. Настрой atomic деплой, следи за values и зависимостями, автоматизируй pre/post-хуки и защищай секреты. Это минимальный чеклист для прод-готовности.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 566 |
| 4 | МТС Web Services приглашает инженеров DevOps и SRE на встречу 27 августа
В программе вечера:
Мастер-класс по мониторингу ИИ-приложений «Смотри, как думает агент» от платформы MWS RelyOps
«Как создать свой приватный enterprise-каталог операторов в закрытом сегменте» от Orion soft
«Опыт внедрения ИИ-агента, который сам решает тикеты техподдержки» от SRE-лида MWS
«Оптимистичный прогноз о навыках инженера в эпоху AI-native» от платформы MWS DevRails AI
Узнайте больше о программе и регистрируйтесь по ссылке.
До встречи!
erid: 2W5zFJoKBB7 | 610 |
| 5 | CI/CD без боли: оптимизация пайплайнов на GitHub Actions 🚀
GitHub Actions — мощный инструмент, но без оптимизации ваш пайплайн легко превратится в тормозную мясорубку. Разбираемся, как выжать максимум из CI/CD на GitHub.
Почему это важно:
Быстрые и надёжные пайплайны — ключ к высокой скорости доставки. Медленные сборки = потеря времени, нервов и денег.
1. Кэшируй разумно
Используй actions/cache для ускорения зависимостей, но не кэшируй всё подряд. Пример для Node.js:
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
⚠️ Ключ должен быть завязан на lock-файлы, иначе можно словить конфликты версий.
2. Делай job-ы параллельными
Разделяй пайплайн на независимые шаги — unit-тесты, линтеры, сборка. Добавляй needs: там, где реально нужно, а не везде.
3. Matrix strategy — must-have
Хочешь тестировать на разных версиях языка/ОС? Используй matrix:
strategy:
matrix:
node-version: [16, 18, 20]
Это масштабирует проверку без дублирования кода.
4. Отключи ненужные события
Не запускай воркфлоу на каждом чихе. Используй on: грамотно:
on:
push:
branches:
- main
pull_request:
paths:
- 'src/**'
Это поможет не перегружать runners.
5. Используй workflow_dispatch для ручных запусков
Иногда надо протестить пайплайн руками — не бойся добавить ручной триггер:
on:
workflow_dispatch:
6. Логи и таймауты — твои друзья
Добавляй timeout-minutes к job-ам и выводи ключевые логи через ::group:: и ::endgroup::, чтобы не утонуть в консоли.
Вывод:
Грамотно настроенный GitHub Actions экономит время и снижает головную боль. Избегай монолитных пайплайнов, кэшируй умно и тестируй только то, что нужно. Автоматизация — это про контроль, а не хаос.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 660 |
| 6 | Bruno — это новый, современный и удобный инструмент для работы с API. В отличие от Postman и аналогов, Bruno хранит все данные локально в виде обычных файлов и папок, что позволяет легко версионировать их с помощью Git.
Основные особенности:
- Локальное хранение данных без облака
- Полная совместимость с Git
- Высокая производительность и минималистичный интерфейс
- Открытый исходный код
https://github.com/usebruno/bruno
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 835 |
| 7 | 🚀 Подборка полезных 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 и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
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 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24 | 703 |
| 8 | Трюки для ускорения Docker-образов на проде
Контейнеры это сердце современных приложений. Но тяжёлые образы = медленные деплои и высокие затраты. Как ускорить образы без боли?
Мультистейдж билды - must have
Используй multi-stage builds, чтобы собрать приложение в одном контейнере, а продакшн-образ сделать минимальным:
# Сборка
FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app
# Продакшн
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]
Минимизируй базовые образы
Выбирай облегчённые базовые образы:
- alpine вместо ubuntu
- distroless для максимальной безопасности и минимального веса
Оптимизируй порядок слоёв
Чем выше изменяемость, тем ниже слой:
- Сначала COPY go.mod, npm package.json, установка зависимостей
- Потом COPY . . с кодом проекта
Это позволяет кэшировать большую часть слоёв даже при частых изменениях кода.
Чисть за собой
Всегда удаляй временные файлы и зависимости для сборки:
RUN apt-get install -y build-essential && \
make build && \
apt-get remove --purge -y build-essential && \
apt-get autoremove -y && \
apt-get clean
Сжимай образы
Используй docker-slim, он автоматически оптимизирует образ, удаляя всё ненужное:
docker-slim build --http-probe my-app:latest
Как применять и чего избегать
- В продакшне старайся держать образы <100MB
- Не добавляй лишние пакеты “на всякий случай”
- Проверяй образы на уязвимости: trivy image your-app:tag
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 916 |
| 9 | 💡McFly - это улучшенная история командной строки с возможностями поиска на основе временной оси, контекста и машинного обучения.
McFly заменяет стандартную историю bash с возможностью быстрого поиска по истории команд с учётом контекста текущего каталога, времени и других факторов. Он написан на Rust и работает в терминале с поддержкой fzf-подобного интерфейса.
• Поддерживает:
- Bash
- Zsh
- Fish
• Возможности:
- Умный поиск по истории команд.
- Учёт текущего каталога и других факторов.
- Простое подключение к вашему shell.
• Установка:
Доступен через Homebrew, AUR, Nix и другие.
https://github.com/cantino/mcfly
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 014 |
| 10 | 🚀 Ускоряем CI/CD пайплайны на GitHub Actions: кеширование по-взрослому
CI тормозит? Пайплайн гоняет npm install по 5 минут? Пора серьёзно поговорить о кешировании в GitHub Actions.
GitHub Actions — мощный инструмент, но без кеша даже самый простой билд превращается в черепаху. Разберёмся, как грамотно использовать actions/cache, чтобы выжать максимум скорости.
🔧 Основы кеширования
GitHub предоставляет официальный экшен actions/cache, который позволяет сохранять каталоги между запусками воркфлоу. Ключевое понятие здесь — ключ кеша (cache key).
Пример:
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
Что тут происходит:
- path — папка, которую кешируем (`~/.npm`).
- key — уникальный ключ, зависящий от lock-файла.
- restore-keys — запасной вариант, если точного совпадения ключа нет.
⚡ Трюки для ускорения
1. Разделяй кеш по задачам. Не пихай всё в один архив. Кешируй отдельно npm, node_modules, dist/ — это гибко и эффективно.
2. Для Docker-образов — кешируй слои. Используй BuildKit и флаг --cache-to, --cache-from. Пример:
- name: Build Docker image
run: |
docker buildx build \
--cache-from=type=gha \
--cache-to=type=gha,mode=max \
-t my-app .
3. Осторожно с ключами. Часто меняющийся ключ = каждый раз новый кеш = медленно. Сделай разумный баланс между стабильностью и свежестью.
4. Тестируй локально. Используй act, чтобы отлаживать воркфлоу на локалке — сэкономишь время и нервы.
✅ Вывод
Кеш в GitHub Actions — не волшебная пуля, но при правильной настройке он может сократить время CI в разы. Следи за размером кеша, обновляй ключи с умом и профилируй пайплайн. И не забывай: кеш — твой друг, пока ты его контролируешь.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 956 |
| 11 | Kubernetes: как не угробить прод с неправильными Liveness/Readiness пробыми 🧟♂️
Если ваши поды «умирают» слишком рано или слишком долго не проходят readiness, возможно, вы не до конца понимаете, как работают пробы в Kubernetes. А между тем, это критично для uptime и стабильности продакшена.
📌 Пробы - не «просто пинги»
- livenessProbe отвечает за "жив ли под". Если не проходит - kubelet убивает контейнер.
- readinessProbe - "готов ли под принимать трафик". Пока не готов - не пускается в сервис.
Неправильная настройка может привести к:
- бесконечным перезапускам (flapping),
- недоступности сервиса после деплоя,
- ненужной нагрузке на кластер.
🛠 Типичные ошибки
1. Тот же эндпоинт для обеих проб
Readiness может требовать больше инициализации. Разделяйте эндпоинты:
/healthz/live и /healthz/ready - хорошая практика.
2. Слишком агрессивные тайминги
initialDelaySeconds, timeoutSeconds, failureThreshold - не забывайте учитывать холодный старт (особенно при Java, .NET, DB init).
3. Тестирование только на dev/stage
На проде нагрузка выше, сеть может вести себя иначе. Профиль подов должен учитывать real-world сценарии.
4. Liveness вместо retries
Liveness не замена retry-логике в приложении. Используйте circuit breakers, retries и grace periods на уровне сервиса.
✅ Как делать правильно
- Используйте простые GET-запросы, без heavy логики.
- Не тестируйте зависимости (БД, внешние API) в liveness - пусть это останется за readiness.
- Применяйте terminationGracePeriodSeconds и preStop hook, чтобы избежать резкого отключения.
🧩 Стартовый шаблон для readiness/liveness
livenessProbe:
httpGet:
path: /healthz/live
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3
readinessProbe:
httpGet:
path: /healthz/ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3
Вывод: Настройка prob - это не ритуал ради YAML-а. Это инструмент стабильности и доступности. Подходите к ним осознанно, валидируйте на нагрузке и помните, что "здоровый" под ≠ "готовый к трафику".
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 886 |
| 12 | Wal-listener — это инструмент для прослушивания логов транзакций PostgreSQL (WAL) и конвертации их в удобный для обработки формат JSON.
Возможности
- Прослушивание изменений в PostgreSQL в режиме реального времени.
- Поддержка нескольких слотов репликации.
- Удобный вывод в формате JSON.
- Готов к использованию в качестве сервиса.
Пример использования
1. Создаём слот репликации:
SELECT * FROM pg_create_logical_replication_slot('test_slot', 'wal2json');
2. Запускаем wal-listener:
wal-listener --dsn "host=localhost port=5432 user=postgres dbname=test" --slot test_slot
3. Получаем JSON-объекты при изменениях в базе данных.
https://github.com/ihippik/wal-listener
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 961 |
| 13 | 🔍Тестовое собеседование с Head of DevOps уже завтра
18 августа(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle DevOps-разработчика.
Как это будет:
📂 Александр Хренников, Head of DevOps в KTS с опытом 14+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Александру
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для DevOps-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_devops_bot
Реклама.
О рекламодателе. | 1 009 |
| 14 | Kubernetes в проде: 7 ошибок, которые совершают даже опытные
Если ты деплоишь сервисы в Kubernetes, скорее всего, ты уже наступал на эти грабли. А если нет — вот чеклист, чтобы не наступить.
1. Не включён livenessProbe и readinessProbe
Без этих пробы Kubernetes не понимает, когда перезапустить контейнер или исключить под из сервисов. В итоге — трафик идёт в мёртвые инстансы, а ты ловишь 500-е.
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 10
2. resources.requests и limits не заданы
Если не выставить ресурсы, поды будут жрать всё подряд, а kube-scheduler может завалить ноды. Определи baseline и поставь лимиты с запасом:
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
3. Один replica на под в проде
Если у тебя только один реплика, ты не в HA. Любая перезагрузка = даунтайм. Минимум две — лучше три.
4. latest тег образа
image: myapp:latest — это лотерея. K8s не знает, что образ поменялся, и не перезапускает поды. Используй versioned теги (`v1.2.3`) или внедри CI, который автоматически делает новый тег и rollout.
5. Нет ограничений по PodDisruptionBudget
Без PDB можно случайно прибить все поды при drain'е ноды или апдейте. Добавь минимум 1 живой под:
minAvailable: 1
6. Логи в /var/log или вообще stdout игнорируется
Всё, что не идёт в stdout/stderr, теряется. Используй sidecar'ы или shipper'ы типа Fluent Bit, если хочешь нормальный логинг.
7. Секреты хранятся в plaintext в Git
Kubernetes Secret — это base64, а не шифрование. Либо используй sealed-secrets, либо интеграцию с HashiCorp Vault, SOPS или AWS KMS.
Вывод:
Даже базовые настройки могут сыграть злую шутку, если их игнорировать. Сделай себе шаблон Helm-чарта или Kustomize-паттерн, в котором всё это будет по умолчанию. И не забудь периодически пересматривать best practices — K8s развивается 🔄
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 024 |
| 15 | 🆕 Bun Shell - кроссплатформенный shell прямо в JavaScript
Bun Shell - это встроенный интерпретатор shell-команд в Bun, позволяющий писать скрипты на JavaScript/TypeScript с лаконичным синтаксисом:
import { $ } from "bun";
await $`ls *.js`;
Основные возможности:
• Кроссплатформенность: работает на Windows, macOS и Linux.
• Поддержка переменных, редиректов, пайпов и шаблонов.
• Безопасность: автоматическое экранирование переменных.
• Взаимодействие с объектами JavaScript: Response, ArrayBuffer, Blob.
• Встроенные команды: cd, rm, echo и другие.
Пример использования с переменной:
const filename = "example.txt";
await $`cat ${filename}`;
https://bun.sh/blog/the-bun-shell
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 159 |
| 16 | 🚀 Разворачиваем Kubernetes-кластер за 5 минут с помощью Proxmox и k3s!
Автор статьи показывает, как быстро поднять кластер с помощью Proxmox и лёгкого дистрибутива K3s. Всё максимально просто:
- Устанавливаем Proxmox VE
- Создаём шаблон VM с Ubuntu
- Автоматизируем деплой через cloud-init
- Настраиваем кластер K3s в пару кликов
🔥 Идеально для домашней лаборатории или быстрой отладки!
00:04 Introduction
00:18 Why Use Mini PCs Over Cloud Computing for Personal / Hobby Projects
01:13 Installing Proxmox and Setting Up Cluster
02:12 Creating a VM for Kubernetes Worker Node
03:38 Installing Kubernetes on Ubuntu Server
04:14 Joining the New Node to the Kubernetes Cluster
05:19 Potential Applications of Your New Setup
05:30 Upcoming Projects and Channel Focus
06:02 Measuring Power Consumption with a Smart Plug
06:07 Conclusion and Farewell
https://dev.to/mihailtd/set-up-a-kubernetes-cluster-in-under-5-minutes-with-proxmox-and-k3s-2987
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 423 |
| 17 | CI/CD в 3 раза быстрее: секреты оптимизации GitHub Actions
GitHub Actions - мощный инструмент, но даже продвинутые пайплайны часто работают медленнее, чем могли бы. Потери времени = потери денег и developer experience. Вот как ускорить ваши воркфлоу без потери функциональности.
1. Используйте concurrency и cancel-in-progress
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Это позволит отменять старые запуски одного и того же воркфлоу на той же ветке — особенно полезно при пушах в PR. Экономим минуты на каждом коммите.
2. Кешируйте всё, что можно
- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
То же касается node_modules, cargo, .m2, gradle — любые зависимости можно кэшировать, особенно если они скачиваются каждый раз.
3. Не бойтесь matrix + fail-fast: false
Запускайте параллельно всё, что можно: тесты на разных версиях языка, разных ОС, разных архитектурах.
strategy:
matrix:
python-version: [3.10, 3.11]
os: [ubuntu-latest, macos-latest]
fail-fast: false
4. Reusable workflows > копипаста
Выносите повторяющиеся шаги в отдельные .yml-воркфлоу и переиспользуйте их через workflow_call. Это упрощает поддержку и уменьшает ошибки.
5. Запускайте воркфлоу только при нужных событиях
on:
push:
branches: [main]
paths:
- 'src/**'
- '.github/workflows/**'
Зачем триггерить CI, если изменился только README?
Оптимизация CI/CD - это не про «поиграться с YAML». Это способ сэкономить время команды, ускорить релизы и избежать выгорания из-за бесконечного ожидания. Чем быстрее обратная связь - тем лучше продукт.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 362 |
| 18 | Случается, что компании внедряют ИИ неэффективно.
Испустя месяцы после запуска AI-инициатив бизнес всё ещё не видит результата.
На вебинаре «Экспресс 42» при поддержке «Онтико» за 60 минут покажем, почему дело не в выборе модели или AI-инструмента, а в организации процессов разработки. Разберём, как перейти от точечного использования ИИ к AI-native SDLC — подходу, который позволяет масштабировать ИИ-практики на всю команду и получать измеримый эффект.
Обсудим:
• почему AI не оправдывает ожиданий;
• как компании проходят путь от ИИ-помощника до AI-native SDLC;
• какие ошибки тормозят внедрение;
• что нужно изменить, чтобы ИИ стал частью процесса, а не инструментом для отдельных разработчиков.
14 августа, 12:00
👉🏻 Зарегистрироваться
Реклама. АО "ФЛАНТ". ИНН 7723661439. | 516 |
| 19 | Cilicon - это приложение для macOS, использующее фреймворк виртуализации Apple для создания, предоставления и запуска эфемерных виртуальных машин CI с производительностью, близкой к нативной. В настоящее время оно поддерживает Github Actions, Buildkite Agent, GitLab Runner и произвольные скрипты.
В зависимости от ваших настроек, вы сможете запустить свой собственный CI в считанные минуты 🚀.
https://github.com/traderepublic/Cilicon
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 224 |
| 20 | Kubernetes: правильный подход к ресурсным лимитам и requests
🔧 Часто недооценённая, но критичная тема для стабильности и производительности кластеров.
Неверные значения requests и limits приводят либо к перерасходу ресурсов, либо к OOM, Throttling и подам, которые бесконечно перезапускаются. Особенно больно это бьёт по продакшену.
🚀 Как правильно настраивать ресурсы:
1. Понимай разницу между requests и limits:
- requests — это гарантированный минимум, который получит контейнер.
- limits — это максимум, выше которого контейнер не сможет использовать (CPU throttling или OOMKill для памяти).
2. CPU — без жестких лимитов:
- Лучше не указывать limits.cpu, чтобы избежать throttling.
- Но обязательно ставь requests.cpu, чтобы kube-scheduler мог правильно распланировать нагрузку.
3. Memory — всегда с лимитом:
- Память не отбирается — контейнер либо получает всю, либо OOM.
- Обязательно ставь и requests.memory, и limits.memory.
4. Используй VPA (Vertical Pod Autoscaler):
- Он поможет подобрать адекватные значения ресурсов на основе истории.
- ⚠️ На проде использовать осторожно — часто в "recommendation only" режиме.
5. Метрики в помощь:
- Используй kubectl top, metrics-server, Prometheus/Grafana для анализа потребления.
- Наблюдай за container_cpu_usage_seconds_total, container_memory_usage_bytes.
6. Профилируй и оптимизируй:
- Легковесный nginx или sidecar не должен просить 500Mi памяти.
- Java-приложение без указанных лимитов съест весь узел.
🧠 Вывод:
Грамотно выставленные ресурсы — это баланс между надёжностью и эффективным использованием нод. Не копируй requests/limits вслепую из интернета — мерь, анализируй, настраивай под свой ворклоад.
📲 Мы в MAX
Подпишись 👉@i_DevOps | 1 393 |
