DeVops Библиотека – Telegram
DeVops Библиотека
9.57K subscribers
108 photos
43 videos
43 files
107 links
Гайды, уроки и книги для Devops специалситов
по всем вопросам @workakkk
Download Telegram
👩‍💻 Kubernetes The Hard Way

• На разработку этого гайда было потрачено два года : множество тестов тысячи перезапусков, сотни пересобранных кластеров — все это в одном гайде.

Чистый Kubernetes вручную — никакого kubeadm и прочих упрощений.

- Удобные алиасы, функции и обёртки для командной строки

- Десятки скриптов, проверенных в реальных боевых условиях

- Важные нюансы, о которых не рассказывают в стандартных туториалах

Введение;
Архитектура развертывания
Почему «The Hard Way»;
Создание инфраструктуры;
Базовая настройка узлов;
Загрузка модулей ядра;
Настройка параметров sysctl;
Установка компонентов;
Настройка компонентов;
Проверка готовности компонентов;
Работа с сертификатами;
Создание корневых сертификатов;
Создание сертификатов приложений;
Создание ключа подписи ServiceAccount;
Создание всех сертификатов;
Создание конфигураций kubeconfig;
Создание всех kubeconfig;
Проверка блока сертификатов;
Создание static pod-ов управляющего контура;
Создание всех static pod-ов управляющего контура;
Создание static pod-ов ETCD кластера;
Запуск службы Kubelet;
Проверка состояния кластера;
Настройка ролевой модели;
Загрузка конфигурации в кластер;
Загрузка корневых сертификатов в кластер;
Маркировка и ограничение узлов.

#Kubernetes #devops #clusters
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🥰2
👩‍💻 Эта полезная для новичков статья описывает основы работы с сетями в Docker. Она объясняет типы сетей, такие как bridge, host, none, и overlay, которые Docker использует для подключения контейнеров

🌟 В статье также приведены примеры настройки и использования этих сетевых типов для эффективного взаимодействия между контейнерами. Рассматриваются сценарии применения каждого типа сети, а также полезные команды для управления сетями Docker

🔗 Ссылка: *клик*

@devopsitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
Нерйросети t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://news.1rj.ru/str/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy
2
Трюки для ускорения 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 #девопс
👍84🔥2
Forwarded from DevOps
This media is not supported in your browser
VIEW IN TELEGRAM
Zev 🔍

Это помощник для работы с терминалом на естественном языке.

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

pip install zev

📌 Github


@DevopsDocker
4👍2👎1🔥1
Forwarded from DevOps
👾 eBPF вместо прокси: новый подход к масштабированию в Kubernetes.

Инженеры WSO2 предложили нестандартное решение для scale-to-zero в Kubernetes — отказ от прокси в пользу eBPF. Они создали прототип, где eBPF-программа на уровне XDP перехватывает пакеты, инициируя масштабирование сервисов без промежуточного слоя.

🧑‍💻 Как это работает?
— eBPF-драйвер отслеживает запросы к остановленным сервисам, временно блокируя их и запуская масштабирование
— После готовности POD запрос проходит напрямую, минуя прокси
— Подход работает для любых TCP-сервисов, включая базы данных

Преимущества:
— Работает для любых TCP-сервисов (не только HTTP)
— Снижение latency на 30-50% по сравнению с прокси-решениями
— Полная совместимость с существующими сетевыми политиками
— Поддержка даже stateful-сервисов вроде PostgreSQL

🔗 Ссылка - *клик*

@devopsitsec
👍76🥰1
VS Code горячие клавиши.pdf
39.8 KB
Конфигурация VS Code + горячие клавиши
5
🖥 Эта статья объясняет, как использовать инструмент K3D для запуска легковесных Kubernetes-кластеров K3S в контейнерах Docker!

🌟 В статье описываются шаги по установке и настройке K3D, создание кластеров, управление их состоянием и развертывание приложений. K3D идеален для локальной разработки, тестирования и CI/CD, благодаря своей простоте и низкому потреблению ресурсов.

🔗 Ссылка: *клик*

@devopsitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🥰1
🐧 Как работает Linux: за кулисами ядра!

Поговорим про базу!

Linux — это не просто операционная система, это целый мир, в котором ядро управляет всем: от запуска программ до работы устройств.

Ядро (Kernel)
Главное «сердце» системы. Оно управляет:
• процессором
• памятью
• устройствами
• сетью
• файловыми системами

Процессы и потоки
Каждое ваше приложение — это процесс. Ядро решает, когда и какой процесс получит доступ к CPU, создавая ощущение параллельной работы.

Системные вызовы
Программы не обращаются напрямую к железу — они используют системные вызовы (syscalls), чтобы попросить ядро выполнить задачи: открыть файл, отправить данные по сети и т.д.

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

Модули ядра
Linux умеет «подгружать» драйверы на лету. Например, подключили новую флешку — ядро сразу добавляет модуль для работы с ней.

💡 Факт:
Именно ядро Linux стоит за Android, серверами Google, суперкомпьютерами и миллиардами устройств по всему миру.

Linux — это не просто ОС. Это симфония процессов и устройств под управлением ядра, которая делает возможным всё — от работы веб-сайтов до запуска ракет 🚀

#Linux #Kernel #DevOps #ОС #Технологии
👍104
🔁 CI/CD и Kubernetes: как внедрить лучшие практики контейнеров

☸️ Пример манифеста для Kubernetes


apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: app
image: yourrepo/app:latest
resources:
limits:
memory: "512Mi"
cpu: "1000m"
requests:
memory: "256Mi"
cpu: "500m"
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
runAsNonRoot: true
capabilities:
drop:
- ALL
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10


🛡 Безопасность, ограничение ресурсов, probes — всё в боевом шаблоне.

---

### 🛠 Пример CI-пайплайна (GitLab CI)


stages:
- build
- test
- push

variables:
DOCKER_BUILDKIT: 1

build:
stage: build
image: docker:latest
services:
- docker:dind
noscript:
- docker build --target production -t yourrepo/app:$CI_COMMIT_SHA .
- docker tag yourrepo/app:$CI_COMMIT_SHA yourrepo/app:latest

test:
stage: test
image: yourrepo/app:$CI_COMMIT_SHA
noscript:
- ./run_tests.sh

push:
stage: push
noscript:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
- docker push yourrepo/app:$CI_COMMIT_SHA
- docker push yourrepo/app:latest
only:
- main


Использует:
- BuildKit для кэширования и ускорения сборки
- multi-stage Dockerfile
- Тестирует контейнер перед пушем
- Пушит только из main

📌 На заметку
- Используй opa-gatekeeper или Kyverno для валидации безопасности в Kubernetes
- В CI сканируй образы через Trivy, Grype или Snyk
- Для прода лучше использовать immutable теги, например yourrepo/app:1.4.23

🧠 Контейнер — это артефакт, который живёт дальше: в k8s, CI/CD, observability. Поэтому его здоровье — это здоровье всего DevOps-процесса.
👍7🔥4
Forwarded from DevOps Docker
Расширенный_гайд_по_Docker_для_DevOps_специалистов_1_2.pdf
391.1 KB
🐳 Docker без боли: Огромный гайд от новичка до профи

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

• как устроен Docker изнутри
• как упаковать любое приложение в контейнер
• как запускать десятки сервисов одной командой
• как дебажить, оптимизировать и защищать контейнеры
• как не сойти с ума с volumes, networks и образами

🎯 Без скучной теории — только практические команды, схемы и лайфхаки от тех, кто использует Docker в продакшене.
Сохраняй и делись с коллегами, чтобы не потерять

👉 Читать онлайн

@DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
Файловые системы \ FS \ sfdisk \ e2label \ mkfs \

ext3 - Наиболее распространенная файловая система Linux,
предоставляющая возможность журналирования с целью
сохранения данных и возможность быстро перезагружать
систему после некорректного завершения ее работы
ext2 - Файловая система, предшествующая ext3,
не поддерживающая функцию журналирования
iso9660 - появилась из файловой системы High Sierra (была стандартом для компакт-дисков)
и может содержать расширения Rock Ridge для обеспечения возможности
использования длинных имен файлов и других функций (полномочия доступа
к файлу, права собственности и ссылки)
jffs2 - Журналируемая файловая система для флэш-носителей, созданная для
эффективной работы с USB-накопителями
jfs - Файловая система, используемая на IBM в OS/2 Warp и настроенная на работу
с большими файловыми системами и средами с высокой производительностью
msdos - Может использоваться для монтирования файловых систем на устаревшие
носители MS-DOS, например старые дискеты
ntfs - Может быть полезна, когда есть необходимость передавать файлы
в файловые системы Windows (с двойной загрузкой или на сменных носителях)
reiserfs - Журналируемая файловая система, иногда используемая по умолчанию на SUSE,
Slackware и других операционных системах Linux
squashfs - Запакованная файловая система, предназначенная только для чтения
данных и используемая на многих Live CD Linux
swap - Используется на разделах подкачки для временного хранения данных,
когда оперативная память временно недоступна
ufs - Популярная файловая система операционных систем Solaris
и SunOS от корпорации Sun Microsystems
vfat - Расширенная файловая система FAT (VFAT), которая полезна,
если файловым системам нужно обмениваться файлами
с более старыми системами Windows (с двойной загрузкой или на сменных носителях)
xfs - Журналируемая файловая система для среды с высокой производительностью,
размер которой может расширяться до многих терабайт данных,
а скорость передачи данных в которой исчисляется гигабайтами в секунду

sfdisk - программа для работы с таблицей разделов жесткого диска
sfdisk -d /dev/sda > sda-table - Выполняет резервное копирование таблицы разбиения в файл
sfdisk /dev/sda < sda-table - Восстанавливает таблицу разбиения из файла
sfdisk -d /dev/sda | sfdisk /dev/sdb - Копирует таблицу разбиения с одного диска на другой

fdisk - программа для работы с таблицей разделов жесткого диска (устарела)

e2label /dev/sda2 - посмотреть метку второго раздела
e2label /dev/sda2 my_lable_name - назначить метку my_lable_name второму разделу

findfs LABEL=my_lable_name - ищем раздел по метке
(например в /etc/fstab монтирование по метке)

mkfs -t ext3 /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
mkfs -t ext3 -v -c /dev/sdb1 - Расширенная команда, выполняющая также
поиск поврежденных блоков
mkfs.ext3 -с /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
mkfs.ext3 -с -L mypartition /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
и добавляет разделу метку

dd if=/dev/scd0 of=name_file.iso bs=2048 - извлекаем образ iso с cd/dvd

dd if=/dev/zero of=my_disk count=2048000 - Создаем заполненный нулями файл объемом 1 Гбайт
du -sh my_disk - Проверяем размер виртуальной файловой системы
mkfs -t ext3 my_disk - Создаем файловую систему на mydisk
mkdir /mnt/image - создаем пустой каталог
mount -o loop my_disk /mnt/image - монтируем my_disk в пустой каталог
cd /mnt/image - переходим в каталог /mnt/image
mkdir test - создаем каталог test
cp /etc/hosts - копируем /etc/hosts в текущий каталог
cd .. - переходим на уровень выше (выходим из текущего каталога)
umount /mnt/image - отмонтмровать /mnt/image
👍54👎1
Forwarded from Machinelearning
🌟 Kimi-Dev-72B: открытая модель для багфикса и тестирования кода.

Moonshot AI пополнил свое семейство Kimi моделью Kimi-Dev-72B, специализированной для программирования и разработанной для решения задач инженерии ПО. Она, как заявляют разработчики, особо эффективна в исправлении ошибок и написании тестов.

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


Специализация Kimi-Dev-72B состоит из 2 ролей: BugFixer (исправление ошибок) и TestWriter (написание тестов).

Эти роли работают в тандеме: BugFixer находит файлы, требующие правок, и предлагает код, который устраняет баг, а TestWriter создает тесты, которые должны провалиться без исправления и пройти после него. Обе роли используют одинаковый двухэтапный процесс — сначала локализация файла, затем редактирование кода.

Модель училась на данных с GitHub: миллионы задач и коммитов из реальных проектов. За основу взяли базовую Qwen 2.5-72B, которую дообучали на ~150 млрд. токенов, тщательно фильтруя данные, чтобы исключить тестовые наборы SWE-bench.

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

Kimi-Dev показала рекордные 60,4% на тесте SWE-bench Verified среди open-source решений.

В будущем планируется интеграция с IDE, CI/CD, чтобы сделать модель частью ежедневного рабочего процесса разработчиков.


📌Лицензирование: MIT License.


🟡Страница проекта
🟡Модель
🖥GitHub


@ai_machinelearning_big_data

#AI #ML #LLM #KimiDev #MoonshotAI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
Книга: «Изучаем OpenTelemetry: современный мониторинг систем»

OpenTelemetry сегодня – это отраслевой стандарт сбора и передачи данных телеметрии, а также набор инструментов, позволяющий интерпретировать подаваемые системой сигналы о своем состоянии. Основатели проекта Тед Янг и Остин Паркер создали руководство изучению OpenTelemetry для всех, кто хочет глубоко разобраться в наблюдаемости.

Что внутри?
Настройка и диагностика OpenTelemetry.
Лучшие практики наблюдаемости для Kubernetes, AWS Lambda и других облачных сервисов.
Как инструментировать свои сервисы и библиотеки с помощью OpenTelemetry.

Выведите мониторинг на новый уровень с книгой «Изучаем OpenTelemetry»! 🚀
🖇 Ссылка на книгу

erid: 2VtzqxBKJ86
3💩3