В 2023 году мы с коллегой сделали доклад на DotNext по DDD и архитектуре систем. И там, в числе прочего, показали, что устройство сложного проекта, спроектированного по определённым правилам, может иметь фрактальную структуру. Но мысль эту особо не развивали.
В 2024 году Влад Хононов — автор одной из самых известных книг по DDD — сделал доклад на DotNext по теме «Фрактальная геометрия в проектировании систем». Разумеется, он никаким образом на нашу идею не опирался, а работал над своей системой уже несколько лет к моменту доклада. У него там прям интересные научные обоснования, более серьёзный теоретический фундамент с введением новых понятий и принципов. Но факт близости хода мысли приятен. Типа, мы с коллегой делали систему, которая показала те же свойства, что и системы крутого эксперта в архитектуре.
Прям рекомендую доклад по второй ссылке всем, кто работает в компаниях, где по какому-то странному недосмотру есть архитектура, борьба с техдолгом и попытки не допустить превращения кода в лапшу с высоким зацеплением.
#dev@clockstackwheels
Proxmox: привязка CPU к виртуальным машинам
Не всегда очевидно, зачем вообще нужна привязка CPU к виртуальным машинам, особенно если речь идёт о небольших развертываниях - там этот параметр чаще всего просто игнорируют. Но в реальном продакшене использование CPU affinity становится действительно важным для повышения производительности виртуалок.
https://telegra.ph/Proxmox-privyazka-CPU-k-virtualnym-mashinam-09-03
#ит_статьи#devops#proxmox#linux#numa
Почему мое приложение на 2 vCPU работает быстрее в виртуалке, чем в контейнере?
С ростом популярности Kubernetes и контейнеров многие команды не только разрабатывают и разворачивают новые приложения сразу под Kubernetes, но и переносят туда уже существующие сервисы. Эти сервисы до этого могли работать на bare metal серверах или на виртуальных машинах.
Контейнеры реализуют идею «Собрал один раз — запускай где угодно», что позволяет командам разработки и эксплуатации управлять приложениями легче и более системно. Но довольно часто после переноса приложения как есть в Kubernetes производительность вдруг оказывается ниже ожидаемой.
Эта заметка в первую очередь смотрит на проблему со стороны CPU: почему при переносе сервисов из VM в мир Kubernetes (контейнеров) могут возникнуть определённые сложности и как они могут привести к просадке в производительности. Внутренние узкие места самого приложения — сетевой ввод-вывод, дисковый ввод-вывод и тому подобное — остаются за рамками обсуждения.
https://telegra.ph/Pochemu-moe-prilozhenie-na-2-vCPU-rabotaet-bystree-v-virtualke-chem-v-kontejnere-11-24
#ит_статьи#devops#kubernetes#performance#numa#cgroups#cpulimit