Обновить
28
209.3

DevOps головного мозга

Отправить сообщение

Single Core Legacy: Почему попытка запустить мультизадачность на человеческом мозге вызывает Троттлинг

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.8K

Утро, 10:30. Вы чувствуете себя богом архитектуры. Видите систему насквозь: данные элегантно перетекают между микросервисами, в голове строится граф зависимостей, руки готовы рефакторить легаси-ядро. Ваш IQ, кажется, пробил потолок.

День, 14:30. Вы смотрите в IDE. Открыт метод на 10 строк. Читаете его пятый раз и физически не можете понять, что он делает. В голове белый шум и вязкое ощущение торможения. Вы идете за третьим кофе, пытаясь понять: "Неужели я деградирую?", "Почему я соображаю так медленно?".

Спойлер: дело не в возрасте и не в компетенции. Это просто Троттлинг (Throttling). Есть предположение, что срабатывает защитный механизм человеческого "железа", который принудительно снижает тактовую частоту, чтобы процессор не сгорел от перегрева. А виновата в этом архитектурная особенность, которую в Computer Science называют Context Switching (Переключение контекста).

Все слышали про эссе Пола Грэма "Maker's Schedule, Manager's Schedule". Но сейчас не про тайм-менеджмент. Нас интересует физика процесса, биохимия этого "перегрева". Давайте посчитаем стоимость прерывания в тактах процессора и поймем, почему попытка запустить на нашем однопоточном легаси одновременно тяжелые вычисления и архитектуру Event Loop гарантированно приводит к падению производительности.

Читать далее

[Resource Quota] А что, если ваш финансовый потолок — это не баг, а защита от перегрева?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.5K

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

Вы делаете всё «по мануалу»: качаете хард-скиллы, учите новые технологии, закрываете сложные таски. Технически вы стали круче в два раза по сравнению с собой образца 2023 года. Но если посмотреть на график реальных доходов — это Flatline, прямая линия, которая едва ползет вверх, проигрывая инфляции.

И вы вроде пытаетесь пробить этот график: ходите на собеседования (где накидывают +15%, но их быстро съедают цены), по ночам что-то пилите. А рядом сидит какой-нибудь условный Вася. Код у него.. ну, скажем прямо, не очень. Паттерны он путает. Но Вася техдир стартапа или фаундер, и его доход — это ваши x5.

Обычно в этот момент включается старый добрый эксепшн «Мир несправедлив» или его подвид «Я самозванец». И мы привыкли думать: чтобы зарабатывать больше, надо знать больше. Качать техничку.

А что, если проблема вообще не в софте? Что, если мы посмотрим на деньги не как на награду за ум, а как на техническую Нагрузку (Load)? Возможно, текущий доход — это просто оптимальная рабочая частота? Режим, в котором вы можете функционировать долго и надежно, не рискуя "синим экраном".

Давайте попробуем развернуть эту гипотезу.

Читать далее

Infinite Loop: Почему перфекционизм — это не «стремление к качеству», а ошибка в условии выхода while(true)

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели4.1K

Ситуация: Вы — Сеньор или Тимлид. Вы пишете код, документацию или презентацию для стейкхолдеров. Объективно работа выполнена на 95%. Все функции работают, тесты проходят. Но вы не нажимаете Commit и Push.

Вместо этого вы начинаете рефакторить переменные. Выравнивать отступы в слайдах. Переписывать один и тот же абзац письма в пятый раз. Вам кажется, что вы повышаете качество продукта. Системный диагноз: Вы попали в Infinite Loop (Бесконечный цикл). Процесс завис, потребление ресурсов — 100%, полезный выхлоп (Output) — 0.

Давайте дебажить этот баг с точки зрения алгоритмов.

Читать далее

Stack Overflow в голове: Почему мы тупеем после 18:00 и зачем Сеньору «хардкодить» свою жизнь

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели17K

Случалось такое? 19:00. Мы закрываем рабочие ноутбуки. Мы — Senior Developers, архитекторы, тимлиды. Люди, которые сегодня днем жонглировали абстракциями и решали проблемы на миллионы рублей. У нас был план: вечером покодить свой пет-проект, выучить Rust или хотя бы почитать ту самую доку по архитектуре.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

В прошлой статье я рассказывал, как настроил личный iptables и перешел в режим Default Deny, чтобы отбиться от внешних DDoS-атак (коллег, пустых встреч и спама). Периметр я защитил, входящий трафик почистил. Uptime вырос.

Казалось бы — живи и радуйся. Но я заметил странную вещь: снаружи тихо, а сервер все равно греется. Я заглянул внутрь контейнера и понял: проблема не во входящих пакетах. Проблема в архитектуре самого приложения.

Парадокс: я могу спроектировать архитектуру, которая выдержит падение дата-центра. Я могу дебажить race condition в многопоточном приложении. Но когда мне нужно позвонить в страховую или выбрать отель для отпуска, я впадаю в ступор.

Мой личный бэклог забит задачами типа «разобраться с налогами» и «начать бегать», которые висят там с 2019 года. Я переношу их из спринта в спринт, испытывая фоновое чувство вины.

В какой-то момент я понял: это не лень. И это не «отсутствие мотивации». Это классический Technical Debt (Технический долг), только не в репозитории, а в нейросети.

И проценты по этому долгу я плачу самым дорогим ресурсом — своей когнитивной емкостью.

Читать далее

iptables для людей: Как я перестал быть «удобным» сервером и накатил Human Firewall

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

В прошлом коротком посте я писал, как психанул и неделю жил в режиме «НЕТ». Эффект был неожиданный: прод не упал, а я впервые выжил. Но эксперимент — это одно. А продакшен-решение — другое.

Я сел анализировать, почему вообще этот эксперимент понадобился. И понял: я годами жил с архитектурой Default Allow.

В InfoSec это считается дичью. Представьте админа, который открыл все порты, отключил фаервол и пускает любой пакет, если у того в хедере написано «Ну пожалуйста». Этот сервер ляжет за 5 минут. Но именно так мы строим коммуникацию.

Читать далее

[Memory Leak] Почему я туплю после обеда: дефрагментация мозга для сеньора

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели16K

Ситуация. 14:30. Я смотрю в монитор. Вроде бы IDE открыта, метод написан, надо просто дописать пару условий в if/else. Но я уже пятую минуту скроллю один и тот же кусок кода вверх-вниз.

В голове каша. Где-то на фоне крутится мысль, что надо было ответить на письмо заказчика еще утром. В другом потоке — тревога, что на машине странно стучит подвеска. В третьем — жена просила купить хлеба, и надо не забыть, иначе вечером будет Exception.

Пинг мозга скачет до 900 мс. Я физически ощущаю, как кулер в черепной коробке выходит на взлетный режим, а полезная работа — ноль.

Раньше я думал, что просто устал. Шел за третьим кофе, тупил в YouTube. Не помогало. Потом я понял: это не усталость. Это классическая утечка памяти (Memory Leak) и переполнение стека.

Я попробовал применить к своей голове те же принципы, которыми мы дебажим сервера. И это сработало.

Читать далее

Информация

В рейтинге
23-й
Зарегистрирован
Активность

Специализация

Специалист
Управление проектами
Управление людьми
Ведение переговоров
Linux
Docker
Git
Базы данных
ООП
Python
Английский язык