Concurrency, Synchronization and Consistency. Пост №18. Golang sync.Mutex internals В прошлом посте мы решали практическую задачку и использовали язык Go. Его основная особенность - наличие собственного рантайма в рамках которого происходит управление и планирование горутин - потоков исполнения не связанных явно 1к1 с потоками ОС. А если у языка собственный рантайм и "собственные" потоки, то и должны быть "собственные" примитивы синхронизации, умеющие работать с горутинами. И они действительно е...
Евгений Козлов пишет про IT
14 лет пишу код, 10 - в прод. Руковожу командой инженеров в Т-Технологиях. 📌 Backend, Data, System Design 📌 Concurrency, Performance, Algorithms 📌 Infrastructure, Reliability 📌 Карьера, Менеджмент Для связи: @ea_kozlov
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Security 101 for SaaS startups или "Что я бы хотел услышать от моего первого руководителя о безопасности" Завершаю неделю постов по безопасности еще одной великолепной заметкой на Github. Она о том как выстроить культуру работы с безопасностью в стартапе. В прошлых постах мы обсуждали в основном технические детали публикации нашего приложения наружу. Но на этом работа не заканчивается. Если мы всерьез настроены делать стартап и привлекать клиентов безопасность становится одним из важных фокусов ...
Road to Highload Сегодня пост посвящен материалам команды Яндекс 360 о том как развивались их системы со временем и какие челленджи были на пути к желаемому всеми инженерами Highload. Из прошлых постов вы наверняка заметили, что мне обычно интересно не только читать про классные алгоритмы и модные штучки, но и искать ответы на вопросы "Зачем? Почему именно так?" Ребята декларируют намерение поделиться собственным опытом и дать те самые ответы, а не только "навалить базы". Поэтому я решил посмотр...
🚀 Demystifying memory management in modern programming languages Хочу с вами поделиться циклом статей, который мне пригодился во времена переката из Ruby в Go. Мне требовалось заново вспоминать всякие low level детали из-за специфики проекта и высокой нагрузки. Цикл о том как происходит управление памятью в языках программирования. Первый пост разбирает основы и дает ответы на общие вопросы - RAM, Stack, Heap, Malloc / Realloc. Дальше автор начинает разбирать популярные рантаймы (JVM, V8) и ЯП ...
How To Secure A Linux Server Сейчас мы живем в удивительное время. С одной стороны все больше слоев абстракции над нашими компьютерами. Если раньше ОС считалась абстракцией над железом то сейчас мы вовсю работаем с виртуализацией всех видов и декларируем свои намерения в YAML не зная вообще конфигурации сервера. С другой стороны в последнее время как будто бы нам все чаще нужны личные виртуалки у хостинг-провайдера или даже собственный сервер дома. Кому то хочется приватности, кому-то контроля. ...
Метрики? Метрики! Метрики...Или введение в Prometheus и Monitoring Ох уж это волшебное слово которое я слышу чуть ли не каждый день. Всем нужно что-то считать, оценивать. Визуализировать и оценивать реальность во всех ее проявлениях. Кто-то считает заработанные денежки, кто-то потраченные, кто-то и то и другое. В общем считать это нужное и полезное занятие. В том числе это нужно и нам - разработчикам. Для поддержки высокого уровня сервиса и построения надежных системм важно понимать как функцион...
Провожаем 2025й, встречаем 2026й 30е числа декабря это время когда многие подводят итоги, ставят цели и формируют планы на будущее. Признаюсь честно - далек от этого. Я редко ставлю себе детализированные планы, скорее ставлю себе некоторые направления в которых двигаюсь. Многие вещи и идеи могут появиться по ходу и оказаться не менее интересными и ценными чем то что изначально запланировал. Мой 2025й был насыщенным на разные события. Даже слишком. А ещё оказался наверное самым сложным за всю мою...
The Missing README: A Guide for the New Software Engineer В этом году я решил сделать над собой волевое усилие и читать чуть чаще чем в прошлом. И первой книгой в 2026м году стала The Missing README. Она произвела на меня впечатление, и мне хочется поделиться им с вами. В чем посыл книги? The Missing README позиционирует себя как книга о том что же такое Software Engineering и как же выглядит тот самый Software Engineer. Считаю, что посыл у книги благородный, так как высшее образование сфокусиро...
Concurrency, Synchronization and Consistency. Пост №19. Синхронизация в read-heavy сценариях. Read-Write Mutexes. В прошлом посте мы познакомились с sync.Mutex в Go - примитивом рантайма обеспечивающим взаимное исключение. Он умный, у него как и у мьютекса ОС есть fast path / slow path. Кажется что все хорошо. Но есть задача с которой классическому мьютексу справляться тяжеловато. Сделаем шаг назад и вспомним - зачем вообще нужна синхронизация? Все дело в том что нам нужно корректно рапространят...
Concurrency, Synchronization and Consistency. Пост № 24. Подводим итоги. Что будет дальше? Пришло время подводить итоги, так как мы рассмотрели основные вызовы и челленджи: - Начали от самых основ связанных с железом и тем как устроена ЭВМ. - Углубились в детали работы процессора, рассмотрели как он эволюционировал со временем, какие трюки и идеи реализовывали инженеры для ускорения. - Рассмотрели цену каждой такой идеи, ее влияние на программиста и код. - Рассмотрели инструменты и примитивы поз...