Библиотека девопса | 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 390 مشترک است و جایگاه 11 434 را در دسته فناوری و برنامهها و رتبه 61 255 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 390 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 28 اوت, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -4 و در ۲۴ ساعت گذشته برابر -3 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 10.37% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.23% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 077 بازدید دریافت میکند. در اولین روز معمولاً 439 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 1 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند devops'a, навигация, скрипт, docker, git تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 29 اوت, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
nginx.ingress.kubernetes.io/rewrite-target. Например, паттерн /api/(.*) с rewrite-target /$1 отрежет префикс /api и передаст бэкенду оставшуюся часть пути.
Проблема в том, что Ingress-NGINX _переписывает весь путь целиком_, а не только совпавшую часть. Это отличается от поведения большинства других прокси. Если бэкенд ожидает определённую структуру пути — поведение после миграции может измениться даже при формально правильном переводе.
В Gateway API перезапись реализована через фильтр URLRewrite. Логика другая: можно заменить префикс или весь путь. Прямого аналога подстановки через $1, $2 нет. Конфигурации с несколькими группами захвата придётся переосмыслить.
Ещё одна деталь — приоритет пересекающихся маршрутов. В Gateway API он определяется специфичностью совпадения. В Ingress-NGINX логика другая. Если у вас несколько маршрутов с похожими путями, порядок их срабатывания может поменяться после миграции.
Каждый маршрут с rewrite-target нужно разобрать вручную и убедиться, что бэкенд получит именно тот путь, который ожидает.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераКоманда хранит state в S3 и периодически ловит его порчу при одновременных apply. Как исключить race condition?Подсказка: одного только версионирования S3 недостаточно. Нужен механизм, который не дает двум apply работать одновременно. ➡️ Проверить себя 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #задача_со_звёздочкой
/[A-Z]{3}, включаете аннотацию nginx.ingress.kubernetes.io/use-regex: "true" и считаете задачу решённой.
На деле Ingress-NGINX обрабатывает такой паттерн как _префикс без учёта регистра_. Запрос /uuid пройдёт — потому что три буквы в начале пути есть. /some-long-path тоже пройдёт. Именно это поведение было в продакшене, даже если вы об этом не знали.
При переходе на Gateway API с типом матчинга RegularExpression всё меняется. Реализации на базе Envoy — Istio, Envoy Gateway, Kgateway — делают полное совпадение с учётом регистра. Паттерн /[A-Z]{3} уже не пропустит /uuid. Запросы, которые раньше работали, начнут возвращать 404.
Чтобы сохранить прежнее поведение, паттерн нужно переписать явно: /[a-zA-Z]{3}.*. Либо использовать флаг (?i), если конкретная реализация его поддерживает.
Перед миграцией пройдитесь по каждому регулярному выражению и проверьте, какие запросы оно реально пропускало. Не то, что написано в паттерне, а то, что фактически проходило в продакшене.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераkubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
Kubernetes корректно выведет все поды с ноды, перенесёт их на другие ноды в кластере и отметит саму ноду как недоступную для новых подов. Workloads при этом не упадут, они просто переедут.
--ignore-daemonsets говорит системе не трогать DaemonSets, потому что они крутятся на каждой ноде и переносить их бесполезно. --delete-emptydir-data удаляет поды с пустыми томами, которые нельзя перенести нормально.
Drain работает только с управляемыми подами. Если у вас валяются standalone поды без контроллера, они просто удалятся. Поэтому перед drain проверьте, что важные поды находятся в Deployments, StatefulSets или других контроллерах.
После drain нода остаётся в состоянии unschedulable. Когда закончите работу, верните её обратно:
kubectl uncordon <node-name>
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt1. единый интерфейс для метрик, логов и трейсов — чтобы быстро собрать полную картину по системе 2. поиск инцидентов и первопричин (особенно полезно в микросервисной архитектуре) 3. гибкий алертинг и сценарии эскалации, включая уведомления и звонки ответственным 4. мониторинг приложений, инфраструктуры и ИИ-агентов — в облаке и в on-prem средеВнутри Яндекса с платформой ежемесячно работают около 16 тысяч сотрудников. В систему каждую секунду записывается до 3 млрд семплов метрик, 44 млн спанов и 60 ГБ логов. Платформу уже тестируют ОТП Банк и крупная FMCG-компания — хороший сигнал для enterprise-сегмента. Observability всё чаще связывают с экономическим эффектом, потому что простои и деградации напрямую бьют по доходам, а скорость диагностики становится фактором конкурентоспособности. Где больнее всего мониторинг: микросервисы, legacy-монолит, on-prem, гибрид или облако? 👇
from cryptography.fernet import Fernet
def encrypt_file(file_path):
key = Fernet.generate_key()
cipher = Fernet(key)
with open(file_path, "rb") as file:
encrypted_data = cipher.encrypt(file.read())
with open(file_path + ".enc", "wb") as enc_file:
enc_file.write(encrypted_data)
print(f"File encrypted! Key: {key.decode()}")
if __name__ == "__main__":
encrypt_file("secrets.txt")
Скрипт читает файл, шифрует его содержимое и сохраняет с расширением .enc. Ключ генерируется автоматически — сохраните его, без него расшифровать файл не получится.
⚠️ Не храните ключ рядом с зашифрованным файлом.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt