-
Что не так с PostgreSQL
Если вы никогда не задумывались о том, что не так с PostgreSQL, скорей всего, у вас всё так и можно спокойно жить дальше. Но это не точно. :-)
-
Принцип прочности
В продолжении разговора о надежности, прочности и устойчивости. Недавно наткнулся на принцип, о существовании которого я не знал, но много раз применял его на практике. Точней сказать, я не знал, что это целый принцип. :)
-
Борьба с зомби-процессами
Ранее я обещал, что постараюсь раскрыть тему безопасного исполнения ненадежного кода (untrusted code). Сегодня будет первая статья из цикла “Как безопасно исполнять ненадежный код” #untrusted_code. Надеюсь, что будет интересно. :)
-
Гарантированная отправка сообщений
На конференции TeachLeadConf 2024 после доклада мне был задан вопрос про гарантию отправки сообщений в брокер. Если коротко, то вопрос можно сформулировать так: “Как гарантировать отправку сообщений, сохранив их порядок?” Оригинальная формулировка была не столь понятна для меня, поэтому пришлось ответить позже в закрытом чате конференции. Поскольку вопрос достаточно популярный, я решил дать более развернутый и публичный ответ.
-
Надежность, прочность, устойчивость
При обсуждении свойств программной системы мы часто оперируем такими терминами, как надежность, прочность и устойчивость, не проводя четких различий между ними. Однако, при формулировании требований эти понятия следует рассматривать отдельно. Если вы думаете, что это не столь важно, то инженеры NASA, которые занимаются проектированием систем жизнеобеспечения, так не считают. Как мне кажется, данный опыт вполне применим и при проектировании программных систем.
-
Итоги проведения олимпиад
Прошло полтора года, как я участвую в проекте “Виртуальная лаборатория: информатика и программирование”. Это учебный модуль информационного портала “Московской Электронной Школы” (МЭШ), где ученики могут проходить курсы по информатике и программированию, выполнять различные тематические задания, в том числе решать задачи по программированию. Нам присылают код, который мы должны выполнить многократно, используя набор тестов предопределенный автором задачи. И каким бы подозрительным не был код, выполнить мы его обязаны в любом случае. Таково функциональное требование заказчика.
-
Фэйл с RabbitMQ и Kubernetes API
Сегодня будет немного личная история, но с моралью в конце. На самом деле заголовок не совсем точный, но на момент, когда произошел описываемый казус, всё выглядело именно так…
-
Ускорение потоков данных
Как правило мы находимся в условиях, когда за короткий срок нужно выдать максимум функциональности, обеспечив при этом должный уровень производительности приложения. И если функциональным требованиям уделяют основное внимание, то вопрос производительности воспринимают как само собой разумеющееся. А что делать, если сроки сжаты до предела, уже имеется какой-то рабочий прототип, а нагрузка к моменту основного релиза обещает вырасти в десятки раз? В такой момент мы хотим найти простое решение, которое избавит нас от большей части проблем.
-
Log-based- и Queue-based-брокеры сообщений
Решил сделать отдельный пост-справку для тех, кто не знаком с одним или другим видом брокеров. На нее я буду ссылаться в дальнейшем.