Posts

Event-Driven Architecture

Обзорная статья про построение событийно-ориентированной архитектуры.

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

Читать статью

gRPC и REST в одном сервисе

Статья про то, как можно быстро, при помощи фреймворка go-zero, сделать ваши gRPC-хэндлеры переиспользуемыми для REST-протокола без необходимости дублирования кода, при помощи декларативного описания и кодогенерации.

Читать статью

Гайд по System Design

Пошаговый гайдлайн по прохождению секции System Design: сбор требований, фиксирование цифр, верхнеуровневое описание архитектуры, преимущества и недостатки различных подходов к масштабированию.

Смотреть видео

Вам не нужны микросервисы?

Microservices. Microservices everywhere!

В последнее время микросервисы становятся чуть ли не must-have архитектурой для любой уважающей себя IT компании.

Но что, если микросервисы - это просто новый карго-культ и вам они не нужны?

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

Читать статью

GOMEMLIMIT в Go 1.19

Если ваше приложение на Golang активно использует память, то вам наверняка знакома проблема, связанная с частотой запуска GC, которая вызывает частые фризы из-за STW.

Несколько лет назад команда Twitch активно продвигала метод балласта, но он не убережет вас от OOM.

Для того чтобы GC срабатывал не только при изменении потребления памяти, но при достижении определенных ее значений - в Go 1.19 был введен параметр GOMEMLIMIT который позволит сделать управление стартом GC более гибким и прозрачным.

Канареечный релиз

Неделю назад я делился с вами методикой Blue/Green деплоя. Сегодня же принес статью про еще один вариант безболезненных выкаток - это Канареечный релиз. Метод канарейки можно применять не только для поэтапной раскатки, не ломая функционал для львиной доли пользователей, но также и для того чтобы проверять гипотезы методом A/B. Раскатите новый функционал на 50% пользователей и следите за изменением метрик для обеих групп. Читать статью

Darker Corners of Go

Обширная статья про некоторые неочевидные подводные камни Golang.

Если вы уже знакомы с “50 Shades of Go” - это ее духовный наследник, который помимо всего приносит очень много новых ошибок новичка, на которые можно натолкнуться.

Читать статью

Blue/Green деплой

Роняли прод?

Неверный вопрос, конечно же роняли. (киньте в меня камень первым если это не так)

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

Одна из техник, которая позволяет выполнять откат неудачных деплоев без плясок с шаманскими музыкальными инструментами - это Blue/Green.

Именно про нее и поговорим в сегодняшней статье.

Читать статью

Оптимизация памяти в Go

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

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

Именно про такие примеры и пойдет речь в сегодняшней статье.

Читать статью

Rust для написания ОС

Совсем недавно я делился с вами новостью про возможность включения Rust в качестве языка разработки ядра Linux. А сегодня предлагаю доклад, который вдается в историю языков программирования для написания ОС и пытается порассуждать на тему - достойный ли кандидат Rust для того чтобы написать ОС схожую по производительности с ОС написанными на C. Смотреть видео