en
Feedback
DevOps от первого лица

DevOps от первого лица

Open in Telegram

Пишу реальные истории из АйТи о том как: 👨‍💻 пишу код 🏗 строю инфраструктуру 🧨 шатаю продакшен Полезные заметки: https://byurrer.ru/

Show more
337
Subscribers
No data24 hours
No data7 days
No data30 days

Data loading in progress...

Similar Channels
No data
Any problems? Please refresh the page or contact our support manager.
Tags Cloud
No data
Any problems? Please refresh the page or contact our support manager.
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
December '24
December '24
+10
in 0 channels
November '24
+18
in 0 channels
Get PRO
October '24
+14
in 0 channels
Get PRO
September '24
+3
in 0 channels
Get PRO
August '240
in 0 channels
Get PRO
July '240
in 0 channels
Get PRO
June '240
in 0 channels
Get PRO
May '240
in 0 channels
Get PRO
April '240
in 0 channels
Get PRO
March '240
in 0 channels
Get PRO
February '240
in 0 channels
Get PRO
January '24
+11
in 0 channels
Get PRO
December '23
+5
in 0 channels
Get PRO
November '23
+6
in 0 channels
Get PRO
October '23
+355
in 1 channels
Date
Subscriber Growth
Mentions
Channels
21 December0
20 December0
19 December0
18 December+5
17 December+1
16 December0
15 December0
14 December0
13 December0
12 December0
11 December0
10 December+1
09 December0
08 December0
07 December0
06 December+1
05 December+1
04 December0
03 December0
02 December0
01 December+1
Channel Posts
🔃 Ребалансировка реплик партиций топика Kafka ❗️ О проблеме на скриншоте узнали из другого триггера бизнес-метрики. На скрин
🔃 Ребалансировка реплик партиций топика Kafka ❗️ О проблеме на скриншоте узнали из другого триггера бизнес-метрики. На скриншоте видно что третья партиция топика имеет только лидера, а реплики недоступны. А в самой теме min.insync.replicas == 2, это значит что сообщения поступающие в партицию 3 не будут приняты, потому что ни одна реплика не сможет подтвердить прием из-за недоступности. 🐞 Причины выяснить не удалось, по логам не нашли вменяемой информации. Есть 2 решения: ✔️ быстрое: изменить min.insync.replicas на 1, тогда нам больше не нужно подтверждение от реплик, но оставлять на продакшене такое нежелательно ✔️ ребалансировка реплик партиции: это механизм ввода в кластер новых брокеров, но можно провести пользовательскую ребалансировку самостоятельно составив ее план 👉 Мы сделали сначала первый вариант чтобы убрать стопор из шины данных, а потом применили второй после более углубленного изучения вопроса. Проблема решилась.

2
📚 Краткий отзыв о книге "Python ИСЧЕРПЫВАЮЩЕЕ РУКОВОДСТВО" У меня по работе попадаются задачи, которые либо уже частично реш
📚 Краткий отзыв о книге "Python ИСЧЕРПЫВАЮЩЕЕ РУКОВОДСТВО" У меня по работе попадаются задачи, которые либо уже частично решены, либо их решение сподручнее на python. Как бы я не хотел, но все вело к python'у. 📈 В книге постепенная подача материала. Сначала основы в виде запуска скриптов, типы и операции. Обработка данных, структура и последовательность выполнения. Объекты, протоколы, ООП, модули, пакеты. Кратко рассматривается вопрос ввода/вывода. А под конец справочник по стандартной библиотеке. 👉 Есть отдельная глава про генераторы (yield), которая объясняет не только что это такое, но и на примерах показывает выгоду от их использования. 💡Оказывается в python есть лаконичные и выразительные средства, например списковые включения и менеджмент контекста with, что приятно порадовало. ⚡️ Новичкам в python рекомендую, погружает не глубоко, но достаточно чтобы начать работать. P. S. обложка интересная - Адам и Ева у древа познания добра и зла, а на дереве python ...
304
3
🔬 Как найти IPMI на плате? Продолжаю тему домашнего сервера. На этот раз кратко и без деталей расскажу как можно обнаружить IPMI на материнской плате с одного взгляда, ну почти) Ранее я писал как пришел к выводу что на моей плате Supermicro X9DBL-I нет IPMI, а на недавно приобретенной Asus Z9PE-D16/2L есть. https://byurrer.ru/ipmi-detect #article
293
4
❄️ Заканчивается 2023 год. В этом году я начал вести этот канал, хотел узнать что это и как. Мне понравилось ☺️, в следующем году планирую продолжать, четкой стратегии пока нет, но эпик уже записан) 👉 В этом году мы усиленно работали над Sentry и домашними серверами. Обе темы еще не до конца раскрыты и получат свое продолжение в новом году. ⛄️ Всех с наступающим новым годом, желаю здоровья, счастья, любви и успехов 🎉
373
5
⚡️ На хабре вышла вторая статья по внедрению Sentry в разработку! 👨‍💻 После отпуска написание статьи пошло намного быстрее. В статье рассматриваем: ✔️ обзор релизов в Sentry ✔️ общие возможности клиентов ✔️ клиент Sentry для php и отправку релизов ✔️ внедряя Sentry в Javascript сталкиваемся с sourcemaps ✔️ боремся с размером бандла для Javascript ✔️ пробиваемся через блокировщиков рекламы ✔️ кратко обозреваем некоторые решения проблем на стороне web-интерфейса Sentry ✔️ и наконец отвечаем на вопрос: когда отправлять события в Sentry? Как и в прошлый раз статья снабженами скринами и мемами для лучшего понимания ситуации :) В следующий раз рассмотрим менеджмент issue в Sentry и поговорим о тех преткновениях, с которыми мы столкнулись после всего цикла внедрения. #article #sentry
458
6
Пришла ОЗУ 2x32gb (итого 64gb) для моего ноутбука Machenike S15C. Заказывал на ozon. 🧐 Продаван ноутбука заверил что поддерж+3
Пришла ОЗУ 2x32gb (итого 64gb) для моего ноутбука Machenike S15C. Заказывал на ozon. 🧐 Продаван ноутбука заверил что поддерживается, а продаван ОЗУ сказал что максимум 2x16gb. Для меня 32gb кажется маловато, если есть возможность, то надо прокачать до максимума. В итоге рискнул и купил 3x32gb, подошло, memtest86 успешно завершился за ~8 часов. 😜 Теперь можно открывать бесконечное количество вкладок в браузере и неконтроллируемо запускать редакторы от JetBrains) P.S. немного поковырял внутренности, обслужил камни, возможно будет обзор.
392
7
Пришел корпус XPG DEFENDER, заказывал на ozon за ~6800р. Произвел сборку своей новой серверной платы и теперь могу дать некот+9
Пришел корпус XPG DEFENDER, заказывал на ozon за ~6800р. Произвел сборку своей новой серверной платы и теперь могу дать некоторую оценку: ✔️ в него помещаются платы вплоть до E-ATX/SSI-EEB ✔️ тяжелый, стенки толстые и прочные ✔️ боковая стенка толстое закаленное стекло ✔️ быстросъемные решетки на фронтальной части, внизу под блоком питания и на верху ✔️ между верхом материнской платы и верхом корпуса есть достаточное пространство, удобно при монтаже, сюда же можно накинуть вентиляторы ✔️ кабель-менеджмент приятный, в корпусе прибраны провода на передней панели управления, а в боковой стенке хватает места, хотя там всего 1,7мм, провода моего модульного БП дотянулись до питания платы без удлинителей ✔️ съемные заглушки PCI ➖ нерегулируемые вентиляторы в комплекте, лучше бы без них но дешевле 😇 Выглядит действительно мощно и элегантно. В сравнении с предыдущим корпусом XPG DEFENDER лучше, приятнее, удобнее, практичнее, однако он больше, тяжелее и дороже. Я доволен, имхо, стоит своих денег.
463
8
📚 10 прочитанный книг. Часть первая Начинаю серию статей переосмысления раздела о литературе на своем блоге. Имхо, развернутая рецензия каждой книги несет мало ценности, да и мне это уже не так интересно. Поэтому отныне буду группировать рецензии пачками. Это первый десяток прочитанных мной книг с конца 2021 по начало 2023 года (чуть больше одного года), которые действительно оказали на меня влияние и позитивно сказались на моей профессиональной деятельности. Кстати, на следующий год уже составил примерный план литературы. - Из основного: хочу добить "Философия DevOps", "От монолита к микросервисам" и "Чистая архитектура". - Затем "Python. Исчерпывающее руководство" и надо глянуть "Предметно-ориентированное проектирование. Самое основное", а то я так и не добрался до этой книги в этом году. - Время от времени пытаюсь осилить двух мастадонтов: "Unix и Linux руководство системного администратора" и "Компьютерные сети". ❓Кто что планирует читать, поделитесь, интересно) https://byurrer.ru/10-books-1 #article
269
9
⚡️ Шатание сетки между узлами Crate и падение кластера В ~4:30 приходит звонок от мониторинга: количество шардов в кластере Crate уменьшилось, со всеми вытекающими. Не долго думая начал поднимать упавшие узлы, но не тут-то было - службы Crate на других узлах начали падать со статусом Killed. И так по кругу: поднимаю одни, а падают другие. 🕵️ У нас уже была подобная ситуация и во время прошлого инцидента я изучал логи. Судя по записям: конкретная нода перед падением пытается соединиться с другими нодами на протяжении некоторого времени, но не может, а затем в syslog можно наблюдать записи oom-killer. Как и в прошлый раз решили инцидент так: - полная одновременная остановка кластера (stop всех служб Crate) - полный запуск (start всех служб Crate) Хорошо что есть Ansible 🥳 #duty #incident
281
10
⁉️ Где посты? Скоро будут, а сейчас я слегка устал, сам себя загонял в выгорание амбициями и высокими планками по работе и своим проектам. Изучаю вопрос предотвращения подобных инцидентов. С момента последнего поста: 💾 Работал с kafka-connect, выяснял как его чинить если коннекторы FAILED или UNASSIGNED. Интересная штука, планирую статью. 👨‍💻 Активно практиковался с фреймворком laravel 10 (на самом деле уже несколько месяцев). Понравилось, планирую написать об этом. Скоро будет аналогичный квест с react & typescript & antd. 🔴 Заказал 64гб ОЗУ на свой игровой рабочий ноутбук. Слишком часто стал упираться в лимит 16гб. Заказывал за ~9300р, сейчас ~8500р. Если кому надо успейте купить пока норм цена. 🙈 Хотел приобрести лицензию на ide goland от jetbrains, но оказывается они не хотят продавать свою продукцию в нашей стране. Зато на Авито рабочие ключи для любых ide стоят очень дешево. Если что пишите комменты) 📱Нашел серверные DDR3 32гб на aliexpress всего за ~1600р, что странно дешево по сравнению с Авито. Если кто брал напишите в комментарии. 😊 Заказал корпус для второго домашнего сервера. Впервые взял то что понравилось и глазам и мозгу) 🗒 Работаю над планом на год. Скоро ухожу в краткосрочный реальный отпуск дома, план составлен, rtx 3050ti готова, ну вы поняли) За время отпуска надеюсь восстановиться и возобновить поток полезной информации на блог и канал.
0
11
🪛 Восстановление репликации MySQL/MariaDB Дошла очередь до репликации MySQL (даже задачу поставил на детальное изучение), каждый раз когда на работе падает репликация лезу гуглить и вспоминать, но теперь многое изменилось - теперь есть инструкция ☺️ 👉 Статья будет дополняться по ходу изучения новых проблем и ситуаций. https://byurrer.ru/mysql-replication-recovery
0
12
🛠 Windows 11 DRIVER_VERIFIER_DMA_VIOLATION Загружаю Windows 11, а там BSOD и DRIVER_VERIFIER_DMA_VIOLATION. Но возникло это не само по себе - как-то раз я захотел поиграть в игры из 2010-х годов. Поиграть то я поиграл, но разбирался с проблемой потом значительно дольше. ✖️ Восстановление системы не получилось ✖️ Безопасный режим ... у меня загрузчик grub Переустановка это конечно windows-like, но в чем дело? 🤨 👉 Проблема решена и описана в статье: https://byurrer.ru/win11-recovery-dma-violation #article
0
13
🌡 Мониторинг температуры устройств USB-термометрами Несколько месяцев назад я кратко рассказывал про мониторинг плашек ОЗУ usb-термометрами. Теперь дошло дело написать полноценную статью, изучить datasheet и понять что для LRDIMM нормальный температурный предел [0, 85] °C. В статье более детально рассмотрим вопрос подключения и работы с термометрами, а также еще раз посмотрим на графики. P.S. спустя несколько месяцев мониторинга, понаблюдав за температурой и установив хорошую вентиляцию внутри корпуса я убрал usb-термометры. https://byurrer.ru/usb-termometers-monitoring #hardware #article
0
14
💻 Мониторил Авито и выжидал подходящее выгодное предложение, шерстил Озон и ЯндексМаркет в поисках БП, звезды сошлись и тепе+2
💻 Мониторил Авито и выжидал подходящее выгодное предложение, шерстил Озон и ЯндексМаркет в поисках БП, звезды сошлись и теперь у меня появилась новая сборка: - материнская плата на сокете LGA 2011 Asus Z9PE-D16/2L - 2 CPU Xeon E5 2696 v2 суммарно 24 ядра, а в hyperthreading 48 потоков, дальше только E5 2697 v2, которого частота на 200гц больше, в общем ТОП для этого сокета - 6 плашек ОЗУ по 8гб ECC Reg (4 от прошлого сервера осталось), для экспериментов достаточно, позже надо будет апгрейдить, в перспективе можно прокачать до 512гб - 2 башенных кулера на 90мм - полностью модульный блок питания GAMEMAX RGB-850 Black, 850 Вт (к распродаже цена поднялась на 200р), после дешевого БП с кучей проводов захотелось удобства в виде отстегивающихся кабелей 💰 Цена (все что на фото): 24400р 👉 Можно использовать как домашний сервер или как ПК, а моя основная цель пощупать IPMI, после моих прошлых приключений уж очень захотелось. Познакомится с платами Asus и экосистемой. Ну, а потом видно будет) #hardware
0
15
На работе случился интересный инцидент: 👨‍💻 Внедряем новые компоненты взамен старых в монолит единую кодовую базу. Интерфей
На работе случился интересный инцидент: 👨‍💻 Внедряем новые компоненты взамен старых в монолит единую кодовую базу. Интерфейс оставили максимально приближенный к старому, а реализация внутри новая. Прежде провели исследование, посмотрели каждый используемый кусок кода. 🛠 Заменяем старые компоненты новыми и заливаем на прод, в течении нескольких недель все норм. 🧐 Под конец нашли несовместимый кусок кода, который тянется на несколько файлов. Недосмотрели. Часть этого кода отключили полгода назад. Теперь нужно решить что делать с другой частью. Выясняем, не нужно, подтверждаем, удаляем (обе части). Выкатываем в продакшен в четверг. 🧨 В пятницу поздно вечером выясняется что часть удаленного кода все-таки нужна, экстренно восстанавливаем из репозитория и заливаем на прод. К слову, восстановленный код никак не связан с компонентами, которые мы внедряли. Случайно задели. ¯\_(ツ)_/¯ #incident #production
0
16
🧙 Неблагоприятный день для деплоя в продакшен Не знаю совпадение или есть в этом смысл: по календарю деплоев сегодня у меня неблагоприятный день (близнецы), так оно и произошло ... С пятницы подготовили код, получили аппрувы и нужно было сегодня деплоить, однако уже была вторая половина дня и у нас появились дополнительные проблемы: ❗️ Внезапно тесты стали выполняться в 2 раза медленее, а затем один из раннеров вообще перестал отвечать, пришлось перезагружать машину. ❗️ После перезагрузки один из сервисов не мог запуститься - пришлось переустанавливать контейнер. ❗️ Когда час ожидания и починки подготовительного пайплайна закончился - пришли разработчики с очень срочным хотфиксом, а после мержа нужно ждать подготовительный пайплайн. ❗️ Мы (DevOps) завозили в код новые инфраструктурные компоненты взамен старых, и я второпях забыл со старого компонента скопировать опцию, которая менялась при тестах, в итоге тестовые пайплайны на резервном проде рандомно падали - зато посидели с тимлидами поковыряли код, бизнес-логику и конфиги. В итоге: сегодня продакшен спасен от наших правок, после окончания рабочего дня решили не выкатывать на основной продакшен сервер, может оно и к лучшему 😂 👉 Для себя я сделал вывод: деплой требует времени, каким-бы простым и продуманным он не был, если не хватает запаса времени - лучше не деплоить, а если начал - не продолжать. ❓ А у вас были совпадения с календарем по неблагоприятным дням для деплоя?) #production
205
17
📟 Б/у рынок серверных материнских плат. Мейнстрим сокет lga 2011. После сборки домашнего сервера, я более месяца ежедневно мониторил Авито на предмет более углубленного изучения б/у рынка серверных материнских платы. За полгода просмотра объявлений у меня сформировалось некоторое представление, которым хочу поделиться, дабы более опытные смогли скорректировать мое видение, а неопытные получили основу. ❗️ Под б/у рынком я подразумеваю Авито. ❗️ На данный момент я рассматриваю только двухпроцессорные материнские платы с процессорами intel. ⚡️ Мейнстрим на б/у рынке lga 2011. Причем бывает он в трех версиях v1, v2 (редко), v3. Мейнстрим значит что материнские платы, процессоры и охлаждение в достаточном количестве для выгодной сборки. 📚 Сравнение версий можно почитать здесь или посмотреть тут (и еще тут). Кратко затронем сравнение мощности и цены: - v1 - цена от ~8 000р в среднем ~11 000р, CPU до 12 ядер. Топовый XEON E5 2697 v2 до 3000р, а чуть менее мощный E5 2696 v2 до 2000р. Cписок и характеристики E5 26xx v2. - v3 - цена вырастает почти в 2 раза вместе с мощностью и ассортиментом, CPU до 22 ядер. Топовый E5 2696 v4 можно найти за 8000р и за 22000р (уверен если помониторить то найдутся приемлемые варианты). Список и характеристики E5 26xx v4. ✨ Из более дешевых аналогов lga 1366/1356 (CPU мощнее) - такие же разъемы для куллеров, но CPU слабее. У меня X9DBL-I на lga 1356 с 2-мя топовыми для этого сокета CPU XEON E5 2470 v2. ⚡️ Если брать с перспективой - то не ниже чем lga 2011 v1. Однако, не все материнские платы поддерживают топовые CPU. Например GA-7PPSH2, которую недавно можно было взять за 5225р максимально поддерживает CPU с тепловыделением до 95w, а это 10 ядерный E5 2660 v2 что примерно тоже что XEON E5 2470 v2 топ на lga 1356. Небольшая подборка объявлений lga 2011 v1, которые, по моему мнению заслуживают внимания (или надо было во время брать): - Supermicro x9dr3-ln4f+ - Supеrmiсrо X9DRL-IF - Supermicro X9DRL-IF-YI01B - Gigabyte GA-7ppsh2 - Asus z9pe-d16 - Аsus Z9РЕ-D16/2L 👉 Ссылка на отфильтрованный список плат на сокете lga 2011.
283
18
Ситуация: клиент отправляет текст/картинки/прочее, а приложение кладет в БД (семейство mysql), utf8mb4 должен обработать любо
Ситуация: клиент отправляет текст/картинки/прочее, а приложение кладет в БД (семейство mysql), utf8mb4 должен обработать любой хлам (нет). 😬 И все было хорошо, пока клиент не отправил gif: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\x80\x00\x00\x00\x00\x00...' Хотя вставка осуществляется в текстовый столбец, а не в datetime. 🔘 Варианты кодировок (character_set_*) не помогли. ✔️ Опытным путем было выявлено что sql_mode=STRICT_TRANS_TABLES не дает пройти запросу (на хабре). Точнее без него запрос генерирует warning, а с этим режимом уровень повышается до error. ✔️ Однако, даже в STRICT режиме можно понизить уровень до warning используя INSERT IGNORE и запрос пройдет. 👉 Но этому жуткому костылю не место на проде! Хотя живем же. Для бинарных данных нужно использовать blob. Гипотеза причем здесь datetime: ❓в таблице есть datetime, который CURRENT_TIMESTAMP. В gif есть нуллтерминалы, из-за них часть бинарных данных гифки переходит на столбец с datetime. #db #incident
183
19
🎛 Установка Proxmox на RAID1 через Debian Установим Proxmox на RAID1 из двух дисков через установку Debian, потому что через образ Proxmox у нас нет возможности вручную сформировать RAID массив с файловой системой ext4. ❗️ Есть еще один способ: установить Proxmox из официального образа, перенести загрузчик в EFI разделы на дисках, а затем перенести корень на MD устройство. Но это отдельная история. ⚡️ Мы строим отказоусточивый сервер, а значит загрузка ОС должна быть с любого диска, и здесь сразу возникают проблемы grub, BIOS, fstab. Но это все решаемо. Немного затронем тему миграции данных со старого Proxmox на новый. https://byurrer.ru/proxmox-install-raid1-debian #article
250
20
📚 Апгрейд сервера и сбор материалов для ретроспективы Завершил апгрейд своего сервера: ⚡️ Поменял CPU, был XEON E5 2420 (6 я+8
📚 Апгрейд сервера и сбор материалов для ретроспективы Завершил апгрейд своего сервера: ⚡️ Поменял CPU, был XEON E5 2420 (6 ядер, 12 потоков на каждый CPU) стало XEON E5 2470 V2 (10 ядер, 20 потоков на каждый CPU), это максимум на сокете LGA 1356. ⚡️ Заменил стоковые куллеры на башенные, наблюдаю уменьшение температуры почти в 2 раза. В этот раз монтаж куллеров не вызвал негативных эмоций, все прошло гладко. ⚡️ Упорядочил кабель-менеджмент. Собираю материалы для написания статьи "как я собирал домашний сервер с нулевыми знаниями в железе". Хочется подвести итог, разобрать нюансы и ошибки, подсчитать затраты. ✨ Кому интересно, вот первое упоминание про сервер. Все это приключение длилось 6 месяцев, с разной интенсивностью. Что-то было куплено и не пригодилось, что-то колхозилось на коленке (например удлинитель питания CPU, а может кто помнит температуру ОЗУ?). Но приключения с этим сервером подходят к логическому завершению. УРА 🎉 👉 Бонусом немного фото в разные периоды.
250