Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Библиотека девопса | DevOps, SRE, Sysadmin
تُعد قناة Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 10 388 مشتركاً، محتلاً المرتبة 11 433 في فئة التكنولوجيات والتطبيقات والمرتبة 61 224 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 10 388 مشتركاً.
بحسب آخر البيانات بتاريخ 30 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -3، وفي آخر 24 ساعة بمقدار -1، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.91%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 4.23% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 822 مشاهدة. وخلال اليوم الأول يجمع عادةً 439 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 2.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل devops'a, навигация, скрипт, docker, git.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 31 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
initialDelaySeconds: 10.
2. periodSeconds
Интервал между проверками после первой.
Пример: если вы хотите проверять контейнер каждые 30 секунд, установите periodSeconds: 30.
3. failureThreshold
Указывает, сколько последовательных неудачных проверок Kubernetes допускает до того, как перезапустит контейнер.
Пример: если ваше приложение иногда теряет соединение, установите failureThreshold: 3, чтобы избежать перезапусков при временных сбоях.
4. timeoutSeconds
Время, которое Kubernetes будет ждать от контейнера, прежде чем считать проверку неудачной.
Пример: если приложение может задерживаться с ответом, установите timeoutSeconds: 5, чтобы дать достаточно времени на обработку запроса.
Как избежать конфликтов при настройке проб
Если настроены все три типа проб, важно убедиться, что они не конфликтуют. Например, если настроена Startup проба, то Liveness и Readiness пробы будут выполняться только после её успешного завершения. Это помогает избежать перезапуска контейнера на этапе инициализации, если приложение запускается медленно.
🐸 Библиотека devops'a
#задача_со_звёздочкойПока одни ждут «идеальный момент», другие просто учатся. А потом берут ваши офферы.⚡️ Пока скидка действует, апдейтни свои навыки
FROM golang:1.22-alpine # базовый образ
WORKDIR /app # рабочая директория
COPY . . # копируем файлы
RUN go build -o main . # собираем проект
CMD ["./main"] # команда запуска
• FROM — задаёт базовый слой (например, ubuntu, node, golang)
• WORKDIR — где выполняются команды
• COPY / ADD — добавляют файлы внутрь контейнера
• RUN — выполняет команды во время сборки
• CMD / ENTRYPOINT — определяют, что запустится при старте контейнера
• EXPOSE — сообщает, какие порты слушает контейнер
• ENV — задаёт переменные окружения
1. Docker читает Dockerfile построчно.
2. Каждая команда создаёт слой в образе.
3. Эти слои кэшируются — поэтому повторная сборка идёт быстрее.
4. Готовый образ можно запускать как контейнер, передавая параметры и окружение.
Что такое слой
Каждый слой — это snapshot изменений файловой системы.
На нашем примере:
1️⃣ FROM golang:1.22-alpine
Docker берёт готовый базовый образ с Golang и Alpine Linux.
Это уже несколько слоёв, собранных кем-то раньше:
• минимальная система (Alpine)
• системные библиотеки
• установленный Go-компилятор
Эти слои загружаются из Docker Hub и кэшируются локально.
Все они read-only — вы их не меняете, просто используете как основу.
2️⃣ WORKDIR /app
Создаётся новый слой, где внутри файловой системы появляется папка /app.
Теперь все последующие команды будут выполняться именно в ней.
Даже если она пуста, Docker фиксирует это изменение файловой структуры как отдельный слой.
3️⃣ COPY . .
Docker копирует все файлы из текущей директории (build context) в /app контейнера.
Результат — ещё один слой, где лежат исходники вашего проекта.
Важно: если вы измените хоть один файл —
хэш слоя поменяется, и этот шаг, а также все следующие пересоберутся заново.
4️⃣ RUN go build -o main .
Docker запускает внутри контейнера команду go build.
Она создаёт бинарник main прямо в /app.
После завершения — создаётся новый слой,
в котором лежит тот самый скомпилированный файл.
Предыдущие слои (с исходниками, библиотеками и т.д.) остаются неизменными.
5️⃣ CMD ["./main"]
Это не создаёт новый слой.
CMD добавляет метаданные — какую команду Docker должен запустить,
когда контейнер стартует docker run image_name.
Dockerfile — это сердце контейнеризации. Без него не было бы reproducible-сборок, dev/test окружений и того самого works on my machine.
🐸 Библиотека devops'a
#арсенал_инженераbash -i или curl | sh
➡️ Новость
🐸Библиотека devops'a
#разбор полётовjs_import /etc/njs/aiproxy.js;
server {
listen 4242;
default_type application/json;
location /v1/chat/completions {
set $aiproxy_user $http_x_user;
js_content aiproxy.route;
}
location /openai {
internal;
rewrite ^ /v1/chat/completions;
proxy_set_header Authorization 'Bearer ${OPENAI_API_KEY}';
proxy_pass https://api.openai.com;
}
location /anthropic {
internal;
rewrite ^ /v1/messages;
proxy_set_header x-api-key ${ANTHROPIC_API_KEY};
proxy_pass https://api.anthropic.com;
}
}
Прокси может подгружать права доступа из файла rbac.json, использовать настройки failover и преобразовывать запросы и ответы.
➡️ Блог NGINX
🐸Библиотека devops'a
#арсенал_инженераbody специально создан для того, чтобы показать центральные строки файла — с настройками контекста, подсветкой, номерами строк и именами файлов.
Пример:
body -C5 app.log
Скрипт найдёт середину файла
🐸Библиотека devops'a
#арсенал_инженераkubectl delete all --all -n <namespace>
Удалить все ресурсы во всех namespace’ах:
kubectl delete all --all --all-namespaces
Очистить хвосты — ConfigMap, Secrets, PVC, Jobs и т.п:
kubectl delete configmap,secret,pvc,pv,job,cronjob --all --all-namespaces
Удалить все namespace’ы кроме системных:
for ns in $(kubectl get ns --no-headers | awk '!/kube-system|kube-public|kube-node-lease|default/ {print $1}'); do
kubectl delete ns $ns
done
🐸Библиотека devops'a
#root@promptЧто происходит в Kubernetes, когда под не проходит liveness probeБольшинство кандидатов отвечают: «Он перезапускается». Но это — только верхушка айсберга. Под капотом Kubernetes: 1. Когда liveness probe проваливается kubelet сообщает об этом API Server, который записывает Pod как unhealthy в etcd. 2. Дальше kubelet через containerd/CRI-O убивает контейнер и проверяет restartPolicy: если можно — перезапускает, если нет — Pod считается завершённым. 3. Контроллер ReplicaSet видит, что живых Pod’ов меньше, и создаёт новый. 4. Scheduler выбирает подходящий узел, а kube-proxy убирает сбойный Pod из маршрутов сервиса. 5. В kubectl describe pod появляются события, но если Prometheus не следит за ними — узнаете о проблеме только от пользователей. Сеньор-уровень — это не про YAML, а про понимание того, что конкретно происходит. 🐸Библиотека devops'a #Задача_со_звёздочкой
