Rust на VPS: деплой production-бинарника — иллюстрация к статье Storm Cloud Blog, категория Разработка
Rust на VPS: деплой production-бинарника — иллюстрация к статье Storm Cloud Blog, категория Разработка
Разработка·2 мин··

Rust на VPS: деплой production-бинарника

Деплой Rust на VPS: cargo build --release, systemd, Nginx, кросс-компиляция. Максимальная производительность на минимальном RAM.

Краткий ответ: cargo build --release → один бинарник на VPS → systemd. Nginx для SSL. Rust потребляет 5–20 MB RAM — идеален для 1 GB VPS.

Rust на VPS — как Go: статическая компиляция, без runtime. Но zero-cost abstractions и memory safety без GC.


Сборка release

cargo build --release
# target/release/myapp — готов к деплою

Кросс-компиляция для VPS (musl = полностью static):

rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl

Деплой

scp target/release/myapp deploy@VPS:/opt/myapp/myapp
[Unit]
Description=Rust API
After=network.target

[Service]
User=deploy
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/myapp
Restart=on-failure
Environment=RUST_LOG=info

[Install]
WantedBy=multi-user.target

systemd + Nginx reverse proxy.


Docker альтернатива

FROM rust:1.78 AS builder
WORKDIR /app
COPY . .
RUN cargo build --release

FROM debian:bookworm-slim
COPY --from=builder /app/target/release/myapp /usr/local/bin/
CMD ["myapp"]

multi-stage build — образ ~20 MB.


Мониторинг

  • RUST_LOG=debug для отладки
  • tracing crate → JSON logs → Loki
  • /metrics endpoint → Prometheus

Rust vs Go на VPS

Rust Go
RAM 5–20 MB 20–50 MB
Compile time Дольше Быстрее
Performance Максимум Высокая
Learning curve Круче Мягче

Итог

Rust — для latency-critical API на маленьком VPS. Один бинарник, systemd, минимум RAM.

VPS от 1 GB — StormNet Cloud. Логи — journalctl.

Частые вопросы

Нужен ли Rust на VPS для запуска приложения?

Нет. Компилируете release-бинарник на CI или dev-машине — на VPS только исполняемый файл и systemd.

Rust или Go на VPS с 1 ГБ RAM?

Оба отлично подходят. Rust — чуть меньше RAM, Go — быстрее compile и проще для команд.