Felhő skálázódás – Azure

Az ipari minőségű IoT meghatározásban az első és legfontosabb pont az, hogy minden körülmények között működjön. Ezzel a mondattal kezdődhet mindegyik feladatunk az elkövetkező időben. Ebből a szempontból is vizsgáljuk meg a felhő alapú IoT szolgáltatásokat, pontosabban azt, hogy a feladat növekedését tudják-e követni megfelelően skálázódnak-e az egyre nagyobb feladatok függvényében.

Első esetben nézzük meg a Microsoft Azure IoT megoldását ebből a szempontból is. A következő kérdésekre keressünk válaszokat:

  1. Internet kapcsolat nélkül is működik-e? Erre a kérdésre a Microsoft Azure válasza az IoT Edge megoldás. Ez egy kis méretű szerver lokálisan (akár nagyon kis szerver is lehet pl. Raspberry PI3), amely működik akkor is ha az Internet kapcsolat megszakad. Minden működni fog? Hát ez egy kicsit árnyaltabb. Az IoT Edge megoldás általános elérhetősége 2018 július 27-től vált lehetségessé, de ez az 1.0-ás változat nem volt képes az ún. „extended offline” működésre, azaz hosszabb ideig is működőképes marad az Internet kapcsolat megszakadása esetén is. Ez a lehetőség csak a 1.0.4-es vagy magasabb verziókban áll rendelkezésre, de az 1.0.4-es verzió csak 2018 november 2-ától áll rendelkezésre!
  2. Bármennyi üzenetet át tudok vinni? Ez az előfizetéstől függ. Az IoT Edge szolgáltatást is magában foglaló ún. standard előfizetések 3 kategóriában állnak rendelkezésre az S1 (25$/hó) napi 400 000 üzenet (felhőbe és felhőből összesen) az S2 (250$/hó) napi 6 millió üzenet és az S3 (2500$/hó) napi 300 millió üzenet átvitelét engedi meg. Van azonban még egy figyelembe veendő körülmény! A Microsoft feltételezi, hogy ezeket az üzeneteket egy napon belül többé-kevésbé egyenletesen küldjük a nap 24 órájában! Azaz a 400 000 üzenet/nap azt jelenti, hogy kevesebb mint 5 üzenetet küldhetünk másodpercenként! (Egy nap az 86 400 másodperc, azaz 5 üzenet másodpercenként már 432 000 üzenet, azaz 32 000 üzenetet már el fog dobni a Azure IoT!) A Microsoft által közölt korlátok ( https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#iot-hub-limits ) szerint maximum S1 csomag esetén 100 üzenetet S2 csomag esetén 120 és S3 csomag esetén 6000 üzenetet küldhetünk másodpercenként. Ez a helyszínről a felhőbe irány. A másik irányban a felhőből a helyszínre sokkal nagyobbak a megszorítások! S1 és S2 csomagok esetén már csak percenként 100 üzenet küldésére van lehetőség és a legnagyobb S3 csomag esetén is maximum 5000 üzenetet küldhetünk percenként! Ebből viszont az következik, hogy a Microsoft IoT szolgáltatása olyan használati esetkere jó (use case), ahol a forgalom egyenletes és jól becsülhető és alapvetően adatgyűjtés a feladat és kevés a beavatkozás. Ilyen például a mérőóra leolvasás esete. Olyan esetekre azonban veszélyes használni, ahol váratlan eseményekre kell reagálni, pl. vészhelyzet kezelés, riasztás, kárelhárítás kezelése! Minden olyan esetben, amikor hirtelen megnőhet az átviendő csomagok száma (ún. hiba lavina jelenség), akkor az a veszély, hogy vagy eldobásra kerülnek üzenetek vagy feleslegesen nagy és drága csomagra kell előfizetni.
  3. Egy üzenet az egy üzenet? Lehet, hogy a kérdés furcsa, de helyénvaló! A Microsoft ugyanis a megadott napi üzenetszámot 4 KB-os egységekben méri. Azaz igaz, hogy lehetőség van akár 256 KB-os csomag küldésére (a helyszínről a felhőbe visszafele irányba csak max. 64 KB!) de ez 256/4=64 csomagnak számít! Így meglepetés érhet minket, ha csak az elküldött és/vagy vett üzenetek számát figyeljük, de a hosszukat nem! Pl. egyetlen 16 KB-os üzenet másodpercenként „kimeríti” a 400 000/üzenet/nap korlátot egy S1 csomag esetén!