IoT Demo — Nubes Cloud
Демо-стенд «Умный дом»: 6 сервисов Nubes Cloud, развёртывание через Terraform.
Архитектура
| Сервис |
Тип Nubes |
Роль |
iot-rmq |
RabbitMQ |
Очередь сообщений |
iot-rds |
Redis |
Кэш дашборда |
iot-mgo |
MongoDB |
Постоянный архив |
iot-prod |
Node.js (22) |
Генератор IoT-событий |
iot-cons |
Node.js (22) |
Обработчик очереди |
iot-dash |
Node.js (22) |
Веб-дашборд |
Быстрый старт
1. Скопировать и заполнить terraform.tfvars
2. Заменить обязательные параметры в locals.tf
| Параметр |
Что писать |
prod_git_path |
URL вашего форка producer в Gitea |
cons_git_path |
URL вашего форка consumer в Gitea |
dash_git_path |
URL вашего форка dashboard в Gitea |
prod_domain |
Уникальный поддомен для producer |
cons_domain |
Уникальный поддомен для consumer |
dash_domain |
Уникальный поддомен для dashboard |
prod_resource_name |
Имя инстанса producer в кабинете Nubes |
cons_resource_name |
Имя инстанса consumer |
dash_resource_name |
Имя инстанса dashboard |
⚠️ Домены (поддомены .nodejsk8s.dev.nubes.ru) должны быть уникальны в рамках кластера. Занятый домен — ошибка при деплое.
3. Деплой
4. Проверка
Репозитории приложений
Код каждого приложения — отдельный репо. Склонируйте/форкните к себе в Gitea.
Файлы
| Файл |
Назначение |
main.tf |
Провайдер, переменные |
locals.tf |
Все настройки — менять здесь |
infra.tf |
RabbitMQ + Redis + MongoDB |
producer.tf |
Node.js producer |
consumer.tf |
Node.js consumer |
dashboard.tf |
Node.js dashboard |
terraform.tfvars.example |
Шаблон секретов |
Примечания
- MongoDB без пароля — для демо. В проде настроить аутентификацию.
adopt_existing_on_create = true — повторный apply подхватывает существующие инстансы.
suspend_on_destroy = true — destroy не удаляет, а засыпает (suspend).
- Все внутренние соединения — K8s Service (
.svc.cluster.local).