Пятничный деплой
4.37K subscribers
1.29K photos
24 videos
163 files
7.56K links
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest
Download Telegram
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
📋 Чек-лист по синтаксису 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.
• Документы объясняют назначение и использование, а не только перефразируют имена функций.

🐸Библиотека Go разработчика #буст
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
Forwarded from /usr/bin
Шардированный не значит распределённый: что важно знать, когда 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 Код и Капуста
gRPC

Небольшой туториал как использовать 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.
Forwarded from /usr/bin
Подводные камни при работе с файлами в Linux с примерами на Python

Работа с файлами в Python кажется простой — open, read, write. Но на практике, особенно в системах с высокими требованиями к отказоустойчивости, стабильности и логированию, за банальными строками кода может скрываться целый мир проблем.

В этой статье разобрано, как знание внутренностей Linux может помочь избежать потерь данных и облегчить отладку. Все примеры будут на Python, но применимы к любым языкам, работающим через POSIX-интерфейсы.
#машины_разное

Позавчера закончилась Tech Internals Conf Berlin, и я был рад пообщаться с ветеранами индустрии.

Под конец конфы у нас был форум, посвященный извечному дискурсу «Скорость против Качества», где два лагеря обсуждали, стоит ли делать быстро, или же правильно.

Вне всяких сомнений, ответ на этот вопрос будет «it depends», но к нему есть важное дополнение.

Время - ограниченный ресурс, и тратить его надо на то, что важно и нужно сейчас, а значит, на некоторые недостатки (даже на страницу, которая грузится 15 секунд, да-да, я тебя запомнил!), можно и нужно закрывать глаза.

Интересная и одновременно с этим приятная мудрость придет тогда, когда вы начнете отпускать те маленькие и крупные недостатки, которые уж очень раздражают, но практическая польза от их устранения стремится к нулю.

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

Отвечать за весь мир нет необходимости. :)
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. Поддержка библиотеки 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
Во времена, когда ледяные ветра ещё не утихли, а мамонты ходили стадами по земле. Настало время великого сборища тех, кто управляет огнём и током
Слет Системных Администраторов DSA 2025!

📅 Когда?
В пятницу и по день недельный середины лета. (25.07-27.07)

📍 Где?
В землях Ярославских, на поляне технохуторской, где трава густа, а дух свободы кружит над головой. Там, где от Москвы два дня пути верхом на мамонте.

🔥 Что это такое?
20-й Всероссийский слёт мудрецов цифровых племён — событие года!
Огромное племя из разных уголков света соберётся у костра знаний и опыта: из России, СНГ и далёких земель близкого зарубежья!
👥Здесь встретятся сотни хранителей — тех, кто ведает серверами, сетями и прочими тайнами электронного духа. Они поделятся мудростью, научат молодых, обменяются амулетами связи и просто проведут время так, как подобает настоящим героям информационных баталий.

🎯 Что будет?
— Загадки, испытания, ритуальные опросы;
— Обряды передачи знаний (технические сессии);
— Шаманские представления и колдовские шоу;
— Подарки от союзников слёта — от камней до железных оберегов;
— Группы с живым звуком, что заставят душу плясать;
— Новые союзы и старые друзья, которых ты не видел со времён прошлого слёта.

🌐 Регистрация — через портал огня и света: https://itslet.su
🗣 Беседка племени в VK: https://vk.com/itslet
🗣 Беседка племени в Telegram: https://t.me/dsa_gate
👣 Увидимся на священной поляне, огонь ждёт тебя! 🔥💻🦣