ch
Feedback
DeVops Библиотека

DeVops Библиотека

前往频道在 Telegram

Гайды, уроки и книги для Devops специалситов по всем вопросам @workakkk

显示更多
9 406
订阅者
+324 小时
+127
-3630
帖子存档
🐧 Лайфхак по Linux, который реально экономит время Команда find умеет не только искать файлы, но и сразу что-то с ними делат
🐧 Лайфхак по Linux, который реально экономит время Команда find умеет не только искать файлы, но и сразу что-то с ними делать через -exec. Пример: $ find ~/ -type f -exec ls -lah {} \; Что происходит: find находит все файлы и для каждого запускает ls, показывая права, размер и метаданные. Как работает -exec: - exec ls - команда, которую нужно выполнить - -lah - формат вывода (права, скрытые файлы, размеры) - {} - подставляет имя каждого найденного файла - \; - завершает команду (экранируем, иначе shell сломает) Полезно, когда нужно применить одно действие к куче файлов в разных местах. Важно: вместо \; можно использовать + тогда команда будет применяться сразу к группе файлов — быстрее и эффективнее Пример с несколькими командами: $ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \; Считает слова и сразу показывает размер каждого файла. Сохрани — это база для работы с файлами в Linux.

Prometheus на пальцах: как устроен главный инструмент мониторинга 🔍 Разбираем архитектуру Prometheus без лишней теории - только суть: 1. Discovery & Retrieval Автоматически находит сервисы (например, в Kubernetes) и начинает собирать с них метрики. 2. Prometheus Server Главный мозг системы - ходит по таргетам, собирает данные, обрабатывает и управляет хранением. 3. TSDB Встроенная time-series база, где лежат все метрики - быстро отвечает как на realtime, так и на исторические запросы. 4. Pushgateway Нужен для короткоживущих задач - они пушат метрики перед завершением. 5. Exporters Адаптеры для сторонних систем - превращают их метрики в понятный для Prometheus формат. 6. Alertmanager Следит за правилами и шлёт алерты в Slack, почту и другие каналы. 7. PromQL + Grafana Пишешь запросы, строишь графики, собираешь дашборды. https://www.youtube.com/shorts/zix3HbQ96qc

⚡️ Чек-лист для твоего Linux сервера Перед тем как ставить проекты и открывать порты - приведи сервер в порядок. Мой чек-лист на первые 10 минут: - обнови систему и поставь базовые утилиты - создай отдельного пользователя и запрети root-login по SSH - включи firewall (UFW) и открой только нужные порты - настрой SSH-ключи вместо пароля - включи авто-обновления безопасности - зафиксируй таймзону и проверь логи - поставь fail2ban, чтобы брутфорс не убил сервер за ночь Это база, которая спасает 90% проблем на проде.

sudo apt update && sudo apt -y upgrade

sudo apt -y install htop curl wget git ufw fail2ban unattended-upgrades

sudo timedatectl set-timezone Asia/Bangkok

sudo adduser deploy && sudo usermod -aG sudo deploy

sudo ufw allow OpenSSH && sudo ufw allow 80,443/tcp && sudo ufw --force enable

sudo sed -i 's/^#?PasswordAuthentication./

PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?PermitRootLogin./PermitRootLogin no/' /etc/ssh/sshd_config

sudo systemctl restart ssh
sudo dpkg-reconfigure --priority=low unattended-upgrades
sudo systemctl enable --now fail2ban

🔐 Большинство курсов по кибербезопасности учат определения. Этот курс на Stepik учит думать как хакер. SQL-инъекции, XSS, CS
🔐 Большинство курсов по кибербезопасности учат определения. Этот курс на Stepik учит думать как хакер. SQL-инъекции, XSS, CSRF, эксплуатация бинарников, обход аутентификации - не в теории, а через живые задачи с реальными payload'ами. В финале - полноценный пентест-проект с CVSS-оценками и отчётом, как у профессиональных команд безопасности. Нулевой опыт? Не страшно. Всё - в легальной изолированной среде, с нуля до уровня пентест-собеседования. 👉 Начни здесь → https://stepik.org/a/279968/

Ты думаешь языки программирования - это просто код? На самом деле у каждого есть своя родина. C, Java, Go, Rust - все родились в США. Python - из Нидерландов. Kotlin - Россия. Ruby - Япония. Scala - Швейцария. Фактически весь стек, на котором держится современный интернет - это глобальная сборка идей со всего мира. И чем дальше, тем сильнее это смешивается. Сохрани, чтобы не забыть, и подпишись на канал - здесь объясняю сложные вещи простым языком https://youtube.com/shorts/GXVX5fyEBVM?si=YgzKPCw-x0XG3doO

Repost from Golang
🧠 Контейнерный стек - кто за что отвечает 1. Podman 👉 альтернатива Docker без демона, можно запускать контейнеры rootless �
🧠 Контейнерный стек - кто за что отвечает 1. Podman 👉 альтернатива Docker без демона, можно запускать контейнеры rootless 🔗 https://podman.io 2. containerd 👉 низкоуровневый runtime, который реально контейнеры 🔗 https://containerd.io 3. CRI-O 👉 runtime специально для Kubernetes 🔗 https://cri-o.io 4. runc 👉 самый низкий уровень (OCI runtime) 🔗 https://github.com/opencontainers/runc 5. Buildah 👉 сборка образов без Docker 🔗 https://buildah.io 6. Kaniko 👉 сборка образов внутри Kubernetes 🔗 https://github.com/GoogleContainerTools/kaniko 7. nerdctl 👉 docker-подобный CLI для containerd 🔗 https://github.com/containerd/nerdctl 8. Rancher Desktop 👉 локальный Kubernetes + контейнеры 🔗 https://rancherdesktop.io 9. OrbStack 👉 быстрый dev environment для macOS 🔗 https://orbstack.dev 10. LXC / LXD 👉 системные контейнеры (почти как VM) 🔗 https://linuxcontainers.org 11. Colima 👉 лёгкая альтернатива Docker Desktop 🔗 https://github.com/abiosoft/colima 12. Lima 👉 лёгкая VM для macOS 🔗 https://github.com/lima-vm/lima 💡 Как это связать 👉 runc → запускает контейнер 👉 containerd / CRI-O → управляют контейнерами 👉 Podman / nerdctl → интерфейс 👉 Buildah / Kaniko → сборка 👉 Rancher / OrbStack / Colima → dev окружение 👉 Lima → VM база 👣 Полезные ресурсы Go 🚀Max @Golang_google

Repost from Rust
👣 Microsoft выкатили RustTraining. Вот лишь часть тем, которые сразу зацепили: - Async в продакшене - Конкурентность и runti
+3
👣 Microsoft выкатили RustTraining. Вот лишь часть тем, которые сразу зацепили: - Async в продакшене - Конкурентность и runtime - Почему разработчикам на C/C++ стоит переходить на Rust - no_std — Rust без стандартной библиотеки - Зачем Rust разработчикам на C# - Системное программирование и продакшн - Unsafe Rust - управляемый риск - Phantom types - Машины состояний для протоколов И это только малая часть. Похоже, туда вложили очень много работы, точно стоит выделить время и пройтись. github.com/microsoft/RustTraining/

➡️ Архитектура Linux простыми словами Linux — это не просто система, а набор слоёв, которые работают вместе: 1. 🖥 Hardware Ж
➡️ Архитектура Linux простыми словами Linux — это не просто система, а набор слоёв, которые работают вместе: 1. 🖥 Hardware Железо: процессор, память, сеть — всё, что даёт вычислительную мощность 2. ⚙️ Kernel Ядро системы — управляет ресурсами и напрямую общается с железом 3. 💻 Shell Интерфейс (например, Bash), который переводит команды пользователя в язык ядра 4. 🛠 Utilities Системные утилиты (ls, grep, cp) — инструменты для работы с системой 5. 🌐 Applications Приложения: браузеры, плееры, IDE — то, с чем работает пользователь 📌 Как это работает вместе: Ты вводишь команду → shell передаёт её ядру → ядро обращается к железу → утилиты/приложения выполняют задачу Просто, но гениально. #Linux #DevOps #Backend

Repost from DevOps Docker
🐳 Docker Layer Caching Trick Многие Docker-сборки занимают 5–10 минут даже если вы изменили одну строку кода. Причина - непр
🐳 Docker Layer Caching Trick Многие Docker-сборки занимают 5–10 минут даже если вы изменили одну строку кода. Причина - неправильный порядок инструкций в Dockerfile. 🚫 Плохой Dockerfile COPY . /app RUN npm install RUN npm run build Если меняется любой файл в коде → слой COPY . меняется. Docker сбрасывает кэш и заново запускает: • npm install • build Даже если зависимости не менялись. ⏳ В итоге - каждая сборка почти с нуля. ✅ Правильный Dockerfile COPY package*.json /app RUN npm install COPY . /app RUN npm run build Теперь Docker работает умнее: если изменился только код: • слой npm install берётся из кэша • пересобирается только build ⚡ Время сборки До - ~10 минут После - ~30 секунд 📌 Золотое правило Dockerfile Сначала кладём то, что редко меняется: • package.json • package-lock.json • requirements.txt • go.mod А часто меняющееся - в конце: • исходный код • конфиги • assets 🚀 Результат • быстрее сборки Docker • быстрее CI/CD • быстрее деплой Иногда достаточно просто поменять порядок строк в Dockerfile. 🎯Полезные DEVOPS ресурсы 🚀 Max Docker в телеграм

+3
💻 Подборка шпаргалок по SQL Собрали для вас короткие и понятные шпаргалки по основным темам:
▶ Основы языка SQL; ▶ JOIN’ы с наглядными примерами; ▶ Оконные функции; ▶ SQL для анализа данных.
Отличный комплект, чтобы освежить знания перед собесом или быстро вспомнить синтаксис. #полезное 📲Max

🔍 Исследуйте связи с Эпштейном EpsteIn — инструмент для поиска упоминаний ваших контактов LinkedIn в судебных документах Эпш
🔍 Исследуйте связи с Эпштейном EpsteIn — инструмент для поиска упоминаний ваших контактов LinkedIn в судебных документах Эпштейна. Просто загрузите файл с контактами и получите отчет в HTML-формате с результатами поиска. 🚀 Основные моменты: - Поиск упоминаний в судебных документах - Генерация отчетов в HTML - Поддержка CSV-файлов с контактами LinkedIn - Удобный интерфейс для просмотра результатов 📌 GitHub: https://github.com/cfinke/EpsteIn #python

👣 Multi-stage build: лёгкие и быстрые Docker-образы Docker-совет по оптимизации: уменьшите размер образа в несколько раз с помощью multi-stage build. Многие образы весят сотни мегабайт, потому что в них остаются: - компиляторы - dev-зависимости - временные файлы сборки Но в продакшене нужен только готовый бинарь или собранное приложение. Решение — многоэтапная сборка. Идея: 1. В первом этапе — собираем проект 2. Во втором — копируем только результат 3. Всё лишнее остаётся в предыдущем слое и не попадает в финальный образ Пример для Go:

# Stage 1 - сборка
FROM golang:1.22 AS builder

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o app

# Stage 2 - минимальный образ
FROM alpine:3.20

WORKDIR /app
COPY --from=builder /app/app .

CMD ["./app"]
Что это даёт: - размер образа уменьшается в 5–20 раз - быстрее pull и deploy - меньше поверхность для уязвимостей - быстрее запуск контейнеров Аналогично работает для: - Node (build → copy dist) - Python (wheel → runtime) - Java (build → copy jar) Главная идея: в продакшен-образе должно быть только то, что нужно для запуска.

🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇 🖥 ИИ: t.me/ai_machinelearning_big_data 🖥 Python: t.me/pythonl 🖥 Linux: t.me/linuxacademiya 🖥 C++ t.me/cpluspluc 🖥 Docker: t.me/DevopsDocker 🖥 Хакинг: t.me/linuxkalii 🖥 Devops: t.me/DevOPSitsec 👣 Golang: t.me/Golang_google 🖥 Аналитика: t.me/data_analysis_ml 🖥 Javascript: t.me/javascriptv 🖥 C#: t.me/csharp_ci 🖥 Java: t.me/javatg 🖥 Базы данных: t.me/sqlhub 👣 Rust: t.me/rust_code 🤖 Технологии: t.me/machineint 💰 Экономика и инвестиции в ИИ t.me/financeStable 💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi 🖥 Chatgpt бот в тг: t.me/Chatgpturbobot 📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy 🖥Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi ⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.

💡 КАК НАЧАТЬ РАБОТАТЬ С DOCKER Docker кажется сложным только до первого запуска контейнера. Главное - понять, что это не “магия серверов”, а способ запускать приложение в изолированной среде с уже готовыми зависимостями. Самый быстрый старт - перестать ставить всё на систему и начать упаковывать проекты в контейнеры. Тогда у тебя одинаково работает код на ноутбуке, сервере и у коллег. Базовый подход такой: у тебя есть приложение → ты описываешь среду в Dockerfile → собираешь образ → запускаешь контейнер. Всё. Никаких конфликтов версий, “у меня работает”, сломанных Python/Node окружений. Начни с простого правила — каждый новый проект сразу оборачивай в Docker, даже если он маленький. Через пару недель это станет привычкой, а проблемы с окружением исчезнут.


Установка Docker уже сделана
Проверка

docker --version

Простой Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Сборка образа

docker build -t myapp .

Запуск контейнера

docker run -p 8000:8000 myapp

🌟 DOCKER КАК НАСТРОИТЬ ПЕРЕД КАЖДЫМ ПРОЕКТОМ Совет - Docker: настраивай окружение ДО начала проекта, а не когда всё уже «почти готово». Большинство проблем в проде появляется не из-за кода, а из-за разницы окружений. Правильный подход - сначала контейнерная база, потом разработка. Выбирай лёгкий базовый образ без лишнего мусора, фиксируй зависимости отдельным слоем, обязательно делай .dockerignore, чтобы не тащить в образ кэш и хлам. Сразу разделяй dev и prod конфигурации, используй docker-compose даже если сервис один, не храни секреты в Dockerfile и добавляй HEALTHCHECK, чтобы контейнер считался «живым» только когда реально работает приложение. Docker - это фундамент проекта, а не финальный штрих.

Dockerfile (база для Python-проекта)

FROM python:3.12-slim

WORKDIR /app

Сначала зависимости — кеш будет работать правильно

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

Потом код

COPY . .

EXPOSE 8000

HEALTHCHECK CMD curl --fail http://localhost:8000/health
 || exit 1

CMD ["python", "app.py"]

.dockerignore

.git
pycache
venv
node_modules
*.log

docker-compose.yml

version: "3.9"
services:
app:
build: .
ports:
- "8000:8000"
env_file:
- .env
- https://www.youtube.com/shorts/1q4ceKg1wAA

Закономерно
Закономерно

🖥 Большинство “парсеров” умирают через 2 дня. Ты научишься делать те, которые живут в проде. Это не про BeautifulSoup ради г
🖥 Большинство “парсеров” умирают через 2 дня. Ты научишься делать те, которые живут в проде. Это не про BeautifulSoup ради галочки. Это про системы сбора данных, которые: • не падают от мелких правок на сайте • собирают данные в разы быстрее • обновляют всё сами по расписанию • обходят ограничения и баны • выглядят как сервис, а не хаос из файлов Ты начнёшь видеть сайты не как страницы, а как источники данных, к которым можно подключиться. В итоге ты сможешь: • забирать данные для своих проектов • автоматизировать чужую рутину • делать инструменты для аналитики • брать коммерческие заказы на сбор данных Это навык, который напрямую превращается в деньги. Не “знаю Python”, а умею добывать данные из интернета профессионально. 🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/269942/

🌟 LinumV2: T2V модель, которую делали вдвоем Интересная история, которая доказывает, что в индустрии ИИ не всегда нужны милл
+1
🌟 LinumV2: T2V модель, которую делали вдвоем Интересная история, которая доказывает, что в индустрии ИИ не всегда нужны миллиарды долларов и сотни сотрудников. Знакомьтесь - проект Linum. Два брата, Сахила Чопра и Ману Чопра, сделали две text-to-video модели на 2 миллиарда параметров, которые генерируют клипы длиной от 2 до 5 секунд в разрешении до 720p. Согласитесь, это редкое явление в мире, где большинство видео-генераторов закрыты за платными API. Изначально братья совсем не планировали заниматься генерацией видео.
Сахил окончил Стэнфордский университет в 2019, где в соавторстве разработал курс по LLM и занимался исследованиями в области когнитивных наук на стыке ИИ и лингвистики.
Ману досрочно окончил Калифорнийский университет в Беркли в 2021 г.. До основания Linum занимался исследованиями ИИ в биоинженерии.
Стартовав осенью 2022 года и пройдя через YCombinator, они пилили ИИ-инструмент для раскадровки фильмов. Но, пообщавшись с режиссерами, поняли: рынок слишком узкий, а творческий процесс у всех разный. 🟡Первая попытка создания видео-модели Linum v1, была, по их признанию, франкенштейном. Они взяли за основу SDXL, раздули U-NET, превратив 2D-свертки в 3D и добавили временные слои внимания. Получился забавный бот для Discord, который делал гифки в разрешении 180p. Это работало, но было тупиковой ветвью эволюции. Расширять модель, заточенную под картинки, для работы с видео - плохая идея в долгосроке. VAE, идущий в комплекте с имидж-моделью, просто не умеет нормально сжимать и разжимать видеопоток. Качество на выходе получается никакое. К тому же распределения данных в картинках и видео слишком разные, да и переучивать модель стоит дорого. 🟡V2 решили пилить с нуля. VAE взяли от Wan 2.1, успев попутно разработать свой собственный temporal VAE, но решили сэкономить на эмбеддингах, DIT и T5 на роль текстового энкодера. Представьте объем работы: двое парней делали то, чем обычно занимаются отделы с десятками сотрудников. Они сами собирали датасеты, настраивали VLM для фильтрации контента, писали пайплайны для аннотирования архива видео. И, конечно, бенчмаркали провайдеров, пытаясь понять, почему H100 у одного хостера работает хуже, чем у другого. 🟡К чему они пришли за 2 года разработки? Linum v2 — pretrained веса. Модель пока ошибается в физике и эстетике, а генерация 5-секундного клипа в 720p занимает около 15 минут на H100 при 50 шагах. Но, главное, братья не останавливаются: есть планы по ускорению через CFG и timestep distillation, работа над звуком и масштабированием. #AI #ML #T2V

☁️ Cloudness - опенсорс-платформа, чтобы деплоить свои проекты как в “мини-облаке” Сохраняй себе: cloudness-io/cloudness - эт
☁️ Cloudness - опенсорс-платформа, чтобы деплоить свои проекты как в “мини-облаке” Сохраняй себе: cloudness-io/cloudness - это open-source штука, которая помогает разворачивать и управлять приложениями на своих серверах так, будто у тебя свой Heroku / Vercel / PaaS. Что даёт Cloudness: - деплой проектов в пару кликов - управление окружениями (dev/stage/prod) - сервисы рядом (БД, кэш, очереди) - удобный контроль ресурсов и состояния - понятный интерфейс для DevOps без боли Зачем это нужно Когда проектов много, руками держать всё через docker-compose и ssh становится адом. Cloudness превращает это в нормальный продуктовый деплой: быстро, повторяемо и удобно. Идеально для: - пет-проектов - микросервисов - командной разработки - своего self-hosted продакшена GitHub: github.com/cloudness-io/cloudness

🖥 PYTHON СТАРТЕР ДЛЯ ЛЮБОГО ПРОЕКТА Сохраняй себе это - и используй каждый раз, когда начинаешь новый Python-проект. Перед тем как писать код, сделай 5 вещей: - создай правильную структуру проекта - подними виртуальное окружение - закрепи зависимости (requirements/poetry) - добавь линтер и форматтер, чтобы код сразу был норм - вынеси секреты в .env, а не в код Это экономит часы на дебаге и делает проект “взрослым” с первой минуты.


1) создать папку проекта
mkdir my_project && cd my_project

2) виртуальное окружение
python -m venv .venv
source .venv/bin/activate

3) базовые файлы
touch main.py requirements.txt .env .gitignore

4) gitignore + env
echo ".venv/
__pycache__/
.env
*.pyc" > .gitignore

# 5) полезный стартовый набор
pip install -U pip
pip install ruff black python-dotenv
https://www.youtube.com/shorts/lnKQ_2UjOfw