DevOps
По всем вопросам- @workakkk @itchannels_telegram - 🔥полезные ит-каналы https://t.me/Golang_google - Golang программирование @golangl - golang chat @GolangJobsit - golang channel jobs @golang_jobsgo - jobs РКН: clck.ru/3FmvZA #VRHSZ
Ko'proq ko'rsatish📈 Telegram kanali DevOps analitikasi
DevOps (@devopsitsec) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 23 428 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 5 808-o'rinni va Rossiya mintaqasida 28 659-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 23 428 obunachiga ega bo‘ldi.
11 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -25 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 11.89% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 6.42% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 785 marta ko‘riladi; birinchi sutkada odatda 1 503 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 8 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent devops, kubernetes, git, github, кластер kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥полезные ит-каналы
https://t.me/Golang_google - Golang программирование
@golangl - golang chat
@GolangJobsit - golang channel jobs
@golang_jobsgo - jobs
РКН: clck.ru/3FmvZA
#VRHSZ”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 12 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
build_and_push:
image: docker:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- docker build -t "$CI_REGISTRY_IMAGE:latest" .
- docker push "$CI_REGISTRY_IMAGE:latest"
Он работает, но содержит серьёзные проблемы безопасности и архитектурные ошибки.
🚨 Проблемы:
1. `docker:dind` и `tcp://docker:2375` — критически уязвимы.
Это значит, что любой процесс может получить root-доступ к Docker-демону, а значит и к хосту раннера.
2. Нет валидации образов или сканирования.
В репозиторий может попасть уязвимый образ.
3. Использование тега `latest`.
Тег можно перезаписать в любой момент — нарушает идемпотентность и аудит.
4. Пароли в переменных среды.
Лучше использовать безопасные токены (например, OIDC).
5. Нет изоляции сборки.
Образ может использовать --privileged, --network=host, и не быть sandboxed.
✅ Цель: Переделать пайплайн
Переход от DIND → kaniko, добавить проверку безопасности и стабильную версификацию.
🛡️ Обновлённый .gitlab-ci.yml
variables:
IMAGE_TAG: "${CI_COMMIT_SHORT_SHA}"
build_and_push:
image:
name: gcr.io/kaniko-project/executor:latest
entrypoint: [""]
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor \
--context $CI_PROJECT_DIR \
--dockerfile $CI_PROJECT_DIR/Dockerfile \
--destination $CI_REGISTRY_IMAGE:$IMAGE_TAG \
--destination $CI_REGISTRY_IMAGE:stable \
--snapshotMode=redo \
--single-snapshot
scan_image:
image: aquasec/trivy:latest
stage: test
script:
- trivy image --exit-code 1 --severity HIGH,CRITICAL $CI_REGISTRY_IMAGE:$IMAGE_TAG
🔍 Разбор улучшений:
• Kaniko — работает без привилегий, не требует docker.sock
• `IMAGE_TAG` = SHA — версии стабильны, audit-friendly
• Trivy — автоматическое сканирование уязвимостей
• Удаление `latest` — используем stable и SHA
• Нет `docker:dind` — безопаснее, проще и быстрее
• Безопасная аутентификация — можно заменить username/password на OIDC в GitLab
📌 Дополнительно:
1. Добавьте rules: в пайплайн, чтобы запускать сборку только по main или тэгам.
2. Используйте readonly контейнеры и fsGroup если применимо.
3. Ограничьте доступ к runner через protected: true.
💣 Бонус: почему docker:dind = уязвимость?
Если runner запускается в privileged режиме, то docker:dind даёт возможность выполнять произвольные команды от root внутри и вне контейнера — включая монтирование хостовых директорий. Это делает возможным побег из контейнера.
💡 Такой пайплайн не только безопаснее, но и более прозрачен, масштабируем и предсказуем.sudo !!
user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
❌Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
✅Как надо: sudo !!
🔂 Повтор последнего аргумента — Alt + .
Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?
❌Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
✅Как надо:
mkdir MyNewDirectory
cd <Alt+.>
🔍 Поиск команды в истории — Ctrl + R
Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!
Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?
❌Как не надо: Вверх. Вверх. Вверх. Enter.
✅Как надо: Ctrl+R
Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.
(reverse-i-search)cat: sudo cat /var/log/messages
🏠 Домашняя директория — cd
Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.
🔙 Назад в прошлую директорию — cd -
Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .
❌Как не надо: cd /var/www/foo
✅Как надо: cd -
🎭 Фоновый режим, передний план и контроль задач
Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.
Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.
«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.
user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.504 Gateway Timeout на определённые API-запросы. Проблема:
- возникает только при внешнем трафике (через Cloudflare)
- не воспроизводится в staging-окружении
- не зависит от нагрузки — может случиться в 3 часа ночи
- происходит на разных endpoint'ах, но всегда спустя 100 секунд
📈 Метрики:
- В K8s pod'ах таймаутов нет
- NGINX ingress не логирует ошибок
- Istio mesh — без аномалий
- PostgreSQL работает стабильно, без долгих транзакций
- В логах нет ни timeout, ни broken pipe, ни reset by peer
---
🧩 Ваша задача:
1. Найти, где именно происходит таймаут — в сети, прокси, mesh, firewall или app
2. Выяснить, почему именно 100 секунд
3. Подтвердить гипотезу, не разрушая прод
4. Предложить решение без увеличения всех таймаутов подряд
5. Составить диагностический plan на случай повторного возникновения
💡 Подсказка:
- NGINX по умолчанию имеет proxy_read_timeout 60, но это не оно
- Cloudflare автоматически завершает соединения по таймауту 100 секунд
- Если вы используете long-polling или upload, CDN может прерывать соединение до ответа
🛠 Решение (примерный путь):
1. Проверить `curl -v` через Cloudflare и напрямую — сравнить TTL
2. Выставить `proxy_request_buffering off` и `client_body_timeout`
3. Обновить Ingress с `nginx.ingress.kubernetes.io/proxy-read-timeout: "180"`
4. Проверить KeepAlive между Envoy и backend
5. В Cloudflare использовать `chunked encoding` или WebSockets, если запросы >100с
📌 **Вывод:**
Таймаут в 100 секунд — не случайность. Это один из самых частых лимитов на уровне облачных прокси и CDN. DevOps-инженер должен уметь находить такие «невидимые» границы между слоями системы и грамотно обходить их.
💬 Поделись решением с командой — и запиши его в postmortem, чтобы не попасться второй раз.
@devopsitsecanonymous или ftp в качестве логина). Часто применяется для публичных загрузок.
🔹 Какие популярные FTP-серверы в Linux?
• vsftpd
• proftpd
• Pure-FTPd
🔹 Как обеспечить безопасность FTP?
Обычный FTP передаёт данные в незашифрованном виде. Для защиты используют:
• FTPS (FTP over SSL/TLS)
• SFTP (через SSH) — это вообще другой протокол
Также: ограничение по IP, chroot jail, шифрование паролей, запрет анонимного доступа.
🔹 Различия между FTP и SFTP?
• SFTP работает через SSH (порт 22)
• Обеспечивает полное шифрование
• Безопаснее, но несовместим с обычными FTP-клиентами
🔹 Какие команды FTP стоит знать?
• get, put — загрузка и выгрузка
• ls, cd, pwd, mget, mput
• passive / active — переключение режима
🔹 Как ограничить пользователя FTP в своём каталоге?
Через chroot jail: chroot_local_user=YES в vsftpd.conf
🔹 Как протестировать FTP-сервер?
Можно использовать:
• ftp (CLI)
• lftp — продвинутый CLI
• GUI-клиенты: FileZilla, WinSCP
📚 Все 25+ вопросов с ответами ты найдёшь тут → https://www.tecmint.com/ftp-interview-questions-and-answers/
⚙️ Отличный чеклист для подготовки к собеседованию или аудиту инфраструктуры!
#FTP #DevOps #Linux #Собеседование #Sysadmin #SFTP #Безопасность
@devopsitsecindex.html
✅ Svelte SPA:
- Структура с App.svelte, маршрутизацией и Vite
- Лёгкий, быстрый и понятный фронтенд
✅ Makefile + Vite + Docker (опционально)
⚙️ Как запустить:
# Сборка фронта
cd frontend
npm install
npm run build
# Запуск Go-сервера
cd ..
go run main.go
📦 Кому подойдёт:
- Go-разработчикам, которым нужен современный UI
- Тем, кто хочет обойтись без сложных фреймворков
- Для MVP, pet-проектов, админок и внутренних тулов
🔥 Если хочешь быстрый и удобный стек без лишнего — go-svelte-spa отличный выбор.
📁 Репозиторий: https://github.com/joelseq/go-svelte-spa
docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome
🤖 GitHub
@DevopsDocker compose.yaml.
Инструмент доступен как, так и npm-пакет. Под капотом — парсинг флагов с их корректным переносом в YAML-структуру. Проект особенно удобен, когда нужно интегрировать новый сервис в существующий стек: Composerize умеет мержить конфиги, поддерживает разные версии Compose и даже настраивает отступы.
🤖 GitHub
@DevopsDocker
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
