Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
70 videos
4 files
2.57K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🤖🤖 Как работает OOM Killer в Linux и как его настроить

OOM (Out-Of-Memory) в Linux возникает, когда система исчерпывает память (RAM и swap). Для предотвращения зависания ядро запускает OOM Killer, который завершает процессы, освобождая ресурсы.

Как выбирается жертва?
OOM Killer оценивает процессы по «весу» (OOM Score). Это значение зависит от:
🎯 Объема памяти: больше памяти — выше риск.
🎯 Приоритета (OOM Adjust Score): значение от -1000 (процесс защищен) до +1000 (максимальный риск).
🎯 Системной важности: критические процессы (например, демоны) убиваются реже

Настройка OOM Killer
Для настройки используйте /proc/[PID]/oom_score_adj. Например:
echo -1000 > /proc/1234/oom_score_adj


Как избежать OOM?
Мониторинг памяти: используйте htop, free.
Swap: проверьте, что он настроен (swapon -s).
🛠️ Настройка ядра: параметр vm.overcommit_memory:
- 0 (по умолчанию) — баланс между памятью и swap.
- 2 — запрещает выделение памяти без ресурсов.
echo 2 > /proc/sys/vm/overcommit_memory

🛠️ cgroups: ограничьте память для групп процессов:
echo 1G > /sys/fs/cgroup/memory/limit_in_bytes

🛠️ ulimit: задайте ограничения:
ulimit -m [лимит в KB]


OOM Killer защищает систему от сбоев, но важно его настроить, чтобы предотвратить завершение критически важных процессов. Используйте мониторинг, настройку ядра и ограничения ресурсов, чтобы минимизировать риски.

#гайд
👍9
🔥 Argo CD в действии: простой способ управлять приложениями в Kubernetes

Коротко и по делу о том, как с помощью Argo CD автоматизировать управление состоянием кластера через GitOps. Полезно для тех, кто работает с Kubernetes и хочет упростить процесс.

📌 Что внутри?
* Установка и настройка Argo CD.
* Декларативный подход к развёртыванию приложений.
* Мониторинг и устранение отклонений от желаемого состояния.
* Быстрые откаты и управление версиями.
* Лайфхаки по безопасности для работы в продакшене.

🔗 Полный текст в источнике
👍5
Forwarded from DIGITALRAZOR
Что будет, если DigitalRazor объединится с Proglib Academy? Правильно! Новый розыгрыш.

Условия:

Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.

Призы:

1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.

Призы разыграем 1 декабря в 20:00 (МСК).

Доставка призов возможна только по городам России и Белоруссии.

Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.

Игровые компьютеры и рабочие станции DigitalRazor — это качественная сборка, топовое железо и эффектный дизайн.

Регламент розыгрыша
🚀 Docker Desktop 4.36 — главные обновления 🔥

Docker продолжает радовать пользователей улучшениями, которые делают работу ещё удобнее и эффективнее! В версии 4.36 появились крутые фишки:

🚢 Новые функции для корпоративных пользователей:
* Поддержка авторизации для нескольких организаций — переключение между командами стало проще.
* Массовая установка Docker Desktop на macOS с помощью PKG-инсталлятора.
* Управление настройками через Admin Console — централизованно и без лишних усилий. 🛠️

🚢 Enhanced Container Isolation (ECI):
* Контейнеры теперь могут монтировать Docker socket благодаря новым настройкам.
* Поддержка подстановочных знаков для тегов образов — меньше рутины для администраторов. 👨‍💻

🚢 Оптимизация для WSL 2:
* Быстрее, надёжнее, мощнее. Обновления WSL 2 улучшают производительность Docker Desktop.

📎 Подробнее об этих и других улучшениях читайте в официальном блоге Docker
👍1
⚛️🔀 Эффективная многопоточность в Node.js: как использовать Atomics

Представь, что несколько человек пытаются писать в одном блокноте одновременно — получится каша. То же самое происходит, когда несколько потоков в программе пытаются работать с одними данными. Не паникуй — сейчас разберемся, как Atomics помогает держать все под контролем!

👉 Читать статью
👉 Зеркало
👍1
🌐 В обсуждении на Reddit поднят вопрос, могут ли системные инженеры стать хорошими DevOps-специалистами.

Некоторые утверждают, что навыки системного администрирования, такие как управление инфраструктурой и мониторинг, могут быть полезны в DevOps. Однако другие считают, что для успешной работы в DevOps требуется больше знаний в области автоматизации, разработки и CI/CD.

А как вы относитесь к этому? Могут ли системные инженеры успешно адаптироваться к роли DevOps-инженера? Пишите свои мысли в комментарии!
#интерактив
👍4
🌐🛠️ HCP Vault Dedicated: Новые возможности для DevOps-инженеров

Компания HashiCorp выпустила обновление для HCP Vault Dedicated, добавив ключевые функции, которые облегчают управление секретами, повышают устойчивость инфраструктуры и упрощают автоматизацию процессов.

Что изменилось?
Синхронизация секретов (Secrets Sync): Теперь секреты можно автоматически синхронизировать между облачными провайдерами, исключая ручные действия и снижая риски ошибок.

Кросс-региональное аварийное восстановление (Cross-Region DR): Поддержка репликации данных между регионами в рамках одного облака позволяет обеспечить достойный уровень доступности и минимизировать время простоя.

Поддержка протокола EST в PKI (EST PKI): Новый протокол упрощает автоматизацию управления сертификатами, особенно для больших масштабируемых систем, таких как IoT.

📎 Узнать больше о новых функциях и применении можно в официальном блоге HashiCorp.
👍4
📔 Database Gateway: удобный инструмент для безопасного доступа к базам данных

На платформе Reddit пользователь поделился своим проектом под названием Database Gateway. Этот инструмент предназначен для безопасного и централизованного управления доступом к производственным базам данных, а также для выполнения строго контролируемых запросов.

🛠 Ключевые функции:
* Определение правил доступа на уровне экземпляров, таблиц и столбцов.
* Пользователи входят в систему с помощью OpenID Connect.
* Возможность выполнения запросов к нескольким экземплярам PostgreSQL через единый интерфейс.
* Безопасное выполнение одобренных запросов и просмотр результатов через веб-интерфейс
* Сохранение результатов запросов для последующего доступа или экспорта.

Как это работает:
* Пользователи проходят аутентификацию через OIDC.
* ACL (списки контроля доступа) регулируют доступ к конкретным экземплярам, таблицам и столбцам.
* Одобренные запросы выполняются, а результаты хранятся в безопасной среде.

📎 Подробнее ознакомиться с проектом и поддержать его можно в официальном репозитории.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Напоминаем: у нас можно (и нужно) купить рекламу

→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения

Для заказа пишите сюда: @proglib_adv
🌐🌀 Kubernetes Node Problem Detector: как отслеживать и решать проблемы узлов в кластере

Поддержание стабильности Kubernetes-кластера — одна из ключевых задач DevOps-инженера. Чтобы вовремя обнаруживать и устранять проблемы с узлами, Google разработали Node Problem Detector (NPD). Этот инструмент интегрируется с Kubernetes и помогает автоматически выявлять неисправности узлов, такие как сбои оборудования, перегрузки или системные ошибки.

Node Problem Detector — это агент, который:
- Отслеживает проблемы на уровне операционной системы (например, ошибки ядра, падения процессов).
- Собирает метрики и логи, позволяя быстро диагностировать сбои.
- Обновляет статус узлов в Kubernetes, чтобы подсказать, какие из них нуждаются в ремонте или замене.
- Отправляет уведомления во внешние системы мониторинга, такие как Prometheus или Stackdriver.

🛠Как настроить?
1. Установить DaemonSet: Node Problem Detector разворачивается на всех узлах кластера как DaemonSet.
2. Настроить конфигурацию: Можно задать правила для обнаружения конкретных типов проблем. Например, мониторинг системных логов для поиска определённых сообщений об ошибках.
3. Интеграция с Kubernetes: Проблемы автоматически отражаются в статусе узлов (NodeCondition), что позволяет оркестратору учитывать их при планировании подов.
4. Отправка данных в Prometheus, Grafana или другие системы для удобного отслеживания.

📎 Подробнее про пошаговую настройку NPD в источнике
🔥5👍2😁1
🎉 Розыгрыш от Proglib Academy и DigitalRazor!

С 27 ноября по 27 декабря у вас есть шанс не только прокачать свои навыки, но и выиграть ПК при покупке любого курса Академии!

🎁 Призы для участников акции:

Игровой ПК DigitalRazor ProGaming
VIP-пакет курса Proglib Academy

💡 Как принять участие?
Купите любой курс Proglib Academy с 27 ноября по 27 декабря и получите шанс выиграть мощный ПК.

Приобретите технику DigitalRazor — участвуйте в розыгрыше VIP курса.

📅 Вместе с DigitalRazor мы создали спецпредложение -50% на курсы до 30 ноября, чтобы вы могли начать обучение на более выгодных условиях.

Выбрать курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔄 Поллинг или вебхуки: что лучше подойдет для вашего приложения

Существует множество технологий обмена данными — WebSockets, SSE, gRPC, брокеры сообщений — однако специфика и ограничения некоторых проектов заставляют разработчика сделать выбор между поллингом и вебхуками. Разберем преимущества и недостатки этих методов.

👉 Статья
👍1🔥1
💡 Как избежать катастрофы при переходе на PostgreSQL: руководство по спасению базы данных

Переход на PostgreSQL — это не просто замена одного инструмента другим. Неправильный подход может привести к потере данных, снижению производительности и длительным простоям. Особенно это касается хранимых процедур: различия между PL/pgSQL и языками, такими как PL/SQL или T-SQL, могут вызывать ошибки, которые сложно обнаружить заранее.

Если вы хотите узнать, как избежать этих проблем, правильно спланировать переход и не потерять производительность, ознакомьтесь с важными советами и готовыми решениями, которые сделают миграцию безопасной и эффективной. 🚀

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 localhost vs 127.0.0.1: в чем разница?

🎯 localhost — это доменное имя, которое всегда указывает на ваш локальный компьютер. Когда вы обращаетесь к нему, система преобразует его в IP-адрес через файл hosts или DNS.

🎯 127.0.0.1 — это IP-адрес для loopback-интерфейса, напрямую указывающий на устройство, с которого идет запрос.

На практике оба термина означают одно и то же: ваш компьютер. Однако разница кроется в уровне обращения: localhost проходит через имя домена, а 127.0.0.1 сразу обращается к сетевому интерфейсу.

Почему это важно?
При настройке серверов или тестировании приложений знание этих тонкостей поможет избежать проблем, например, связанных с кэшированием DNS или неверной конфигурацией.
👍1
🎯 Вы уверены, что понимаете коллег-фронтендеров, когда они говорят о React, Webpack или CSS-Grid?

А что, если завтра придется настроить CI/CD пайплайн для сложного фронтенда или помочь команде с багом, который воспроизводится только на клиенте?

Пройдите этот беспощадный тест по фронтенду, чтобы проверить, насколько хорошо вы знаете стек, который деплоите каждый день:
👉 Попробовать свои силы
👍1
🏢📊 Как сократить расходы на инфраструктуру в 20 раз: опыт внедрения мультитенантной архитектуры

Снизить затраты на инфраструктуру в десятки раз — не фантастика, а реальность. Мультитенантная архитектура помогает не только экономить деньги, но и упрощает подключение новых клиентов, масштабирование и обслуживание системы. Такой подход значительно облегчает работу и открывает новые возможности для роста.

Хотите узнать, как правильно её внедрить, избежать типичных ошибок и достичь впечатляющих результатов? Ознакомьтесь с реальным опытом, который вдохновит на изменения. 🍹

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
Кто ведёт оркестр? Kubernetes vs Docker Swarm vs Nomad

Существует несколько популярных решений для оркестрации, среди которых Kubernetes, Docker Swarm и Nomad. Каждое из этих решений имеет свои особенности, преимущества и ограничения.

⚙️ Kubernetes является мощным и гибким инструментом, способным справляться с крупномасштабными задачами, но требует определённых усилий для настройки и эксплуатации.

⚙️ Docker Swarm же проще в использовании и идеально подходит для проектов средней сложности, но ограничен в функционале.

⚙️ Nomad, в свою очередь, представляет собой универсальное решение для оркестрации не только контейнеров, но и других типов рабочих нагрузок.

📎 Подробнее про выбор оркестратора
👍3🥰1
⚙️ Что такое Kubernetes StatefulSets и когда их использовать?

StatefulSets — это контроллеры, которые помогают управлять приложениями с состоянием. Например, для баз данных или других сервисов, которые должны сохранять уникальные идентификаторы или данные при перезапуске.

Ключевые особенности StatefulSets:
Стабильные имена подов: Каждый под получает уникальное имя (например, myapp-0, myapp-1), которое сохраняется после перезапуска.
Постоянные хранилища: Под каждого экземпляра приложения привязывается своё PersistentVolume для хранения данных.
Последовательные обновления и масштабирование: Поды обновляются и масштабируются по очереди, что минимизирует риски потери данных и сбоев.

Когда использовать StatefulSets:
⚙️ Базы данных: MongoDB, PostgreSQL, MySQL.
⚙️ Любое приложение, которому необходимо сохранять уникальные данные или конфигурации между перезапусками.
👍43
Обнаружен UEFI bootkit для Linux — BootKitty

Исследователи безопасности обнаружили новый UEFI bootkit под названием BootKitty, который нацелен на операционные системы Linux. Этот тип вредоносного ПО проникает в процесс загрузки системы на уровне прошивки, что позволяет ему оставаться скрытым и работать до того, как загружается сама операционная система. Это делает его особенно опасным, поскольку такие угрозы могут сохраняться даже после перезагрузки или переустановки системы.

BootKitty представляет собой серьёзную угрозу для серверов и инфраструктуры, так как он может оставаться незамеченным в течение длительного времени и продолжать функционировать, несмотря на попытки очистить систему. Для защиты от подобных атак важно регулярно обновлять прошивки и использовать механизмы безопасности, такие как Secure Boot.

📎 Подробнее читайте в статье
👍1😁1