Forwarded from DevOps FM
Docker объявили об изменениях после обратной связи от сообщества. Команда Docker пересмотрела свои планы, чтобы улучшить поддержку экосистемы и опыт пользователей.
Смотрим на изменения:
1. Оплата за скачивание образов отменена
Docker отказались от планов по введению платы для всех пользователей. Объяснили это желанием укрепить платформу и предоставить разработчикам возможность создавать, делиться и внедрять инновации без ненужных барьеров.
2. Обновление лимитов на скачивание
Теперь для неаутентифицированных пользователей будет доступно 10 pull-запросов в час. Аутентифицированным пользователям увеличили лимит с 40 до 100 запросов в час. Для пользователей с подпиской ограничений не планируется.
3. Отсрочка платы за хранение
Планы по введению платы за хранение данных на Docker Hub отложены на неопределённый срок. Вместо этого Docker сосредоточится на создании инструментов для управления хранилищем. О любых изменениях в политике будет объявлено за 6 месяцев.
Изменения вступают в силу с 1 апреля этого года.
#DevOps #Docker #DockerHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Forwarded from DevOps FM
Вам когда-нибудь приходилось выгонять AWS из вашей кровати? Нет? А вот Дилану Айри пришлось.
Автор статьи делится своим опытом исследования уязвимостей в умной кровати Eight Sleep. Устройство стоимостью $2000 предлагает регулировку температуры, однако для работы кровати требуется интернет, подписка за 19$ и мобильное приложение.
После получения прошивки устройства, которую можно легко скачать, Дилан провел исследование и не был особенно впечатлен тем, что обнаружил:
• бэкдор, который дает компании возможность получить доступ к кровати по SSH, выполнить произвольный код и оттуда исследовать всю сеть пользователя;
• активный ключ AWS, который мог быть использован для передачи данных в Amazon.
Прочитать все подробности и узнать, как автор решил проблему, можно в статье 👈
Желаем всем, кто отдыхает, хороших выходных, а тем, кто дежурит — спокойных смен без серьёзных алертов!
#devops #пятничное_чтиво
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Forwarded from Заметки Хакер
🖥 Репозиторий: Руководство по DevOps
Руководство по DevOps включает все конфигурации от этапа разработки до рабочей среды с важными заметками для эффективной отладки.
— Этот репозиторий содержит:
1. Определение DevOps;
2. Дорожную карту DevOps;
3. Практические лабораторные работы по IBM Kubernetes;
4. Как стать DevOps-инженером за шесть месяцев и многое другое.
⏺ Ссылка на GitHub (https://github.com/Tikam02/DevOps-Guide)
#DevOps #GitHub
@hackernews_lib
Руководство по DevOps включает все конфигурации от этапа разработки до рабочей среды с важными заметками для эффективной отладки.
— Этот репозиторий содержит:
1. Определение DevOps;
2. Дорожную карту DevOps;
3. Практические лабораторные работы по IBM Kubernetes;
4. Как стать DevOps-инженером за шесть месяцев и многое другое.
⏺ Ссылка на GitHub (https://github.com/Tikam02/DevOps-Guide)
#DevOps #GitHub
@hackernews_lib
👎6👍1
Forwarded from DevOps FM
С весной приходит тепло, а со средой — новостной дайджест на DevOps FM.
🟡 OpenSSF выпустили сборник по безопасности и open source проектов.
Open Source Security Foundation опубликовали Security Baseline for Open Source Projects — документ с набором рекомендаций, направленных на повышение уровня безопасности проектов с открытым исходным кодом.
Что туда входит:
• Процессы для выявления, отслеживания и устранения уязвимостей в проектах;
• Практики по безопасному управлению зависимостями (OSA/SCA);
• Требования к созданию документации, а также рекомендации по управлению правами доступа к репозиториям и CI/CD.
Критерии безопасности и элементы управления, которым должны соответствовать проекты, организованы по уровню зрелости и категориям. Прочитать можно тут и на GitHub.
⚫️ HashiCorp — всё. IBM завершили сделку по приобретению компании.
Новости о покупке появились еще в апреле прошлого года. Не смотря на это, HashiCorp продолжит работать под своим названием и после поглощения, являясь подразделением IBM.
О возможности возвращения продуктов HashiCorp (Terraform, Vagrant, Packer, Hermes, Nomad) на открытую лицензию все еще ничего не известно.
🟡 Cloudflare блокирует пользователей непопулярных браузеров, считая их подозрительными.
Пользователи браузеров Pale Moon, SeaMonkey, Falkon и других сталкиваются с блокировкой доступа к сайтам из-за системы защиты Cloudflare. Алгоритмы компании ошибочно принимают эти браузеры за ботов, что приводит к бесконечным циклам загрузки или полному отказу в доступе.
Жалобы на блокировки поступают с 2015 года, и несмотря на периодические исправления, проблема продолжает возникать снова и снова. Популярные браузеры также не гарантируют доступ — с ограничениями сталкиваются пользователи старых версий, например, Firefox 115 ESR.
Cloudflare ориентированы на корпоративных клиентов, и у обычных пользователей нет прямого способа сообщить о проблеме, кроме форума сообщества. Что иронично, доступ к нему также может быть ограничен для вышеперечисленных браузеров.
#devops #opensource #security
🟡 OpenSSF выпустили сборник по безопасности и open source проектов.
Open Source Security Foundation опубликовали Security Baseline for Open Source Projects — документ с набором рекомендаций, направленных на повышение уровня безопасности проектов с открытым исходным кодом.
Что туда входит:
• Процессы для выявления, отслеживания и устранения уязвимостей в проектах;
• Практики по безопасному управлению зависимостями (OSA/SCA);
• Требования к созданию документации, а также рекомендации по управлению правами доступа к репозиториям и CI/CD.
Критерии безопасности и элементы управления, которым должны соответствовать проекты, организованы по уровню зрелости и категориям. Прочитать можно тут и на GitHub.
⚫️ HashiCorp — всё. IBM завершили сделку по приобретению компании.
Новости о покупке появились еще в апреле прошлого года. Не смотря на это, HashiCorp продолжит работать под своим названием и после поглощения, являясь подразделением IBM.
С этим приобретением IBM стремится продолжать инвестировать в возможности HashiCorp и расширять их, и вместе с ведущими технологиями HashiCorp и обширным сообществом разработчиков, наша цель — внедрить технологии HashiCorp в каждый дата центр.
О возможности возвращения продуктов HashiCorp (Terraform, Vagrant, Packer, Hermes, Nomad) на открытую лицензию все еще ничего не известно.
🟡 Cloudflare блокирует пользователей непопулярных браузеров, считая их подозрительными.
Пользователи браузеров Pale Moon, SeaMonkey, Falkon и других сталкиваются с блокировкой доступа к сайтам из-за системы защиты Cloudflare. Алгоритмы компании ошибочно принимают эти браузеры за ботов, что приводит к бесконечным циклам загрузки или полному отказу в доступе.
Жалобы на блокировки поступают с 2015 года, и несмотря на периодические исправления, проблема продолжает возникать снова и снова. Популярные браузеры также не гарантируют доступ — с ограничениями сталкиваются пользователи старых версий, например, Firefox 115 ESR.
Cloudflare ориентированы на корпоративных клиентов, и у обычных пользователей нет прямого способа сообщить о проблеме, кроме форума сообщества. Что иронично, доступ к нему также может быть ограничен для вышеперечисленных браузеров.
#devops #opensource #security
❤1
Forwarded from DevOps FM
Всем DevOps! Мы уже рассказывали вам про зомби-ресурсы в облачных инфраструктурах. Вот только облака — не единственное место их обитания.
🧟 Зомби-memcg — остаточные memory cgroups в Linux, которые продолжают существовать, даже если все связанные с ними процессы завершены. Они могут нести за собой высокие нагрузки, нехватку производительности системы и памяти.
Почему это происходит?
• Баги в старых версиях ядра Linux, где очистка невозможна из-за ссылок на memcg;
• Некоторые структуры данных продолжают "удерживать" memcg, даже если сам он уже не используется (например pagecache, kernel stack, shared memory и др.).
О том, как найти и победить зомби-memcg рассказали в статье Oracle. Читаем и проверяем, не спряталась ли у вас парочка зомби!
#DevOps #Linux
🧟 Зомби-memcg — остаточные memory cgroups в Linux, которые продолжают существовать, даже если все связанные с ними процессы завершены. Они могут нести за собой высокие нагрузки, нехватку производительности системы и памяти.
Почему это происходит?
• Баги в старых версиях ядра Linux, где очистка невозможна из-за ссылок на memcg;
• Некоторые структуры данных продолжают "удерживать" memcg, даже если сам он уже не используется (например pagecache, kernel stack, shared memory и др.).
О том, как найти и победить зомби-memcg рассказали в статье Oracle. Читаем и проверяем, не спряталась ли у вас парочка зомби!
#DevOps #Linux
👍6
Forwarded from DevOps FM
На канале DevOps FM — подборка свежих статей и релизов.
🟡 Опубликована Debian 12.10
Новый релиз включает в себя улучшенный установочный носитель, 66 багфиксов и 44 обновления с устранением уязвимостей. Версия 12.10 является последней в ветке, следующий мажорный выпуск Debian 13 должен выйти во второй половине 2025 года.
Полный список фиксов — тут.
⚫️ В блоге CNCF рассказали о создании масштабируемых, гибких и безопасных API с использованием Kubernetes и микросервисов. В статье обсуждаются инструменты и практики для обеспечения высокой доступности и эффективности API, а также рекомендации по обеспечению безопасности с помощью Kubernetes.
🟡 Релизнули Git v2.49. В обновление вошли 460 функций и исправления ошибок от 89 разработчиков. Из интересного:
• Добавили новый инструмент
•
• Ускорили упаковку благодаря
• Были добавлены первые фрагменты кода Rust.
⚫️ OpenSearch поделились новой функцией векторного поиска с GPU ускорением, которая будет добавлена в предстоящем релизе OpenSearch 3.0. Функция необходима для ускорения обработки больших объёмов векторных данных. Для этого обновили архитектуру, алгоритмы взаимодействия и сделали сравнительный анализ.
Подробное описание и результаты анализа смотрим в блоге.
#Devops #Git #OpenSearch
🟡 Опубликована Debian 12.10
Новый релиз включает в себя улучшенный установочный носитель, 66 багфиксов и 44 обновления с устранением уязвимостей. Версия 12.10 является последней в ветке, следующий мажорный выпуск Debian 13 должен выйти во второй половине 2025 года.
Полный список фиксов — тут.
⚫️ В блоге CNCF рассказали о создании масштабируемых, гибких и безопасных API с использованием Kubernetes и микросервисов. В статье обсуждаются инструменты и практики для обеспечения высокой доступности и эффективности API, а также рекомендации по обеспечению безопасности с помощью Kubernetes.
🟡 Релизнули Git v2.49. В обновление вошли 460 функций и исправления ошибок от 89 разработчиков. Из интересного:
• Добавили новый инструмент
git backfill;•
git clone научился делать shallow clone для одного коммита;• Ускорили упаковку благодаря
name‑hash v2;• Были добавлены первые фрагменты кода Rust.
⚫️ OpenSearch поделились новой функцией векторного поиска с GPU ускорением, которая будет добавлена в предстоящем релизе OpenSearch 3.0. Функция необходима для ускорения обработки больших объёмов векторных данных. Для этого обновили архитектуру, алгоритмы взаимодействия и сделали сравнительный анализ.
Подробное описание и результаты анализа смотрим в блоге.
#Devops #Git #OpenSearch
🔥1
Forwarded from DevOps FM
Disaster recovery — это стратегии и инструменты, которые помогают быстро восстановить инфраструктуру после сбоев и минимизировать простой. Традиционные DR-решения могут стоить сотни тысяч долларов в год. Terraform помогает реализовать эффективные стратегии аварийного восстановления, сокращая время простоя и потери данных, а также уменьшая затраты на инфраструктуру.
4 основных стратегии, которые можно реализовать с Terraform:
1. Backup & Restore
Самая базовая и наименее затратная стратегия. Однако, в зависимости от объема данных и процесса восстановления, может привести к высоким показателям RTO и RPO. Используйте
-refresh-only для синхронизации состояния после восстановления из резервной копии, чтобы избежать дрейфа.2. Pilot Light
Это стратегия, когда минимально необходимая инфраструктура постоянно поддерживается в рабочем состоянии, а при сбое быстро разворачивается полноценная копия. Через условные выражения в Terraform можно разворачивать только минимальный набор ресурсов, а остальные оставить выключенными. С такой стратегией масштабировать инфраструктуру до необходимого состояния быстрее, чем в Backup & Restore.
3. Active/Passive
При выборе данной стратегии, у вас будет два окружения: активное и пассивное, которое стоит в режиме ожидания и включается в случае сбоя основной. Пассивное минимально синхронизируется с активным, но не обслуживает пользователей. В Terraform можно отдельно помечать активный и пассивный стенд в конфигурации через conditionals. А при инциденте менять роли, активируя пассивную инфраструктуру и почти мгновенно масштабируя её до полной.
4. Multi-Region Active/Active
Дорогостоящая, но надёжная стратегия. Полноценные среды развёрнуты в нескольких регионах и одновременно обслуживают пользователей. Если один регион выходит из строя, трафик автоматически перенаправляется в другие работоспособные среды. Здесь модули Terraform могут использоваться для инкапсуляции и повторного использования компонентов инфраструктуры.
#devops #terraform
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4👍3❤1
Forwarded from Azalio_tech (Mikhail [azalio] Petrov)
🔒 Отключаем анонимный доступ к kube-apiserver, но оставляем health checks!
Привет! Недавно ко мне пришел коллега-безопасник (Дима привет!) с интересным вопросом: как полностью отключить анонимный доступ к API-серверу Kubernetes, но оставить рабочими проверки
Проблема в том, что по умолчанию (`--anonymous-auth=true`) любой может дернуть эндпоинты health-чеков и не только health-чеков:
Это удобно, но создает потенциальный вектор атаки, если RBAC настроен не идеально или найдется уязвимость. Безопасники такое не любят. 😟
К счастью, в KEP-4633 сообщество Kubernetes предложило решение! Теперь можно тонко настроить, к каким путям разрешен анонимный доступ, даже если глобально он выключен.
Сделать это можно так:
Сначала выключаем глобальный анонимный доступ в манифесте
Затем создаем файл конфигурации
*(Не забудьте добавить
В итоге получаем:
- Запросы к
- Запросы к другим путям (например,
Кстати, эта функциональность появилась как Alpha в Kubernetes 1.31 и стала Beta в 1.32.
Теперь можно спать спокойнее, зная, что анонимный доступ под контролем!
#kubernetes #k8s #security #authentication #kubeadm #devops #infosec
Привет! Недавно ко мне пришел коллега-безопасник (Дима привет!) с интересным вопросом: как полностью отключить анонимный доступ к API-серверу Kubernetes, но оставить рабочими проверки
/livez, /readyz и /healthz? 🤔 Сходу не ответил, полез копаться в исходниках и KEPах.Проблема в том, что по умолчанию (`--anonymous-auth=true`) любой может дернуть эндпоинты health-чеков и не только health-чеков:
curl -k https://<API_SERVER_IP>:6443/livez
# Output: ok
Это удобно, но создает потенциальный вектор атаки, если RBAC настроен не идеально или найдется уязвимость. Безопасники такое не любят. 😟
К счастью, в KEP-4633 сообщество Kubernetes предложило решение! Теперь можно тонко настроить, к каким путям разрешен анонимный доступ, даже если глобально он выключен.
Сделать это можно так:
Сначала выключаем глобальный анонимный доступ в манифесте
kube-apiserver:
spec:
containers:
- command:
- kube-apiserver
# ... другие флаги ...
- --anonymous-auth=false # <--- Выключаем!
- --authentication-config=/etc/kubernetes/auth-config.yaml # <--- Указываем конфиг
Затем создаем файл конфигурации
/etc/kubernetes/auth-config.yaml на control plane нодах и монтируем его в под kube-apiserver:
# /etc/kubernetes/auth-config.yaml
apiVersion: apiserver.config.k8s.io/v1beta1
kind: AuthenticationConfiguration
anonymous:
enabled: true # Включаем анонимный доступ *только* для указанных путей
conditions:
- path: /livez
- path: /readyz
- path: /healthz
*(Не забудьте добавить
volume и volumeMount в манифест kube-apiserver для этого файла)*В итоге получаем:
- Запросы к
/livez, /readyz, /healthz проходят как system:anonymous.- Запросы к другим путям (например,
/apis) без аутентификации получают 401 Unauthorized.Кстати, эта функциональность появилась как Alpha в Kubernetes 1.31 и стала Beta в 1.32.
Теперь можно спать спокойнее, зная, что анонимный доступ под контролем!
#kubernetes #k8s #security #authentication #kubeadm #devops #infosec
👍3
Forwarded from DevOps FM
#devops #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Forwarded from DevOps
digital-periodic-table-of-devsecops.png
615.1 KB
Полезная таблица инструментов DevSecOps
Если ты учишься с нуля, устраняешь пробелы или заменяешь существующие инструменты, начни с Периодической таблицы, чтобы подобрать оптимальные решения для своей DevOps-пайплайна.
#devops #девопс
@devopsitsec
Если ты учишься с нуля, устраняешь пробелы или заменяешь существующие инструменты, начни с Периодической таблицы, чтобы подобрать оптимальные решения для своей DevOps-пайплайна.
#devops #девопс
@devopsitsec
Forwarded from DevOps FM
В прошлом мы уже обсуждали зомби-ресурсы в облаке, теперь пришло время зомби-процессов — и не где-нибудь, а внутри Docker-контейнера с Go-приложением.
Савас Вендова делится кейсом, в котором его сервер стабильно падал с ошибкой
Redis Pub/Sub из-за проблем с утечкой памяти. Причиной были зомби: дочерние процессы Node.js не завершались корректно даже после os.Process.Kill() в Go. А поскольку приложение запускалось как PID 1 внутри Docker, оно не собирало съедающие ресурсы зомби-процессы.Проблему решили с помощью Tini — init-решения для контейнеров. Оно перехватывает SIGCHLD и корректно завершает все процессы. Подробный разбор кейса с примерами читаем здесь.
Желаем всем, кто отдыхает, хороших выходных, а тем, кто дежурит — спокойных смен без серьёзных алертов и зомби!
#devops #docker #go #zombieprocesses
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
Не каждый работает с инфраструктурой, где чувствительные данные разбросаны между десятками микросервисов, облаками и кодовой базой. Тем интереснее узнать, как такие системы устроены и как в них обеспечивают безопасность.
В Uber рассказали, как они создали централизованную платформу управлением секретами, которая изменила их подход к защите распределённых систем. Они объединили более 25 разрозненных хранилищ в отказоустойчивую систему на базе Vault, автоматизировали 20 000 ротаций в месяц и сократили дистрибуцию секретов на 90%. А ещё — разработали собственный протокол для обмена с внешними сервисами и движутся к модели secretless благодаря SPIRE.
О том, как это удалось реализовать — в статье.
#devops #security #infrastructure
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
Привет! В эту пятницу предлагаем разобраться, как Kubernetes управляет сетями — от ядра Linux до сервис-мешей.
Лука Каваллин написал подробную статью о том, что происходит с пакетами и подами в Kubernetes-кластере. В статье — фундаментальные принципы работы сетей в Linux, контейнерах и Kubernetes, а также современные абстракции: Service, Ingress и Gateway API. Автор не обошёл стороной и работу в мультикластерах, и типичные проблемы с сетевой доступностью между подами.
С деталями можно ознакомиться по ссылке.
Желаем приятного чтения! Тем, кто отдыхает — хороших выходных, а тем, кто работает — спокойных дежурных смен!
#devops #kubernetes #networking #pods
Лука Каваллин написал подробную статью о том, что происходит с пакетами и подами в Kubernetes-кластере. В статье — фундаментальные принципы работы сетей в Linux, контейнерах и Kubernetes, а также современные абстракции: Service, Ingress и Gateway API. Автор не обошёл стороной и работу в мультикластерах, и типичные проблемы с сетевой доступностью между подами.
С деталями можно ознакомиться по ссылке.
Желаем приятного чтения! Тем, кто отдыхает — хороших выходных, а тем, кто работает — спокойных дежурных смен!
#devops #kubernetes #networking #pods
👍5❤1👎1
Forwarded from DevOps
💡 Ещё один продвинутый совет для Linux-админов:
Проверь, какие процессы активно используют swap — даже если в системе вроде бы хватает RAM.
Это поможет найти медленные службы, которые вы не ожидали увидеть в свопе, и улучшить производительность.
🐌 Процессы, активно использующие swap (swap hog detector)
📌 Даже если swap включен "про запас", вы удивитесь, сколько "вроде бы активных" сервисов частично выгружены на диск — отсюда тормоза, задержки в API, медленные реакции.
Решения:
– пересмотреть
– перезапустить эти процессы
– увеличить RAM или выделить hugepages
#linux #performance #swap #memory #sysadmin #devops
Проверь, какие процессы активно используют swap — даже если в системе вроде бы хватает RAM.
Это поможет найти медленные службы, которые вы не ожидали увидеть в свопе, и улучшить производительность.
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
cmd=$(cat /proc/$pid/comm 2>/dev/null)
swap=$(grep VmSwap /proc/$pid/status 2>/dev/null | awk '{print $2}')
if [ "$swap" != "" ] && [ "$swap" -gt 0 ]; then
echo "$swap KB swap used by $cmd (PID $pid)"
fi
done | sort -nr | head
🐌 Процессы, активно использующие swap (swap hog detector)
📌 Даже если swap включен "про запас", вы удивитесь, сколько "вроде бы активных" сервисов частично выгружены на диск — отсюда тормоза, задержки в API, медленные реакции.
Решения:
– пересмотреть
vm.swappiness – перезапустить эти процессы
– увеличить RAM или выделить hugepages
#linux #performance #swap #memory #sysadmin #devops
👍5
Forwarded from Sysadmin Tools 🇺🇦
Alerting best practices
https://victoriametrics.com/blog/alerting-best-practices
#sre #devops #observability #monitoring
https://victoriametrics.com/blog/alerting-best-practices
#sre #devops #observability #monitoring
Forwarded from DevOps
📌 Git Revert vs Git Reset: В чём разница? 🔄
Когда вы делаете ошибку в Git, важно понимать, как правильно её исправить. Два самых популярных способа —
### 🔹 Git Revert
- Создаёт новый коммит, который отменяет изменения из проблемного коммита.
- История сохраняется полностью — всё видно, даже ошибка.
- Безопасный вариант для публичных веток (например, `main`).
- Не удаляет коммиты — просто "откатывает" их эффект.
> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C4: Revert C3
> Результат: ошибка отменена, но история остаётся полной.
🔹 Git Reset
- Удаляет коммит(ы) из истории.
- Изменяет историю репозитория — может быть опасно, если уже был пуш.
- Подходит только для локальных изменений или ещё не опубликованных коммитов.
- Есть три режима:
> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C3 убрано
> Результат: история обрезана, как будто коммит никогда не был.
💡 Вывод:
📌 Понимание этих команд — ключ к уверенной работе с Git!
#Git #DevOps #Programming #SoftwareEngineering
Когда вы делаете ошибку в Git, важно понимать, как правильно её исправить. Два самых популярных способа —
git revert и git reset. Но они работают по-разному!### 🔹 Git Revert
- Создаёт новый коммит, который отменяет изменения из проблемного коммита.
- История сохраняется полностью — всё видно, даже ошибка.
- Безопасный вариант для публичных веток (например, `main`).
- Не удаляет коммиты — просто "откатывает" их эффект.
> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C4: Revert C3
> Результат: ошибка отменена, но история остаётся полной.
🔹 Git Reset
- Удаляет коммит(ы) из истории.
- Изменяет историю репозитория — может быть опасно, если уже был пуш.
- Подходит только для локальных изменений или ещё не опубликованных коммитов.
- Есть три режима:
soft, mixed, hard.> 💡 Пример:
> C1 → C2 → C3 (ошибка) → C3 убрано
> Результат: история обрезана, как будто коммит никогда не был.
💡 Вывод:
revert — безопасный и прозрачный способ отменить изменения. reset — мощный инструмент, но требует осторожности.📌 Понимание этих команд — ключ к уверенной работе с Git!
#Git #DevOps #Programming #SoftwareEngineering
❤4👍2👎1
Forwarded from DevOps FM
📚 Пятничное чтиво на канале DevOps FM.
Миграция на Kubernetes прошла успешно… почти. А потом каждый миллионный запрос начал рабоатть в 100 раз медленнее. Звучит как довольно редкий баг, но команде Pinterest посчастливилось его поймать.
Инженеры долго искали виновника: проверяли ноды, копались в
Дело в том, что
Желаем всем, кто отдыхает, хороших выходных, а тем, кто дежурит — спокойных смен без серьёзных алертов!
#devops #пятничное_чтиво #debugging
Миграция на Kubernetes прошла успешно… почти. А потом каждый миллионный запрос начал рабоатть в 100 раз медленнее. Звучит как довольно редкий баг, но команде Pinterest посчастливилось его поймать.
Инженеры долго искали виновника: проверяли ноды, копались в
cgroups и безрезультатно отключали CPU pinning. Только глубокое расследование вывело их на виновника — cAdvisor, компонент мониторинга Kubernetes.Дело в том, что
cAdvisor запускал метрику container_referenced_bytes, которая принудительно сбрасывала accessed-биты в памяти. Это вызывало TLB-флеши и тормозила поисковый движок Pinterest. Историю, полную боли, багов и отладки на грани отчаяния можно прочитать по ссылке.Желаем всем, кто отдыхает, хороших выходных, а тем, кто дежурит — спокойных смен без серьёзных алертов!
#devops #пятничное_чтиво #debugging
🔥6👍1
Forwarded from DevOps FM
Kubernetes под микроскопом: как SPO видит действия пользователей
👩💻 Всем DevOps! Сегодня поговорим о том, как отслеживать, что происходит внутри контейнеров в Kubernetes. В стандартной конфигурации Kubernetes аудит фиксирует только действия на уровне API: кто применил
🔄 Принцип работы
SPO использует системные источники данных — например,
🔓 Как включить Security Profiles Operator?
- Установите cert-manager
Он нужен для автоматического управления сертификатами, используемыми SPO.
- Разверните Security Profiles Operator
Используйте официальный манифест из подборки репозиториев.
- Настройте хранение логов
SPO может сохранять логи: локально на узле (по умолчанию в
- Включите JSON Enricher
Он обогащает события дополнительной информацией о процессе.
- Настройте seccomp-профиль для отслеживания системных вызовов
Он фиксирует вызовы вроде
📎Репозитории с инструкциями по установке:
audit-logging-guide — описывает, как включить аудит действий внутри pod’ов и узлов через Security Profiles Operator.
installation-usage — показывает, как установить Security Profiles Operator и применить seccomp-профили к pod’ам.
С SPO вы поймете, что произошло, почему и кем было сделано — без лишней нагрузки и сложных интеграций.
#devops #kubernetes #spo
kubectl exec или kubectl debug. Что именно происходило внутри pod’а после входа в контейнер увидеть нельзя. Эту проблему решает Security Profiles Operator (SPO) — отслеживайте действия пользователей и процессов внутри pod’ов и на узлах.SPO использует системные источники данных — например,
/var/log/audit/audit.log и /proc/<pid>. Каждое событие записывается в JSON-формате, а JSON Enricher связывает его с соответствующим API-запросом через request UID. Это позволяет восстановить полную цепочку: API-запрос → контейнер → процесс → результат- Установите cert-manager
Он нужен для автоматического управления сертификатами, используемыми SPO.
- Разверните Security Profiles Operator
Используйте официальный манифест из подборки репозиториев.
- Настройте хранение логов
SPO может сохранять логи: локально на узле (по умолчанию в
/var/log/security-profiles-operator/ ), в общем томе (PVC), или выводить в stdout — удобно для интеграции с системами сбора логов вроде Loki или Elasticsearch;- Включите JSON Enricher
Он обогащает события дополнительной информацией о процессе.
- Настройте seccomp-профиль для отслеживания системных вызовов
Он фиксирует вызовы вроде
execve и clone, а объект ProfileBinding применяет профиль ко всем pod’ам в выбранном пространстве имён ( namespace ).📎Репозитории с инструкциями по установке:
audit-logging-guide — описывает, как включить аудит действий внутри pod’ов и узлов через Security Profiles Operator.
installation-usage — показывает, как установить Security Profiles Operator и применить seccomp-профили к pod’ам.
С SPO вы поймете, что произошло, почему и кем было сделано — без лишней нагрузки и сложных интеграций.
#devops #kubernetes #spo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Forwarded from DevOps FM
mypy в Python: типизация и контроль скриптов
👩💻 Сегодня обсудим, как встроить ad-hoc скрипты из ~/bin в предсказуемую и проверяемую автоматизацию. В статье Simple Thread Джо Понд дал руководство по снижению риска ошибок.
В чем кроется проблема?
• Скрипт удобен, но непредсказуем: ошибки типов проявляются только во время выполнения.
• Без явных контрактов функций рефакторинг становится рискованным, растёт технический долг.
• Чем больше людей правят код, тем выше риск регресса и скрытых багов в проде.
Какие решения?
Пошаговое улучшение надежности кода: добавьте статическую типизацию через mypy, управляйте зависимостями через Poetry и запускайте проверки в CI. Так, вы постепенно укрепляете код и минимизируете риски, когда проект расширяется и подключаются новые разработчики.
Как внедрить?
Проверка типов на старте — один файл за раз
• Добавьте в dev-dependencies:
• Запустите проверку для конкретного файла:
Так, вы находите баги до запуска и спокойно приступаете к следующему шагу.
Добавьте mypy в CI/CD
• Создайте окружение через Poetry и проверьте проект mypy
Типы проверяются в пайплайне: ошибки останавливают merge и защищают main branch от багов.
Мигрируйте постепенно
• Переносите типизацию модуль за модулем, начинайте с ключевых утилит и точек входа.
• Нет необходимости переписывать весь проект сразу — можно внедрять статическую проверку там, где она реально нужна.
Для желающих узнать историю развития Python рекомендуем прочесть статью здесь👈
Делимся подборкой репозиториев:
👩💻 python/mypy — анализирует типы для Python, реализует PEP 484. Нужен как эталонный инструмент для проверки контрактов и постепенной типизации кода.
👩💻 tsuyoshicho/action-mypy — готовая GitHub Action для запуска mypy в CI; поддерживает вывод в формате JSON, удобно для интеграции с reviewdog и системами агрегации ошибок
#devops #python #mypy
В чем кроется проблема?
• Скрипт удобен, но непредсказуем: ошибки типов проявляются только во время выполнения.
• Без явных контрактов функций рефакторинг становится рискованным, растёт технический долг.
• Чем больше людей правят код, тем выше риск регресса и скрытых багов в проде.
Какие решения?
Пошаговое улучшение надежности кода: добавьте статическую типизацию через mypy, управляйте зависимостями через Poetry и запускайте проверки в CI. Так, вы постепенно укрепляете код и минимизируете риски, когда проект расширяется и подключаются новые разработчики.
Как внедрить?
Проверка типов на старте — один файл за раз
• Добавьте в dev-dependencies:
poetry add --group dev mypy
• Запустите проверку для конкретного файла:
poetry run mypy main.py
Так, вы находите баги до запуска и спокойно приступаете к следующему шагу.
Добавьте mypy в CI/CD
• Создайте окружение через Poetry и проверьте проект mypy
poetry run mypy .
Типы проверяются в пайплайне: ошибки останавливают merge и защищают main branch от багов.
Мигрируйте постепенно
• Переносите типизацию модуль за модулем, начинайте с ключевых утилит и точек входа.
• Нет необходимости переписывать весь проект сразу — можно внедрять статическую проверку там, где она реально нужна.
Для желающих узнать историю развития Python рекомендуем прочесть статью здесь
Делимся подборкой репозиториев:
#devops #python #mypy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Forwarded from DevOps
7 бесплатных ресурсов, чтобы прокачаться в Linux и DevOps 👇
1) Bash → blog.sysxplore.com
2) Linux → linuxopsys.com
3) AWS → explore.skillbuilder.aws
4) Azure → learn.microsoft.com
5) DevOps → edx.org/learn/devops
6) Docker → docker-curriculum.com
7) Kubernetes → kubernetes.io
Фундамент DevOps = Linux + Shell + облака + контейнеры + оркестрация.
Начни с базиса — дальше всё соберётся.
#linux #devops #cloud #docker #kubernetes
1) Bash → blog.sysxplore.com
2) Linux → linuxopsys.com
3) AWS → explore.skillbuilder.aws
4) Azure → learn.microsoft.com
5) DevOps → edx.org/learn/devops
6) Docker → docker-curriculum.com
7) Kubernetes → kubernetes.io
Фундамент DevOps = Linux + Shell + облака + контейнеры + оркестрация.
Начни с базиса — дальше всё соберётся.
#linux #devops #cloud #docker #kubernetes
edX
Learn about DevOps | edX
Explore DevOps courses in software development, collaboration, and automation so you can enhance productivity in tech teams.
👎6