Il y a un an, nous avons lancé une version pilote d'un projet promotionnel pour la location décentralisée de scooters électriques .
Initialement, le projet s'appelait Road-To-Barcelona, ​​plus tard il est devenu Road-To-Berlin (d'où le R2B trouvé dans les captures d'écran), et à la fin il s'appelait xRide.
L'idée principale du projet était la suivante: au lieu d'avoir un service centralisé de location de voitures ou de scooters (nous parlerons de scooters aka motos électriques, et non de kickscooter / scooters), nous voulions faire une plateforme de location décentralisée. Nous avons déjà écrit sur les difficultés rencontrées précédemment .
Au départ, le projet était axé sur les voitures, mais en raison du timing, de la communication extrêmement longue avec les fabricants et d'un grand nombre de restrictions de sécurité, des scooters électriques ont été choisis pour le pilote.
iOS Android , , peer-to-peer , ETH . Ethereum .
" ", , .
, : .
, , , ( ) : .
?
, — IoT .
: , , ?
, ?
— , , : , , .
, IT — , . " ", .
?
, — GPS , , .
— , , juicer' .
, Hardware :
- Bluetooth?
- GPS ?
- , GPS "", ,
- , GPS "", ,
Hardware
"" ?
— Raspberry Pi.
Rpi ( ) — ( / ), , , . "xRide box".
, , .
, , "off".
Docker? Plain linux?
, Raspberry — ?
, Docker.
, Docker RPi , , .
"" , .
Node.js (sic!) — , Go/C/C++.
"" .
, , .
, Docker . OS .
OS
, , , Raspbian ( Debian Pi).
Go, hardware- Go.
GPS, Bluetooth, , , .
(OTA) — /, /"" ( , ).
, .
, /dual-boot swupd/SWUpdate/OSTree Mender Balena.
, end-to-end , .
Balena , Docker balenaEngine.
, , Balena Etcher SD — .
Mender. Mender , .
, , mender.
, , , .
, , Mender .
Ansible
Ansible. playbook' .
, (CI ) ssh .
— , Wi-Fi.
, , IP Ansible Inventory.
Ansible -
3G/LTE
, Ansible , .
, , Wi-Fi .
3G/LTE ( ).
, .
— 3G/LTE IP .
SIM , IoT IP . SIM IP .
, IP aka service discovery - Consul, , IP , .
, pull , , push
VPN
VPN — Wireguard.
() VPN . .
, , push.
— , Kubernetes, . — Helm, , . , , , .
, , , :
- ,
- / —
- —
- pull — push
- ,
, .
, all-in-one , , . -, , .
, Nagios, icinga zabbix Fleet management.
, , , , "" . .
- , . , Fleet management , .
, , " ", .
, , "" , .
(B)ELK?
, — ELK .
BELK, Beats — https://www.elastic.co/what-is/elk-stack
, ELK , , .
, ELK , Prometheus.
Grafan'.
, ELK (metricbeat), Kibana .
- ELK :
- Prometheus
- Prometheus
- Kiban' Grafan'
, ELK , Prometheus: TSDB, Victoria Metrics, Cortex . , all-in-one , metricbeat .
ELK :
- , ,
- " " — ,
- — ,
, open-source X-pack ( ) .
, , .
, - ElastAlert community , .
Loki — Grafana — Prometheus
Prometheus , Loki , Grafana.
, (- 19 ) Loki 0.3-0.4, produtcion .
Loki , , Promtail ( ) bare-metal, kubernetes.
TICK
, (?) ELK TICK — Telegraf, InfluxDB, Chronograf, Kapacitor.
, :
- Telegraf —
- InfluxDB —
- Kapacitor —
- Chronograf —
InfluxDB, Kapacitor Chronograf helm , .
, Influx 2.0 (beta) Kapacitor Chronograf InfluxDB
Telegraf
Telegraf — .
:
- ( Go)
- Push
-
- -
- " "
push , .
, .
Influx syslog.
Telegraf , ICK .
ELK time-series , .
InfluxDB
InfluxDB — TICK , time-series .
Influx , , , .
InfluxDB Go , , ELK ( ) .
Influx API , .
— $$$ ?
TICK — . .
, ?
, TICK — .
— High availability Enterprise .
HA — , - . — influxdb-ha , ,
influx-spout — NATS ( , ).
, , , — , , Influx 2.0 ( ).
Relay — HA, ,
InfluxDB load balancer'.
( InfluxDB ).
Victoria Metrics?
, , TICK , , InfluxDB , T_CK.
Time-series , — Victoria Metrics, :
Victoria , drop-in InfluxDB.
, , , InfluxDB, — "" Prometheus API, Chronograf .
, VM , Influx.
, , Victoria Metrics ,
( ).
, InfluxDB.
:
- TICK
, - .
, Influx (c ).
— TICK .
Kapacitor
Kapacitor — TICK , .
( ), — .
. Slack , , .
, , .
— - "", .
Influx 2.0 Kapacitor DB
Chronograf
UI , , UX Chronograf'.
TICK , , Grafan' -.
, .
, Grafana , Chronograf Influx.
, , Chronograf .
, Chronograf , InfluxDB Explore.
, Grafana , Chronograf ( ), Grafana JSON ( Chronograf "" JSON — UI).
Kibana , UX .
. Chronograf , .
, , Grafana Kibana :
:
, , InfluxDB Query mean.
, Chronograf . :
Influx syslog — severity.
, severity .
, .
, , .
- , , , ( LTE ), "" Slack , .
, severity .
Slack . .
, Chronograf OAuth OIDC .
, SSO.
— Keycloak — , back-end.
“”
, — "" Vue.
, , InfluxDB.
, , .
. , Grafana Chronograf — Grafana , . , Grafana , , , , , ( , ).
Influx — .
.
: , , , bluetooth, GPS, healthcheck'.
.
, — Influx Nodes " ".
deadman — Slack.
, —
. " — !"
, InfluxDB , Victoria Metrics.
, — , ( — enum)?
, , .
, " " , , .
API , , .
Influx. - status InfluxDB .
- "online" "offline", , Slack . - "disconnected".
, , - .
, — .
, , . , , .
, InfluxDB GPS . .
, .
, ( ).
, ( ) .
:
, :
, :
- Keycloak
Kubernetes, .
, Telegraf " " Kubernetes , Chronograf .
. — Slack.
Kubernetes : DaemonSet Sidecar.
.
Telegraf Sidecar .
. Telegraf Docker API, syslog . , , Chronograf'e.
???
, , , .
Telegraf InfluxDB Influx, - .
?
— TICK , , .
, , . — .
TICK — . .
/ , 30 .
. . 10 .
, , " " , 30 . , LTE SIM .
, 10- .
, - , .
, — WireGuard VPN.
, environment , .
InfluxDB 10 - .
TICK — -
, TICK , - HighLoad.
— InfluxDB .
Influx Relay High Availability.
, , "" .
, / "" — TICK .
, InfluxDB Enterprise — - , . , .
, , Victoria Metrics Loki.
, , Loki/Grafana ( ) TICK, .
: Influx 1.8, - Influx 2.0.
, , ( kapacitor chronograf),
(" " — Fortnite ). , , 2 , — .
Influx 2.0 , - , , .
IoT ()
, IoT , .
, Beta OpenBalena — .
Ansible + TICK + WireGuard, . , Balena IoT .
, , , OpenBalena , .
, VPN IoT .
— Hardware, .
, ?
, "", .
"", GPS InfluxDB.
, , 21:00 , - - 5 - .
5 — , - .
, , . .
, .
, , , () . - .
. , , , ...