С помощью картинок и коротких видео даже новички начнут применять продвинутые инструменты разработки и использовать Docker.
Стоит подписаться: t.me/DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4👎1
Шпаргалка по sed в Linux.pdf
462.3 KB
Шпаргалка по sed в Linux
Если вам нужны легкие напоминания о командах и полезные советы по синтаксису, скачайте нашу шпаргалку по sed.
Если вам нужны легкие напоминания о командах и полезные советы по синтаксису, скачайте нашу шпаргалку по sed.
❤8🔥4🥰2
📌 Особенности:
- Хранит заметки в простом
.txt-файле.- Поддерживает добавление тегов (`#`) и отметок времени.
- Удобная фильтрация заметок по ключевым словам или датам.
- Возможность настройки пути к файлу хранения.
Пример использования:
heynote "Перезапустить nginx #devops"
Эта команда добавит строку со временем и текстом в файл заметок. Удобно, когда нужно быстро сохранить мысль во время работы в консоли.
Проект написан на Go, кроссплатформенный, и отлично вписывается в минималистичный рабочий процесс, особенно для тех, кто живёт в терминале. Полезный инструмент для системных администраторов, разработчиков и всех, кто ценит лаконичность.
▪Github
#golang #devops #девопс
@devops_teleg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3
• На разработку этого гайда было потрачено два года : множество тестов тысячи перезапусков, сотни пересобранных кластеров — все это в одном гайде.
Чистый Kubernetes вручную — никакого kubeadm и прочих упрощений.
- Удобные алиасы, функции и обёртки для командной строки
- Десятки скриптов, проверенных в реальных боевых условиях
- Важные нюансы, о которых не рассказывают в стандартных туториалах
#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
@devopsitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥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
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, чтобы собрать приложение в одном контейнере, а продакшн-образ сделать минимальным:
Минимизируй базовые образы
Выбирай облегчённые базовые образы:
• alpine вместо ubuntu
• distroless для максимальной безопасности и минимального веса
Оптимизируй порядок слоёв
Чем выше изменяемость — тем ниже слой:
• Сначала COPY go.mod, npm package.json, установка зависимостей
• Потом COPY . . с кодом проекта
Это позволяет кэшировать большую часть слоёв даже при частых изменениях кода.
Чисть за собой
Всегда удаляй временные файлы и зависимости для сборки:
Сжимай образы
Используй docker-slim — он автоматически оптимизирует образ, удаляя всё ненужное:
Как применять и чего избегать
• В продакшне старайся держать образы <100MB
• Не добавляй лишние пакеты “на всякий случай”
• Проверяй образы на уязвимости: trivy image your-app:tag
#devops #девопс
Контейнеры — сердце современных приложений. Но тяжёлые образы = медленные деплои и высокие затраты. Как ускорить образы без боли?
⸻
Мультистейдж билды — 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 #девопс
👍8❤4🔥2
Forwarded from DevOps
This media is not supported in your browser
VIEW IN TELEGRAM
Zev 🔍
Это помощник для работы с терминалом на естественном языке.
Он помогает быстро находить нужные команды и сохранять их в избранное, а его простой и понятный интерфейс делает освоение терминала доступным даже для новичков.
📌 Github
@DevopsDocker
Это помощник для работы с терминалом на естественном языке.
Он помогает быстро находить нужные команды и сохранять их в избранное, а его простой и понятный интерфейс делает освоение терминала доступным даже для новичков.
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
Инженеры WSO2 предложили нестандартное решение для scale-to-zero в Kubernetes — отказ от прокси в пользу eBPF. Они создали прототип, где eBPF-программа на уровне XDP перехватывает пакеты, инициируя масштабирование сервисов без промежуточного слоя.
🧑💻 Как это работает?
— eBPF-драйвер отслеживает запросы к остановленным сервисам, временно блокируя их и запуская масштабирование
— После готовности POD запрос проходит напрямую, минуя прокси
— Подход работает для любых TCP-сервисов, включая базы данных
Преимущества:
— Работает для любых TCP-сервисов (не только HTTP)
— Снижение latency на 30-50% по сравнению с прокси-решениями
— Полная совместимость с существующими сетевыми политиками
— Поддержка даже stateful-сервисов вроде PostgreSQL
🔗 Ссылка - *клик*
@devopsitsec
👍7❤6🥰1
@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 #ОС #Технологии
Поговорим про базу!
Linux — это не просто операционная система, это целый мир, в котором ядро управляет всем: от запуска программ до работы устройств.
▪ Ядро (Kernel)
Главное «сердце» системы. Оно управляет:
• процессором
• памятью
• устройствами
• сетью
• файловыми системами
▪ Процессы и потоки
Каждое ваше приложение — это процесс. Ядро решает, когда и какой процесс получит доступ к CPU, создавая ощущение параллельной работы.
▪ Системные вызовы
Программы не обращаются напрямую к железу — они используют системные вызовы (syscalls), чтобы попросить ядро выполнить задачи: открыть файл, отправить данные по сети и т.д.
▪ Безопасность и права доступа
Каждый файл и процесс имеют владельца и права. Это ключ к безопасности: ни один пользователь не может трогать чужие файлы без разрешения.
▪ Модули ядра
Linux умеет «подгружать» драйверы на лету. Например, подключили новую флешку — ядро сразу добавляет модуль для работы с ней.
💡 Факт:
Именно ядро Linux стоит за Android, серверами Google, суперкомпьютерами и миллиардами устройств по всему миру.
Linux — это не просто ОС. Это симфония процессов и устройств под управлением ядра, которая делает возможным всё — от работы веб-сайтов до запуска ракет 🚀
#Linux #Kernel #DevOps #ОС #Технологии
👍10❤4
🔁 CI/CD и Kubernetes: как внедрить лучшие практики контейнеров
☸️ Пример манифеста для Kubernetes
🛡 Безопасность, ограничение ресурсов, probes — всё в боевом шаблоне.
---
### 🛠 Пример CI-пайплайна (GitLab CI)
⚡ Использует:
- BuildKit для кэширования и ускорения сборки
-
- Тестирует контейнер перед пушем
- Пушит только из
📌 На заметку
- Используй
- В CI сканируй образы через Trivy, Grype или Snyk
- Для прода лучше использовать
🧠 Контейнер — это артефакт, который живёт дальше: в k8s, CI/CD, observability. Поэтому его здоровье — это здоровье всего DevOps-процесса.
☸️ Пример манифеста для 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 изнутри
• как упаковать любое приложение в контейнер
• как запускать десятки сервисов одной командой
• как дебажить, оптимизировать и защищать контейнеры
• как не сойти с ума с volumes, networks и образами
Сохраняй и делись с коллегами, чтобы не потерять
@DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
Файловые системы \ FS \ sfdisk \ e2label \ mkfs \
предоставляющая возможность журналирования с целью
сохранения данных и возможность быстро перезагружать
систему после некорректного завершения ее работы
не поддерживающая функцию журналирования
iso9660 - появилась из файловой системы High Sierra (была стандартом для компакт-дисков)
и может содержать расширения Rock Ridge для обеспечения возможности
использования длинных имен файлов и других функций (полномочия доступа
к файлу, права собственности и ссылки)
эффективной работы с USB-накопителями
с большими файловыми системами и средами с высокой производительностью
носители MS-DOS, например старые дискеты
в файловые системы Windows (с двойной загрузкой или на сменных носителях)
Slackware и других операционных системах Linux
данных и используемая на многих Live CD Linux
когда оперативная память временно недоступна
и SunOS от корпорации Sun Microsystems
если файловым системам нужно обмениваться файлами
с более старыми системами Windows (с двойной загрузкой или на сменных носителях)
размер которой может расширяться до многих терабайт данных,
а скорость передачи данных в которой исчисляется гигабайтами в секунду
(например в /etc/fstab монтирование по метке)
поиск поврежденных блоков
и добавляет разделу метку
umount /mnt/image - отмонтмровать /mnt/image
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 на разделе sba1mkfs -t ext3 -v -c /dev/sdb1 - Расширенная команда, выполняющая также поиск поврежденных блоков
mkfs.ext3 -с /dev/sdb1 - Создает файловую систему ext3 на разделе sba1mkfs.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 - Создаем файловую систему на mydiskmkdir /mnt/image - создаем пустой каталогmount -o loop my_disk /mnt/image - монтируем my_disk в пустой каталог cd /mnt/image - переходим в каталог /mnt/imagemkdir test - создаем каталог test cp /etc/hosts - копируем /etc/hosts в текущий каталогcd .. - переходим на уровень выше (выходим из текущего каталога)umount /mnt/image - отмонтмровать /mnt/image
👍5❤4👎1