Event-Driven Architecture
Обзорная статья про построение событийно-ориентированной архитектуры.
Разбор компонентов, преимущества и недостатки, а также пошаговый разбор перехода от синхронного взаимодействия к асинхронному.
Обзорная статья про построение событийно-ориентированной архитектуры.
Разбор компонентов, преимущества и недостатки, а также пошаговый разбор перехода от синхронного взаимодействия к асинхронному.
Статья про то, как можно быстро, при помощи фреймворка go-zero, сделать ваши gRPC-хэндлеры переиспользуемыми для REST-протокола без необходимости дублирования кода, при помощи декларативного описания и кодогенерации.
Пошаговый гайдлайн по прохождению секции System Design: сбор требований, фиксирование цифр, верхнеуровневое описание архитектуры, преимущества и недостатки различных подходов к масштабированию.
Microservices. Microservices everywhere!
В последнее время микросервисы становятся чуть ли не must-have архитектурой для любой уважающей себя IT компании.
Но что, если микросервисы - это просто новый карго-культ и вам они не нужны?
Сегодня я принес вам статью, в которой автор описывает причины и приводит аргументы в пользу того, что на вашем проекте микросервисы могут скорее навредить, нежели принести ощутимую пользу при разработке и сопровождении.
Сегодня хочу поделиться видео-рассуждением на тему, сможет ли Rust стать главным языком системного программирования на следующие 40 лет. Смотреть видео
Если ваше приложение на Golang активно использует память, то вам наверняка знакома проблема, связанная с частотой запуска GC, которая вызывает частые фризы из-за STW.
Несколько лет назад команда Twitch активно продвигала метод балласта, но он не убережет вас от OOM.
Для того чтобы GC срабатывал не только при изменении потребления памяти, но при достижении определенных ее значений - в Go 1.19 был введен параметр GOMEMLIMIT который позволит сделать управление стартом GC более гибким и прозрачным.
Неделю назад я делился с вами методикой Blue/Green деплоя. Сегодня же принес статью про еще один вариант безболезненных выкаток - это Канареечный релиз. Метод канарейки можно применять не только для поэтапной раскатки, не ломая функционал для львиной доли пользователей, но также и для того чтобы проверять гипотезы методом A/B. Раскатите новый функционал на 50% пользователей и следите за изменением метрик для обеих групп. Читать статью
Обширная статья про некоторые неочевидные подводные камни Golang.
Если вы уже знакомы с “50 Shades of Go” - это ее духовный наследник, который помимо всего приносит очень много новых ошибок новичка, на которые можно натолкнуться.
Роняли прод?
Неверный вопрос, конечно же роняли. (киньте в меня камень первым если это не так)
И в случае, когда что-то пошло не так - очень важно уметь быстро откатываться до стабильного состояния.
Одна из техник, которая позволяет выполнять откат неудачных деплоев без плясок с шаманскими музыкальными инструментами - это Blue/Green.
Именно про нее и поговорим в сегодняшней статье.
Несмотря на то, что Golang не замечен в высоком потреблении памяти, очень полезно понимать - как она расходуется вашим приложением и не происходит ли где-то избыточных аллокаций.
Часто, оптимизации требуют сложного рефакторинга, но иногда можно обойтись совсем незначительными изменениями.
Именно про такие примеры и пойдет речь в сегодняшней статье.
Совсем недавно я делился с вами новостью про возможность включения Rust в качестве языка разработки ядра Linux. А сегодня предлагаю доклад, который вдается в историю языков программирования для написания ОС и пытается порассуждать на тему - достойный ли кандидат Rust для того чтобы написать ОС схожую по производительности с ОС написанными на C. Смотреть видео
Обширная статья Uber про выявленные шаблоны состояния гонки в микросервисах на Go.