feat: plan.md + minor fixes (stats, server, copilot rules)
This commit is contained in:
@@ -28,16 +28,16 @@
|
|||||||
1. Не трогать рабочий код без явного указания.
|
1. Не трогать рабочий код без явного указания.
|
||||||
|
|
||||||
2. Файлы редактируются локально:
|
2. Файлы редактируются локально:
|
||||||
~/fission
|
~/IoT
|
||||||
|
|
||||||
После ЛЮБЫХ изменений ОБЯЗАТЕЛЬНО синхронизировать на ВМ командой:
|
После ЛЮБЫХ изменений ОБЯЗАТЕЛЬНО синхронизировать на ВМ командой:
|
||||||
rsync -az \
|
rsync -az \
|
||||||
-e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
|
-e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
|
||||||
~/fission/ \
|
~/IoT/ \
|
||||||
naeel@5.172.178.213:~/terra/fission/
|
naeel@5.172.178.213:~/terra/IoT/
|
||||||
|
|
||||||
|
|
||||||
3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/fission
|
3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/IoT
|
||||||
4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ:
|
4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ:
|
||||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА'
|
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА'
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -13,14 +13,14 @@
|
|||||||
|
|
||||||
## Файловая система (актуально)
|
## Файловая система (актуально)
|
||||||
|
|
||||||
1. Все файлы редактируются локально: `~/fission`
|
1. Все файлы редактируются локально: `~/IoT`
|
||||||
2. После любых изменений — обязательно rsync на ВМ:
|
2. После любых изменений — обязательно rsync на ВМ:
|
||||||
rsync -az \
|
rsync -az \
|
||||||
-e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
|
-e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
|
||||||
~/fission/ \
|
~/IoT/ \
|
||||||
naeel@5.172.178.213:~/terra/fission/
|
naeel@5.172.178.213:~/terra/IoT/
|
||||||
|
|
||||||
3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/fission
|
3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/IoT
|
||||||
4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ
|
4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ
|
||||||
5. Перед запуском любой команды на ВМ обязательно убедиться, что синхронизация (rsync) выполнена
|
5. Перед запуском любой команды на ВМ обязательно убедиться, что синхронизация (rsync) выполнена
|
||||||
6. SCP, sshfs, remote_dev и маунты больше НЕ используются
|
6. SCP, sshfs, remote_dev и маунты больше НЕ используются
|
||||||
@@ -86,7 +86,7 @@ LOG="test-results/$(date +%Y-%m-%d_%H-%M).log"
|
|||||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 \
|
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 \
|
||||||
"bash ~/terra/fission/scripts/run_all.sh 2>&1 | tee ~/terra/fission/${LOG}"
|
"bash ~/terra/fission/scripts/run_all.sh 2>&1 | tee ~/terra/fission/${LOG}"
|
||||||
rsync -az -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no" \
|
rsync -az -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no" \
|
||||||
naeel@5.172.178.213:~/terra/fission/test-results/ ~/fission/test-results/
|
naeel@5.172.178.213:~/terra/IoT/test-results/ ~/IoT/test-results/
|
||||||
```
|
```
|
||||||
|
|
||||||
**Никогда не разбираться с результатами по памяти / буферу / чату. Только лог.**
|
**Никогда не разбираться с результатами по памяти / буферу / чату. Только лог.**
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import (
|
|||||||
"fission-console/internal/auth"
|
"fission-console/internal/auth"
|
||||||
"fission-console/internal/billing"
|
"fission-console/internal/billing"
|
||||||
"fission-console/internal/cloud"
|
"fission-console/internal/cloud"
|
||||||
"fission-console/internal/stats"
|
|
||||||
"fission-console/internal/fission"
|
"fission-console/internal/fission"
|
||||||
|
"fission-console/internal/stats"
|
||||||
"fission-console/ui"
|
"fission-console/ui"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# Демо-пайплайн: IoT → SQS → Fission
|
||||||
|
|
||||||
|
## Архитектура
|
||||||
|
|
||||||
|
1. **Крон-функция (Fission)**
|
||||||
|
- Парсит данные о погоде с сайта для нескольких городов
|
||||||
|
- Эмулирует IoT-датчики: отправляет данные в IoT-сервис (MQTT/HTTP)
|
||||||
|
|
||||||
|
2. **IoT-сервис**
|
||||||
|
- Принимает данные от "датчиков"
|
||||||
|
- Публикует сообщения в очередь (SQS или аналог)
|
||||||
|
|
||||||
|
3. **Очередь (SQS)**
|
||||||
|
- Хранит сообщения от IoT
|
||||||
|
- Триггерит Fission-функцию при появлении новых данных (MessageQueue Trigger)
|
||||||
|
|
||||||
|
4. **Fission-функция**
|
||||||
|
- Получает данные из очереди
|
||||||
|
- Записывает их в таблицу (PostgreSQL, ClickHouse и т.д.)
|
||||||
|
|
||||||
|
## Требования к Fission
|
||||||
|
|
||||||
|
- Необходим MQ-триггер (MessageQueue Trigger) для автоматического запуска функции по сообщениям из очереди.
|
||||||
|
- Сейчас в Fission есть HTTP, Cron, Event, но нет универсального MQ-триггера.
|
||||||
|
- Возможные варианты:
|
||||||
|
- Реализовать внешний watcher (SQS/Kafka/RabbitMQ → invoke HTTP endpoint Fission)
|
||||||
|
- Добавить поддержку MQ-триггера в сам Fission (новый CRD + контроллер)
|
||||||
|
|
||||||
|
## Примечания
|
||||||
|
|
||||||
|
- Все компоненты связаны через API/очереди, каждый слой изолирован.
|
||||||
|
- Такой пайплайн типовой для облачных платформ и легко масштабируется.
|
||||||
|
- Для MVP достаточно watcher-а очереди, который вызывает функцию через HTTP.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Если потребуется — расписать детальный план интеграции или примеры кода для каждого этапа.
|
||||||
Reference in New Issue
Block a user