🚀🐳 Летит Кит: SRE и не только
178 subscribers
101 photos
2 videos
5 files
90 links
Дмитрий Синявский, SR-иженер и спикер (@r3code)

Заметки о замеченном и замечательном.
SRE, SLI/SLO, логи, наблюдаемость.
Кейсы.

₽: Консультации, аудит SRE практик, организация SRE без SRE, разработка ПО на заказ

Дублирую в MAX https://clck.ru/3Sr7qM
Download Telegram
Очень отозвался пост про проведение разговоров 1 на 1

https://t.me/teamleading/502

Видел, как 1 на 1 внезапно случался на ретро, но в формате схватки. Руководитель как раз начинал защищаться, не слушать - и это лучше не видеть, напряжно.

Из статьи выше, один из самых главных советов - слушать, не давать сразу решения. Паузы в разговоре - это нормально, даже если это "бесконечные" 10с.

Стремление все решить сразу часто корреллирует с проблемой - боязнь руководителя делегировать, дать команде ошибаться. Руководитель думает: зачем мне им давать делать по своему, если я знаю как правильно. А потом удивляется, что команда не растет ментально. Она просто привыкает к его готовым решениям и не проявляет инициативу уже.

🤔 Как думаете, полезно ли такое тимлидам/руководителям? Могут ли они изменится? Или нужно менять команду?

#тиилид #1to1 #onetoone #психология #коммуникация #teamlead #управление_командой
Forwarded from /usr/bin
witr (Why is this running?)

Утилита witr отвечает на один-единственный вопрос:

Почему это запущено?

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

Существующие инструменты (ps, top, lsof, ss, systemctl, docker ps) предоставляют доступ к состоянию и метаданным. Они показывают, что запущено, но оставляют пользователю возможность самостоятельно определить причину, вручную сопоставляя результаты работы разных инструментов.

Репыч на Гитхаб

@usr_bin_linux
🔥1
Пожалуй вот эта утитита при диагностике сбоев в Linux будет очень полезна. Особенно знать, кто это запустил

Какие у тебя на примете утилиты не встроенные базово в Linux, которые ты бы взял в свой "швейцарский нож" для диагностики в Linux?
Это хороший пост от Миши. Но мне он был удивителен, т.к. я лет 5 назад сам перешел на UUID v7 когда еще был Go-разработчиком. Мне просто это уже кажется само-собой разумеющееся.

Но кстати в нашей системе хранения логов нет поля log_id, а хочется сделать. Тогда проще будет одну запись выбрать, но это доп поле и доп место. Надо оценить на наших масштабах к какому приросту это приведёт.
Forwarded from Мишка на сервере (Mikhail Savin)
UUID v4 vs UUID v7 — почему это важно для SRE?

Привет, %username%! Сегодня поговорим о вещи, которая на первый взгляд кажется мелкой деталью — выборе версии UUID. Но если ты работаешь с высоконагруженными системами, эта "мелочь" влияет на производительность БД, I/O и даже на читаемость логов во время инцидентов.

Что под капотом?

UUID v4 — это 128 бит чистой случайности (122 значимых бита). Красиво, уникально, предсказуемо. Но абсолютно хаотично с точки зрения порядка.

UUID v7 — первые 48 бит это Unix timestamp в миллисекундах, остальное — случайность. Идентификаторы монотонно возрастают, то есть более новые UUID всегда лексикографически больше старых.

Почему это критично для нас с тобой?

Проблема UUID v4 — это то, что происходит с B-tree индексом в твоей БД при вставке:

- Каждый новый UUID случаен → вставки идут в произвольные места индекса;
- Это вызывает page splits (расщепление страниц) и write amplification;
- Фрагментация листовых страниц индекса у v4 достигает ~50%, тогда как у v7 — около 0%;
- Бенчмарки показывают: вставка с UUID v7 до ~34.8% быстрее, чем с v4 на 10 млн строк;
- Запросы (point lookup и range scan) у v7 быстрее за счёт лучшей локальности индекса.

SRE-профит от перехода на v7

- ORDER BY created_at становится менее актуальным — можно сортировать прямо по PK;
- При разборе инцидента UUID в логах сразу показывает временной порядок событий — экономит время в постмортеме;
- Меньше фрагментации → меньше нагрузка на autovacuum в PostgreSQL → меньше сюрпризов в VACUUM-графиках;
- Снижается write amplification → меньше нагрузка на диск, особенно актуально для облачных managed БД с billing per I/O.

Когда v4 всё ещё ок?

- Токены сессий, CSRF-токены — там сортировка не нужна, максимальная случайность важнее;
- Системы, где раскрытие временнОго паттерна нежелательно по соображениям безопасности.

Переход с v4 на v7 в новых сервисах — это практически бесплатный перформанс буст. Библиотеки есть во всех основных языках, а PostgreSQL 18 получит нативную поддержку uuidv7() из коробки.

Делись в комментариях — используешь ли уже UUID v7 в своих системах? Сталкивался ли с фрагментацией индексов из-за v4 в проде? Как решал — автовакуум, партиционирование, или всё-таки миграция на v7?

#SRE #DevOps #Database #PostgreSQL #UUID #Performance #IndexOptimization #BackendEngineering
👍4
🫖 Я чайник! Я чайник! - таинственный код ответа HTTP 418

Вы почти никогда не увидите этот код в ответах настоящих серверов.
Но он существует! А история его появления - это чистый технический фан.

Как чайник попал в стандарт
1 апреля 1998 года вышел RFC 2324 — документ о протоколе управления кофейниками (HTCPCP). Шутка от IETF. Согласно ему, если попытаться заварить кофе в чайнике, тот должен ответить: 418 I'm a teapot — потому что он чайник, а не кофеварка.
В 2014 году появился RFC 7168 — обновление этого протокола. Чайник устоял.

Почему это не просто шутка?
Хотя RFC 2324 был явной шуткой, код 418 получил неожиданное признание:
- Многие серверы и библиотеки действительно реализовали его
- Google Chrome какое-то время показывал Easter egg при получении этого кода
- Некоторые разработчики используют его для тестирования или в качестве пасхалки

На
StackOverflow разработчики делятся живыми кейсами применения:

1_ Маршрутизация через nginx
Один инженер настроил reverse proxy так: первый сервер (для неаутентифицированных) при обнаружении токена отвечает 418, и nginx автоматически перенаправляет запрос второму серверу (для аутентифицированных). Как в оригинальном протоколе: «Я чайник. Иди к кофеварке» — только кофеварка здесь второй бэкенд.

2_ Интеграционные тесты
При тестировании микросервисов через Wiremock 418 ставят дефолтным ответом на непромапленные запросы. Если тест ожидает 404 — он получит именно 404 (специально настроенный мок). А если получает 418 — значит, забыли настроить мок, и тест упал корректно, а не прошёл с ложноположительным результатом.

3_ Отладка фронтенда
В одном проекте 418 означает: «Этот запрос фронтенд никогда не должен отправлять». Такие ответы триггерят ворнинги в системе мониторинга, в отличие от обычных 400 — помогает ловить баги в логике клиента.

4_ Защита от атак
Ещё один разработчик возвращает 418 забаненным IP ещё до установки TLS-соединения — как ироничный «последний ответ» перед закрытием сокета.


🔖 А какие необычные или креативные использования HTTP-кодов видели вы? Может, кто-то использует 418 как пасхалку, или 429 для лимитов с человеческим лицом? Делитесь в комментариях — соберём коллекцию инженерного фольклора! 🚀


P.S. Код 418 официально зарезервирован и никуда не денется — мем победил бюрократию.

#fun #история #http #мем
6
Завтра начинается DevOpsConf 2026 в Москве. В этом году все иначе: и концепция, и место проведения, и даже я чувствую себя иначе.

1. Концепция сместилась в сторону практики
2 Место проведения вместо Сколково – ВДНХ!
3. Я не только выступаю с докладом, но и смотрю впервые на результаты своей работы, как куратор от программного коммитета. Будут две активности: воркшоп по работе с инцидентами, доклад о важности UX в повседневной работе. Желаю ребятам успеха.

Будет интересно узнать, что в итоге у нас получится после всех изменений.

Приходите:
- 3 апреля 14:40 Зал 6, мой доклад "Как SLO водят вас за нос"
- 16:40 Зал 6, Круглый стол со мной "Сервис недоступен, или..."
👍31
2 апреля 2026 – DevOpsConf 2026 начался. Сегодня с ребятами на круглом столе обсуждали инцидент-менеджмент, кто как его строит в компаниях, как с этим жить.

Получилось живо и зал был вовлечен, да так что мы после еще час в коридоре продолжали с некоторыми слушателям обсуждать 🗣️

Узнал от коллег про опыт использования Ai-для написания хронологии инцидента, кто как разделяет и как процесс сопровождения идет.

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

#инцидент_менеджмент #sre #devopsconf #круглый_стол #конференция
🔥2
Выступил с докладом Как SLO водят вас за нос на #devopsconf 2026.

Уложился в 30 минут и было более 5 вопросов, я даже свои не задействовал ).

Было много знакомых людей, что приятно. Спасибо, что поддержали!

Материалы к докладу и презентацию выложил тут https://github.com/vseinstrumentiru/devopsconf2026/tree/main/slo_cheating

#доклад #презентация #slo
👍6❤‍🔥2🔥1
В начале года я стал членом программного коммитета одной из крупнейших в России IT-конференции – DevOpsConf.

Мне уже давно было интересно как это с "той" стороны: помогать докладам и людям расти, раскрывать идеи и доносить смыслы. Мне понравилось. Я люблю прямое общение и людей горящих своей идеей.

Двое моих кандидатов я успешно защитил перед ПК, они выступили на конференции - очень рад за ребят. В жизни они оказались такими же активными, как я их и представлял.

Встретимся в следующем году на DevOpsConf 2027.

Заявки на DevOpsConf 2027 будут принимать с ноября декабря 2026 https://cfp.devopsconf.io
🔥3
Появились фотки с конференции Observability Conf 2026 которая прошла 19 марта 2026.

Конференцияч прошла класпно - нас смотрело более 2000 человек онлайн только, без учета всех пришедших оффлайн!

Смотрим фотки и предлагаем темы в группе https://t.me/observability_russia

#фото #ObservabilityConf
#не_sre #разработка Как я сделал автоматизацию малого бизнеса

Кейс: Клиент хотел интеграцию с 1С и параметрические чертежи, но я решил реальную боль

1. Что просил клиент: сделать параметрическую генерацию чертежей и сразу интегрировать в 1С
2. Что мы нашли как реальную боль: узкое место - разработка чертежей, зависит от возможностей человека конструктора.
3. Что сделали за неделю: proof of concept - генерация чертежей и схемы резки труб на одной простой модели клиента, далее можно было добавлять другие модели, спецификации и схемы резки труб с длиной и углами реза.
Первая версия работала уже через месяц.
4. Результат (слова клиента / метрика): подготовка одного чертежа ускорилась в 12 раз, с 1ч до 5м.
5. Вывод: выделение самой главной проблемы и следование принципу Парето позволяет получить результат значительно быстрее, быстрее его скорректировать и начать получать реальную пользу.

Интеграция в 1C по итогу не понадобилась. А она бы увеличивала сложность медлительность проекта минимум до 3 месяцев!

#проекты #автоматизация_производств #наблюдения
📊 Про важность правильной агрегации метрик

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

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

Почему пользователи самый надежный источник ? Да потому что некоторые будут прямо кричать, когда не смогут забрать товар с ПВЗ, и это дойдёт к вам не быстро через службу поддержки.

Это база, которую следует помнить при настройке мониторинга.

🤔 А как у вас? "Среднее по больнице" уже делало сюрпризы?

Картинки из поста https://x.com/nalgeon/status/1358783814022156291
🔥5👍21
Замечали, что скриншоты - это один из языком общения в поддержке и инцидентах?

Этот инструмент настолько привычный, что даже не задумываешься, что когда-то его просто не было!

Технически под капотом все прозаично. Экран - это просто массив точек в памяти. Операционная система берет состояние кадрового буфера и пишет его на диск. Ничего магического.

Интересно, что раньше это считалось инженерной функцией. Она была даже старых Nokia 15, но нельзя было просто так сохранить экран. Нужно было лезть через компьютер и специальные утилиты.

Сейчас это база в любой ОС, хоть в ПК, хоть в смартфоне.

Помню когда впервые увидел функцию распознавания текста с сриншота в MacBook - сильно обрадовался, т.к. мне тогда в 2020 приходилось часто искать проблемы в сессиях пользователей, а на скриншотах сессия была как UUID в 32 символа. Такое пока наберешь - уже задолбаешься, а еще и ошибешься, и снова задолбаешься, но уже - проверять.

А вы часто сохраняете крины ошибки для баг-репортов или предпочитаете логи?
Скриншоты логов?
(для ценителей 😁)

#SRE #engineering #OS #tech_history #incident_management