🏰 Про мою мини-инфраструктуру

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

Для начала, что вообще за мини-проектики? Ну, пока это только бот sp_link_saver_bot и мини-апп sp_adv_reminder_bot. Они были скорее "пробой пера", чем чем-то серьезным, - чтобы самому для себя все потыкать, повспоминать, чему-то новому может научиться, ну и устаканить процесс разработки. Сейчас вроде все устаканено и можно в целом любого рода сервис достаточно быстро раскатить, и будет там сразу и сборка, и деплой, и базовый мониторинг, и взаимодействие с другими сервисами, ну и все такое.

🔹 На виртуалке крутится однонодный k8s кластер, поднятый с использованием "дистрибутива" k0s. Поднимается с нуля реально за пару часов, если совсем не в контексте, то за денек.

🔹 Этот кластер менеджится через GitOps тулзу Flux. Коротко говоря, она позволяет хранить все состояние кластера в репозитории и работать с ним как с кодом. Закодил ямл - запушил - он раскатился в кластер.

🔹 В кластере подняты всякие PostgreSQL, Redis, ClickHouse, настроены бэкапы в S3 Yandex Cloud, ну и всякое остальное по мелочи.

🔹 Бэкенд-приложения пишу на Scala (недавно еще мигрировал на третью) + zio.

🔹 Собираю их через nix в нативные GraalVM бинарники. Бинарники пакуются nix'ом в образы, которые пушатся в гитлаб реджистри.

🔹 В кластере через изкоробочные средства Flux настроен поллинг новых имеджей в реджистри, так что как только там появляется новый образ приложения, оно перераскатывается.

🔹 Сборка (и последующий деплой) происходит по коммиту в master. Поэтому итоговый флоу разработки простой и приятный: пушишь в мастер, собирается и пушится в реджистри образ, образ подхватывается в кластере и все перераскатывается.

🔹 Настроен базовый мониторинг через Uptime Kuma, чисто получать уведомления в телегу, когда что-то отвалилось. В перспективе хочется каких-то графиков, логов, метрик, алертов, но пока что-то руки не доходят заняться.

🔹 Фронт пишу на SvelteKit, раскатываю на GitLab Pages, тут все супер-просто вроде.

Вот как-то так. В ближайшее время будем на этой инфре что-нибудь еще разворачивать, так что оставайтесь на связи 🫡

А как вы разворачиваете свои проекты? 🤔

🏰 Про мою мини-инфраструктуру | Сетка — социальная сеть от hh.ru