Part 1ArchitectureMulti-appKubernetes
Гравитация основного приложения
Проект на этой платформе — это не одно приложение и один стек, а N изолированных приложений и M сервисов, делящих один namespace в Kubernetes, и всё это разворачивается из сообщения в чате. Стоит это допустить — и почти каждый баг начинает рифмоваться: «новое соседнее приложение» молча схлопывается обратно в основное. Это рассказ о том, почему так происходит снова и снова, о единственном принципе, который чинит весь класс этих багов — сходиться к объявленному состоянию в одной контрольной точке и падать с отказом вместо отката к основному приложению, — и о том, как тот же принцип, прокрученный в обратную сторону, позволяет нам путешествовать во времени со всем стеком сразу (код в git, данные в общей ветке Neon и живая инфраструктура K8s) обратно в один согласованный момент.
14 июня 2026 г. 13 min read Part 2ArchitectureKubernetesLinux
Как усыпить тысячу простаивающих приложений: KEDA, CRIU и freezer cgroup v2
Каждое приложение на платформе должно стоить ноль, пока на него никто не смотрит, — и мгновенно оживать, когда кто-то заходит. Мы выбрали контейнеры вместо микро-VM, а затем перепробовали три способа сделать простой бесплатным: масштабирование до нуля через KEDA, checkpoint/restore через CRIU и, наконец, freezer cgroup v2 с вытеснением в swap. Первые два очень по-разному показали нам, в чём на самом деле было ограничение. Это хроника экспериментов, режимов отказа, на которые мы наткнулись, и той архитектуры, что в итоге выжила.
14 июня 2026 г. 13 min read