Forwarded from DevOps&SRE Library
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Мониторим ИТ
Anomaly Detection in Time Series Using Statistical Analysis
Иногда простое пороговое значение работает отлично — например, мониторинг дискового пространства на сервере. Можно просто установить оповещение при оставшихся 10%, и все будет в порядке. То же самое касается отслеживания доступной памяти на сервере.
Но что, если нужно отслеживать что-то вроде поведения пользователей на веб-сайте? Представьте себе, что вы управляете интернет-магазином, где продаете товары. Один из подходов может заключаться в том, чтобы установить минимальный порог для ежедневных продаж и проверять его раз в день. Но что, если что-то пойдет не так, и нужно будет обнаружить проблему гораздо раньше — в течение нескольких часов или даже минут? В этом случае статический порог не справится, потому что активность пользователей колеблется в течение дня. Вот тут-то и вступает в дело обнаружение аномалий. Читать дальше в статье.
❗️Статья на medium.com
Иногда простое пороговое значение работает отлично — например, мониторинг дискового пространства на сервере. Можно просто установить оповещение при оставшихся 10%, и все будет в порядке. То же самое касается отслеживания доступной памяти на сервере.
Но что, если нужно отслеживать что-то вроде поведения пользователей на веб-сайте? Представьте себе, что вы управляете интернет-магазином, где продаете товары. Один из подходов может заключаться в том, чтобы установить минимальный порог для ежедневных продаж и проверять его раз в день. Но что, если что-то пойдет не так, и нужно будет обнаружить проблему гораздо раньше — в течение нескольких часов или даже минут? В этом случае статический порог не справится, потому что активность пользователей колеблется в течение дня. Вот тут-то и вступает в дело обнаружение аномалий. Читать дальше в статье.
❗️Статья на medium.com
Forwarded from Библиотека Go-разработчика | Golang
📋 Чек-лист по синтаксису Go
Для разработчика на Go важно не только написать работающий код, но и сделать его понятным, чистым и соответствующим идиомам языка.
Составили для вас чек-лист, который поможет ускорить разработку в разы за счёт правильного и чистого кода.
✅ Основы синтаксиса
• Используется правильный package — каждый файл начинается с корректного определения пакета
• Импорты сгруппированы и отсортированы (стандартная библиотека, внешние пакеты, внутренние)
• Константы и переменные объявлены с типами, где это необходимо (
• Используется короткое объявление переменных
✅ Функции и методы
• Функции имеют четкие и понятные имена (глаголы для действий)
• Используется явный возврат значений (не прячем
• Обработка ошибок — всегда проверяется
• Используются именованные возвращаемые значения для улучшения читаемости (по необходимости).
• Методы объявлены с указателем
✅ Циклы и условия
• Циклы
• Используется
• В условных выражениях нет лишних скобок — Go этого не требует.
✅ Структуры и интерфейсы
• Структуры и интерфейсы объявлены с понятными именами.
• Используются теги для JSON, если структура используется для сериализации (
• Методы интерфейса определены минимально и по назначению.
• Композиция структур вместо наследования, где это возможно.
✅ Работа с ошибками
• Ошибки возвращаются явно из функций (
• Используются кастомные типы ошибок или fmt.Errorf с %w для обёртки ошибок.
• Важные ошибки логируются или обрабатываются на уровне вызова.
✅ Чистота кода и стиль
• Форматирование соответствует
• Лишние комментарии и неиспользуемые переменные удалены.
• Функции не слишком длинные — каждая отвечает за одну задачу.
• Использование
• Нет глобальных переменных, если это можно избежать.
✅ Работа с пакетами
• Пакеты не слишком большие, разделены по функционалу.
• Используются правильные уровни видимости: экспортируемые (с большой буквы) и неэкспортируемые элементы.
• Пакеты имеют README с описанием назначения (по возможности).
✅ Оптимизация и производительность
• Используются срезы и карты эффективно (избегаем ненужных копирований).
• Избегается выделение памяти в горячих циклах.
• Используются каналы и горутины с правильным управлением (контекст, тайм-ауты).
✅ Документация
• Публичные функции, типы и пакеты имеют комментарии в формате GoDoc.
• Документы объясняют назначение и использование, а не только перефразируют имена функций.
🐸 Библиотека Go разработчика #буст
Для разработчика на Go важно не только написать работающий код, но и сделать его понятным, чистым и соответствующим идиомам языка.
Составили для вас чек-лист, который поможет ускорить разработку в разы за счёт правильного и чистого кода.
• Используется правильный package — каждый файл начинается с корректного определения пакета
• Импорты сгруппированы и отсортированы (стандартная библиотека, внешние пакеты, внутренние)
• Константы и переменные объявлены с типами, где это необходимо (
var
и const
)• Используется короткое объявление переменных
:=
в локальной области• Функции имеют четкие и понятные имена (глаголы для действий)
• Используется явный возврат значений (не прячем
error
)• Обработка ошибок — всегда проверяется
if err != nil
• Используются именованные возвращаемые значения для улучшения читаемости (по необходимости).
• Методы объявлены с указателем
*Type
для изменения состояния (если нужно).• Циклы
for
написаны лаконично и с понятной логикой (без лишних вложенностей).• Используется
switch
вместо цепочек if-else
там, где это уместно.• В условных выражениях нет лишних скобок — Go этого не требует.
• Структуры и интерфейсы объявлены с понятными именами.
• Используются теги для JSON, если структура используется для сериализации (
json:"fieldName"
).• Методы интерфейса определены минимально и по назначению.
• Композиция структур вместо наследования, где это возможно.
• Ошибки возвращаются явно из функций (
return err
).• Используются кастомные типы ошибок или fmt.Errorf с %w для обёртки ошибок.
• Важные ошибки логируются или обрабатываются на уровне вызова.
• Форматирование соответствует
gofmt
/ goimports
.• Лишние комментарии и неиспользуемые переменные удалены.
• Функции не слишком длинные — каждая отвечает за одну задачу.
• Использование
defer
для освобождения ресурсов и закрытия файлов/соединений.• Нет глобальных переменных, если это можно избежать.
• Пакеты не слишком большие, разделены по функционалу.
• Используются правильные уровни видимости: экспортируемые (с большой буквы) и неэкспортируемые элементы.
• Пакеты имеют README с описанием назначения (по возможности).
• Используются срезы и карты эффективно (избегаем ненужных копирований).
• Избегается выделение памяти в горячих циклах.
• Используются каналы и горутины с правильным управлением (контекст, тайм-ауты).
• Публичные функции, типы и пакеты имеют комментарии в формате GoDoc.
• Документы объясняют назначение и использование, а не только перефразируют имена функций.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Код и Капуста
Обсервабилити
Неплохой гайд по обсервабилити Go приложений
#golang
https://www.lucavall.in/blog/opentelemetry-a-guide-to-observability-with-go
Неплохой гайд по обсервабилити Go приложений
#golang
https://www.lucavall.in/blog/opentelemetry-a-guide-to-observability-with-go
Forwarded from /usr/bin
Шардированный не значит распределённый: что важно знать, когда PostgreSQL становится мало
В основе большинства шардированных решений для PostgreSQL лежит очень простая идея: вместо одного PostgreSQL берут N, где каждый из Postgres'ов отвечает за определённый диапазон ключей таблицы. Знанием об этих диапазонах обладает специальный слой маршрутизации (координатор), который теперь для пользователя становится точкой входа. Слой маршрутизации может как находиться на стороне сервера (Citus-подобные решения), так и быть частью клиентского приложения. Важно понимать, что эти N инстансов PostgreSQL ничего не знают друг о друге и никак не взаимодействуют между собой. Читать дальше на Хабре.
В основе большинства шардированных решений для PostgreSQL лежит очень простая идея: вместо одного PostgreSQL берут N, где каждый из Postgres'ов отвечает за определённый диапазон ключей таблицы. Знанием об этих диапазонах обладает специальный слой маршрутизации (координатор), который теперь для пользователя становится точкой входа. Слой маршрутизации может как находиться на стороне сервера (Citus-подобные решения), так и быть частью клиентского приложения. Важно понимать, что эти N инстансов PostgreSQL ничего не знают друг о друге и никак не взаимодействуют между собой. Читать дальше на Хабре.
Forwarded from Positive Hack Days Media
Смотрите трансляцию, если не смогли сегодня присоединиться лично.
Также трансляции доступны в «VK Видео» и на Rutube.
@PHDays. 22-24 мая. «Лужники»
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps&SRE Library
Understanding the 1MB Limit of Etcd in Kubernetes: Challenges with Helm Deployments
https://logeshbalu1998.medium.com/understanding-the-1mb-limit-of-etcd-in-kubernetes-challenges-with-helm-deployments-47ef41f37e9c
https://logeshbalu1998.medium.com/understanding-the-1mb-limit-of-etcd-in-kubernetes-challenges-with-helm-deployments-47ef41f37e9c
Forwarded from Код и Капуста
gRPC
Небольшой туториал как использовать gRPC в кубере
#golang
https://nyadgar.com/posts/scaling-grpc-with-kubernetes-using-go/
Небольшой туториал как использовать gRPC в кубере
#golang
https://nyadgar.com/posts/scaling-grpc-with-kubernetes-using-go/
Forwarded from /usr/bin
Выкрутили автоматизацию на максимум: с чем кроме инвентаризации помог переход на NetBox
В этой статьекровавый крупный энтерпрайз рассказывает о своем опыте использования NetBox. А продукт и правда интересный. Поделитесь в комментариях о своем опыте его использования.
В этой статье
Forwarded from Мониторим ИТ
VictoriaMetrics : Effective alerts, from theory to practice
Golden Signals, PromQL/MetricsQL и VMalert. В статье разобраны подходы к алертингу из VM.
Golden Signals, PromQL/MetricsQL и VMalert. В статье разобраны подходы к алертингу из VM.
Forwarded from /usr/bin
Подводные камни при работе с файлами в Linux с примерами на Python
Работа с файлами в Python кажется простой — open, read, write. Но на практике, особенно в системах с высокими требованиями к отказоустойчивости, стабильности и логированию, за банальными строками кода может скрываться целый мир проблем.
В этой статье разобрано, как знание внутренностей Linux может помочь избежать потерь данных и облегчить отладку. Все примеры будут на Python, но применимы к любым языкам, работающим через POSIX-интерфейсы.
Работа с файлами в Python кажется простой — open, read, write. Но на практике, особенно в системах с высокими требованиями к отказоустойчивости, стабильности и логированию, за банальными строками кода может скрываться целый мир проблем.
В этой статье разобрано, как знание внутренностей Linux может помочь избежать потерь данных и облегчить отладку. Все примеры будут на Python, но применимы к любым языкам, работающим через POSIX-интерфейсы.
Forwarded from Человек и машина
#машины_разное
Позавчера закончилась Tech Internals Conf Berlin, и я был рад пообщаться с ветеранами индустрии.
Под конец конфы у нас был форум, посвященный извечному дискурсу «Скорость против Качества», где два лагеря обсуждали, стоит ли делать быстро, или же правильно.
Вне всяких сомнений, ответ на этот вопрос будет «it depends», но к нему есть важное дополнение.
Время - ограниченный ресурс, и тратить его надо на то, что важно и нужно сейчас, а значит, на некоторые недостатки (даже на страницу, которая грузится 15 секунд, да-да, я тебя запомнил!), можно и нужно закрывать глаза.
Интересная и одновременно с этим приятная мудрость придет тогда, когда вы начнете отпускать те маленькие и крупные недостатки, которые уж очень раздражают, но практическая польза от их устранения стремится к нулю.
Если же вы и только вы знаете, насколько это важно и нужно и надо прямо сейчас, я приглашаю вас прочитать хороший пост на тему избавления от острой потребности чинить все, до чего дотянутся руки.
Отвечать за весь мир нет необходимости. :)
Позавчера закончилась Tech Internals Conf Berlin, и я был рад пообщаться с ветеранами индустрии.
Под конец конфы у нас был форум, посвященный извечному дискурсу «Скорость против Качества», где два лагеря обсуждали, стоит ли делать быстро, или же правильно.
Вне всяких сомнений, ответ на этот вопрос будет «it depends», но к нему есть важное дополнение.
Время - ограниченный ресурс, и тратить его надо на то, что важно и нужно сейчас, а значит, на некоторые недостатки (даже на страницу, которая грузится 15 секунд, да-да, я тебя запомнил!), можно и нужно закрывать глаза.
Интересная и одновременно с этим приятная мудрость придет тогда, когда вы начнете отпускать те маленькие и крупные недостатки, которые уж очень раздражают, но практическая польза от их устранения стремится к нулю.
Если же вы и только вы знаете, насколько это важно и нужно и надо прямо сейчас, я приглашаю вас прочитать хороший пост на тему избавления от острой потребности чинить все, до чего дотянутся руки.
Отвечать за весь мир нет необходимости. :)
NotAShelf
The Curse of Knowing How, or; Fixing Everything | Blog
A reflection on control, burnout, and the strange weight of technical fluency.
Forwarded from DevOps FM
Всем DevOps! Деплоим средовую подборку новостей и статей.
⚫️ Обнаружена уязвимость в GitHub MCP-сервере, связанная с ИИ-агентами
Команда Invariant Labs опубликовала исследование уязвимости, которая позволяет злоумышленнику через Issue заставить ИИ-агента слить данные из приватных репозиториев. В отчете продемонстрировано, как атака реализуется на практике и предложены инструменты для обнаружения и предотвращения. Рекомендуем ознакомиться тем, у кого есть ИИ-ассистенты в репозиториях.
🟡 В Grafana появилась поддержка импорта алертов в через UI. Теперь можно перенести алерты из Prometheus, Loki и Mimir в Grafana-managed alerts через UI и API. О ньюансах — в статье.
⚫️ Ракан Аль-Зага опубликовал статью о современных подходах к авторизации. Он объясняет, почему традиционные модели (RBAC, ABAC) не справляются с масштабом микросервисов и мультиоблачной архитектуры и предлагает иные решения: Policy-as-Code и Authorization-as-a-Service.
🟡 Шон Вэбб рассказал о прогрессе внедрения Rust в FreeBSD.
Сейчас в отдельной ветке защищенных сборок FreeBSD уже можно собрать Rust-компоненты, при этом все зависимости лежат локально и собираются с пакетным менеджером Cargo. Поддержка библиотеки
⚫️ Крис Ричардсон выпустил вторую часть серии об аутентификации и авторизации в микросервисной архитектуре. На этот раз речь идёт об аутентификации — проверке личности пользователя. Крис объясняет, зачем микросервисам нужен отдельный IAM-сервис, как работают OAuth 2.0 и OpenID Connect, и как встроить всю эту механику в распределённую систему.
⚫️ Обнаружена уязвимость в GitHub MCP-сервере, связанная с ИИ-агентами
Команда Invariant Labs опубликовала исследование уязвимости, которая позволяет злоумышленнику через Issue заставить ИИ-агента слить данные из приватных репозиториев. В отчете продемонстрировано, как атака реализуется на практике и предложены инструменты для обнаружения и предотвращения. Рекомендуем ознакомиться тем, у кого есть ИИ-ассистенты в репозиториях.
🟡 В Grafana появилась поддержка импорта алертов в через UI. Теперь можно перенести алерты из Prometheus, Loki и Mimir в Grafana-managed alerts через UI и API. О ньюансах — в статье.
⚫️ Ракан Аль-Зага опубликовал статью о современных подходах к авторизации. Он объясняет, почему традиционные модели (RBAC, ABAC) не справляются с масштабом микросервисов и мультиоблачной архитектуры и предлагает иные решения: Policy-as-Code и Authorization-as-a-Service.
🟡 Шон Вэбб рассказал о прогрессе внедрения Rust в FreeBSD.
Сейчас в отдельной ветке защищенных сборок FreeBSD уже можно собрать Rust-компоненты, при этом все зависимости лежат локально и собираются с пакетным менеджером Cargo. Поддержка библиотеки
cdylib
, нескольких программ в одном Makefile
и прочие фичи — в планах.⚫️ Крис Ричардсон выпустил вторую часть серии об аутентификации и авторизации в микросервисной архитектуре. На этот раз речь идёт об аутентификации — проверке личности пользователя. Крис объясняет, зачем микросервисам нужен отдельный IAM-сервис, как работают OAuth 2.0 и OpenID Connect, и как встроить всю эту механику в распределённую систему.
Forwarded from Ever Secure (Aleksey Fedulaev)
Друзья, это свершилось! 😱✨
Честно? Мы сами до конца не верили, что этот день настанет... но она — в печати!
Да-да, наша книга теперь существует в реальном, бумажном формате 📖🔥
Уже завтра мы забираем первую партию, и поверьте, она выглядит круче, чем мы ожидали!
А совсем скоро вы тоже сможете её заказать — предзаказ уже на подходе 👀
Следите за новостями, будет кое-что интересное… Может быть, даже небольшой сюрприз для первых заказов?🤔
👀 @ever_secure
Честно? Мы сами до конца не верили, что этот день настанет... но она — в печати!
Да-да, наша книга теперь существует в реальном, бумажном формате 📖🔥
Уже завтра мы забираем первую партию, и поверьте, она выглядит круче, чем мы ожидали!
А совсем скоро вы тоже сможете её заказать — предзаказ уже на подходе 👀
Следите за новостями, будет кое-что интересное… Может быть, даже небольшой сюрприз для первых заказов?🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps
🔍 Google Cloud представил **KHI (Kubernetes History Inspector)** — инструмент, который превращает логи Kubernetes в интерактивную визуальную историю.
🧠 Зачем нужен KHI:
• Когда что-то ломается в кластере, часто приходится разбираться по сырым логам, и это ад
• KHI решает эту проблему: загружает все события в память и строит понятную временную шкалу всего, что происходило с ресурсами
🚀 Что умеет:
• Визуализирует логи как временную шкалу: деплой, рестарты, скейлы, падения
• Поддерживает фильтры и поиск — быстро находит нужные события
• Работает без агентов — использует уже существующие логи
• Показывает историю манифестов, состояния контейнеров, эвенты подов и многое другое
🛠 Подходит для:
• Отладки инцидентов и RCA (root cause analysis)
• Разработчиков и SRE, которым важно понимать, что именно пошло не так и когда
📎 GitHub: https://github.com/GoogleCloudPlatform/khi
@devopsitsec
🧠 Зачем нужен KHI:
• Когда что-то ломается в кластере, часто приходится разбираться по сырым логам, и это ад
• KHI решает эту проблему: загружает все события в память и строит понятную временную шкалу всего, что происходило с ресурсами
🚀 Что умеет:
• Визуализирует логи как временную шкалу: деплой, рестарты, скейлы, падения
• Поддерживает фильтры и поиск — быстро находит нужные события
• Работает без агентов — использует уже существующие логи
• Показывает историю манифестов, состояния контейнеров, эвенты подов и многое другое
🛠 Подходит для:
• Отладки инцидентов и RCA (root cause analysis)
• Разработчиков и SRE, которым важно понимать, что именно пошло не так и когда
📎 GitHub: https://github.com/GoogleCloudPlatform/khi
@devopsitsec
Во времена, когда ледяные ветра ещё не утихли, а мамонты ходили стадами по земле. Настало время великого сборища тех, кто управляет огнём и током
Слет Системных Администраторов DSA 2025!
📅 Когда?
В пятницу и по день недельный середины лета. (25.07-27.07)
📍 Где?
В землях Ярославских, на поляне технохуторской, где трава густа, а дух свободы кружит над головой. Там, где от Москвы два дня пути верхом на мамонте.
🔥 Что это такое?
20-й Всероссийский слёт мудрецов цифровых племён — событие года!
Огромное племя из разных уголков света соберётся у костра знаний и опыта: из России, СНГ и далёких земель близкого зарубежья!
👥Здесь встретятся сотни хранителей — тех, кто ведает серверами, сетями и прочими тайнами электронного духа. Они поделятся мудростью, научат молодых, обменяются амулетами связи и просто проведут время так, как подобает настоящим героям информационных баталий.
🎯 Что будет?
— Загадки, испытания, ритуальные опросы;
— Обряды передачи знаний (технические сессии);
— Шаманские представления и колдовские шоу;
— Подарки от союзников слёта — от камней до железных оберегов;
— Группы с живым звуком, что заставят душу плясать;
— Новые союзы и старые друзья, которых ты не видел со времён прошлого слёта.
🌐 Регистрация — через портал огня и света: https://itslet.su
🗣 Беседка племени в VK: https://vk.com/itslet
🗣 Беседка племени в Telegram: https://t.me/dsa_gate
👣 Увидимся на священной поляне, огонь ждёт тебя! 🔥💻🦣
Слет Системных Администраторов DSA 2025!
📅 Когда?
В пятницу и по день недельный середины лета. (25.07-27.07)
📍 Где?
В землях Ярославских, на поляне технохуторской, где трава густа, а дух свободы кружит над головой. Там, где от Москвы два дня пути верхом на мамонте.
🔥 Что это такое?
20-й Всероссийский слёт мудрецов цифровых племён — событие года!
Огромное племя из разных уголков света соберётся у костра знаний и опыта: из России, СНГ и далёких земель близкого зарубежья!
👥Здесь встретятся сотни хранителей — тех, кто ведает серверами, сетями и прочими тайнами электронного духа. Они поделятся мудростью, научат молодых, обменяются амулетами связи и просто проведут время так, как подобает настоящим героям информационных баталий.
🎯 Что будет?
— Загадки, испытания, ритуальные опросы;
— Обряды передачи знаний (технические сессии);
— Шаманские представления и колдовские шоу;
— Подарки от союзников слёта — от камней до железных оберегов;
— Группы с живым звуком, что заставят душу плясать;
— Новые союзы и старые друзья, которых ты не видел со времён прошлого слёта.
🌐 Регистрация — через портал огня и света: https://itslet.su
🗣 Беседка племени в VK: https://vk.com/itslet
🗣 Беседка племени в Telegram: https://t.me/dsa_gate
👣 Увидимся на священной поляне, огонь ждёт тебя! 🔥💻🦣
Яндекс Карты
Яндекс Карты — транспорт, навигация, поиск мест
Карты помогут найти нужное место даже без точного адреса и построят до него маршрут на общественном транспорте, автомобиле или пешком.
Forwarded from DevOps&SRE Library
How It Works — Validating Admission Policy
https://ihcsim.medium.com/how-it-works-validating-admission-policy-0664d23ce230
https://ihcsim.medium.com/how-it-works-validating-admission-policy-0664d23ce230