Kenar Cihazlar & Ajan
Kenar cihazlar, IronFlock’taki birincil yürütme düğümleridir. Her cihaz, Linux destekli bir makine — endüstriyel PC, Raspberry Pi, NVIDIA Jetson, ağ geçidi veya Linux çekirdeğine sahip herhangi bir donanım — IronFlock ajanını ve bir veya daha fazla Docker konteynerli uygulamayı çalıştırır.
IronFlock Ajanı
Ajan, cihaz üzerinde çalışan ve şunları yöneten hafif bir Go ikili dosyasıdır:
- Konteyner yönetimi — Kurulu tüm uygulamalar için Docker konteynerlerini başlatır, durdurur ve izler
- WAMP bağlantısı — Merkezi mesaj aracısına kalıcı, şifreli bir WebSocket bağlantısı sürdürür
- OTA güncellemeleri — Ajanın kendisi, ana işletim sistemi ve kurulu uygulamalar için güncellemeleri alır ve uygular
- Tünelleme — Açık port gerektirmeden ters proxy tünelleri aracılığıyla cihaz hizmetlerine (HTTP, SSH, VNC, TCP, UDP) güvenli uzaktan erişim sağlar
- Ağ yönetimi — Cihazdaki Wi-Fi, LAN ve LTE bağlantılarını yapılandırır
Ajan, doğrudan ana işletim sisteminde çalışan tek IronFlock bileşenidir. Diğer her şey Docker konteynerlerinin içinde çalışır.
Özerk Çalışma
Kenar cihazlar, merkezi hizmetlerden bağımsız olarak çalışacak şekilde tasarlanmıştır. Ağ bağlantısı kesilirse:
- Uygulamalar çalışmaya devam eder — Tüm konteynerli uygulamalar normal şekilde çalışmaya devam eder
- Uygulamalar veri arabelleğe alabilir — Telemetri yerel olarak kuyruğa alınır ve bağlantı geri geldiğinde FleetDB’ye iletilir
Bu özerklik temel bir tasarım seçimidir. Endüstriyel ortamlarda ağ güvenilirliği garanti edilemez ve kenar uygulamaların temel işlemleri için bir bulut bağlantısına bağımlı olmamaları gerekir.
Cihazda Ne Çalışır
┌─────────────────────────────────────────┐
│ Linux Host OS │
│ │
│ ┌─────────────────────────────────┐ │
│ │ IronFlock Agent │ │
│ │ (connectivity, OTA, tunneling) │ │
│ └────────────┬────────────────────┘ │
│ │ │
│ ┌────────────┴────────────────────┐ │
│ │ Docker Runtime │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ App A │ │ App B │ ... │ │
│ │ │ (OPC UA │ │ (Custom │ │ │
│ │ │ reader) │ │ logic) │ │ │
│ │ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
│ (outbound WSS only)
▼
WAMP Message BrokerHer uygulama kendi bağımlılıklarıyla kendi konteynerinde çalışır. Uygulamalar herhangi bir programlama dilinde yazılabilir — Python, Go, Rust, Node.js, C++ veya Docker konteynerinde çalışan her şey.
Desteklenen Donanım
IronFlock, Docker desteğine sahip Linux destekli herhangi bir cihazı destekler:
| Platform | Mimari | Örnekler |
|---|---|---|
| Endüstriyel PC’ler | x86_64 | Beckhoff, Advantech, Kontron, Dell Edge |
| Tek kartlı bilgisayarlar | ARM64, ARMv7 | Raspberry Pi 4/5, BeagleBone |
| AI hızlandırıcılar | ARM64 | NVIDIA Jetson Nano, Orin, Xavier |
| Ağ geçitleri | ARM64, x86_64 | Teltonika, Moxa, Advantech |
| Özel donanım | ARM (v5, v6, v7), ARM64, x86_64 | Docker destekli herhangi bir Linux cihazı |
Cihaz Sağlama
Cihazlar IronFlock’a birkaç şekilde eklenebilir:
- FlockFlasher ile flaşlama — Cihazın depolama birimine IronFlock OS yazmak için FlockFlasher masaüstü uygulamasını kullanın. Cihaz, ajan önceden yapılandırılmış olarak başlar ve otomatik olarak bağlanır.
- Ajanı kurma — Mevcut bir Linux sisteminde, ajan ikili dosyasını kurun ve cihaz kimlik bilgileriyle bir yapılandırma dosyası (
.flockdosyası) sağlayın. - OEM ön kaydı — Cihaz seri numaralarını önceden kaydedin. Cihaz açıldığında ve bağlandığında, doğru projeye otomatik olarak atanır.
İletişim Modeli
Varsayılan olarak, kenar cihazlar yalnızca giden bağlantılar kurar. Ajan, şifreli bir WebSocket (WSS) üzerinden WAMP mesaj aracısına bağlanır ve herhangi bir portu dinlemesi gerekmez. Bu şu anlama gelir:
- Varsayılan olarak cihazda veya ağında gelen güvenlik duvarı kuralları gerekmez
- Cihaz, internet üzerinden keşfedilemez veya adreslenemez
- Uzaktan erişim, operatör tarafından değil cihaz tarafından başlatılan ters tüneller aracılığıyla sağlanır
Ancak, cihaz portları gerektiğinde seçici olarak açılabilir — örneğin yerel bir HMI, REST API veya cihazda çalışan başka bir hizmeti açığa çıkarmak için. Port erişimi IronFlock UI aracılığıyla yapılandırılır ve yönetilir.
Güvenlik mimarisinin tamamı için Güvenlik bölümüne bakın.