A mai digitális korban szinte alapvetőnek számít, hogy egy weboldal a felhőből, hatalmas szerverparkokról üzemel, biztosítva a folyamatos elérhetőséget és a gyors betöltődést. Azonban mi van akkor, ha valaki szembemegy az árral, és egy merőben szokatlan, mégis rendkívül stabil megoldással rukkol elő? Pontosan ez történt Kyrylo Novotarskyi projektjével, ahol egy személyes weboldal üzemeltetését nem kisebb feladatra bízta, mint hat darab, egyenként mindössze 12 fontos ESP32-S3 mikrokontrollerre.
Ez a megközelítés nem csupán a költséghatékonyság miatt figyelemre méltó, hanem azért is, mert a rendszer rendkívül ellenálló a hibákkal szemben, és mindezt egy londoni lakás polcán valósították meg, felhőszolgáltatók és tartalomelosztó hálózatok (CDN) nélkül. Az egész koncepció lényege, hogy a mikrokontrollerek egy választási rendszert működtetnek, így mindig a legalkalmasabb egység veszi át a vezető szerepet a weboldal kiszolgálásában.
Mi az az ESP32-S3, és miért épp az?
Az ESP32-S3 egy alacsony fogyasztású, nagy teljesítményű mikrokontroller, amely Wi-Fi és Bluetooth képességekkel is rendelkezik. Kisméretű, olcsó, és a fejlesztők körében rendkívül népszerű a sokoldalúsága miatt. Novotarskyi esetében a LILYGO T-ETH-Lite ESP32-S3 lapokat használta, amelyek W5500-as vezetékes Ethernet vezérlővel vannak kiegészítve. Ez kulcsfontosságú, hiszen a stabil vezetékes kapcsolat elengedhetetlen a weboldal megbízható működéséhez. A választás oka nem a véletlen műve, hanem egy tudatos döntés: semmilyen Linux kernelen alapuló rendszert nem akart beiktatni a forgalom útjába, így a mikrokontrollerek közvetlen és hatékony adatfeldolgozása volt a cél.
Hogyan működik a hatszoros biztonság?
A rendszer lelke a „maszk” névre keresztelt virtuális MAC-cím. Ezt a MAC-címet (ami gyakorlatilag egy egyedi azonosító a hálózaton) nem egy gyárilag beállított értékből nyeri, hanem a rendszer választja ki. A hat mikrokontroller folyamatosan kommunikál egymással titkosított ESP-NOW rádiókapcsolaton keresztül, és egy „választást” tartanak. Az a lap, amelyik egészséges, aktív és a legkisebb terheléssel rendelkezik, megkapja a „maszkot”, vagyis felveszi a virtuális MAC-címet. Ez a vezető lap fogadja a bejövő kéréseket, és átirányítja azokat a legkevésbé terhelt „pengéhez” (egy másik mikrokontrollerhez) a webszerver flotta többi tagja közül. Az igazi érdekesség a hibatűrésben rejlik: ha a vezető lap valamiért kiesik, kevesebb mint négy másodperc alatt egy másik mikrokontroller veszi át a helyét, és ugyanazt a MAC-címet, IP-címet és biztonsági tanúsítványt használva folytatja a szolgáltatást. Ezt hívják virtuális MAC feladatátvételnek. Ez azt jelenti, hogy még egy hardveres meghibásodás, vagy akár a tápkábel kihúzása sem okoz percekig tartó leállást. Ha pedig egyetlen lap marad működőképes, az önmagát szolgálja ki, biztosítva a folyamatos működést.
Ez a megközelítés fantasztikusan stabil, hiszen a rendszer feltételezi, hogy a hardver bármikor hibázhat, és folyamatosan monitorozza a saját és a többi egység állapotát. Minden lap hét másodpercenként ellenőrzi a saját nyilvános portját, és ha kétszer egymás után sikertelen az ellenőrzés, akkor önként kivonja magát a választásból. Ha pedig hat alkalommal hibázik, akkor szándékosan újraindul, és egy hibajelentést hagy maga után a flash memóriában, megjelölve a hiba okát. A frissítések is rendkívül biztonságosak: az Over-The-Air (OTA) frissítések guruló módon történnek, először a követő lapokon, majd utoljára a vezetőn. Egy friss képnek 90 másodperces működési próbát kell kiállnia, különben a rendszer visszatér az előző, stabil verzióra.
Fontos tudnivalók erről a szokatlan rendszerről:
- Költséghatékony: Egy mindössze 12 fontos mikrokontroller szolgál alapul, ami extrém alacsony költséget jelent a hagyományos szerverekhez képest.
- Rendkívül robusztus: A virtuális MAC feladatátvételnek köszönhetően egy-egy mikrokontroller kiesése nem okoz leállást, a szolgáltatás mindössze másodpercek alatt helyreáll.
- Nincs felhő és CDN: A weboldal üzemeltetése teljesen független a külső szolgáltatóktól, csökkentve a függőségeket és a potenciális meghibásodási pontokat.
- Nyílt forráskódú: A projekt nyílt forráskódú, így bárki tanulmányozhatja, módosíthatja vagy akár saját maga is megépítheti.
- Hatékonysági korlátok: Egy új TLS 1.3 kapcsolat felépítése körülbelül 650 ms-ot vesz igénybe, és másodpercenként 3 új HTTPS kapcsolat felett a rendszer teljesítménye romlani kezd. A már meglévő kapcsolatokon belüli válaszidő 40-60 ms, másodpercenként 40-50 kérés esetén.
- Egyszerű monitorozás: A rendszerhez két további ESP32 alapú kijelző is tartozik, egy 2.8 colos státuszképernyő és egy 4.3 colos érintőpanel, amelyek valós időben mutatják a flotta állapotát.
Miért fontos ez a telefonok világában?
Bár közvetlenül nem mobiltelefonról van szó, a projekt remekül demonstrálja, hogy az alacsony fogyasztású, olcsó mikrokontrollerek, mint az ESP32-S3, milyen sokoldalúak lehetnek. Ez a technológia, ha nem is weboldalak kiszolgálására, de más, háttérben futó, peremhálózati (edge computing) feladatokra, IoT eszközök vezérlésére, vagy akár telefonos kiegészítőkbe, okosotthon eszközökbe építve rendkívül hatékony és megbízható megoldásokat kínálhat. A hibatűrés és az alacsony energiaigény olyan kulcsfontosságú szempontok, amelyek a mobil eszközök fejlesztésében is egyre nagyobb szerepet kapnak. Ki tudja, talán egyszer a jövő okostelefonjai is ilyen elosztott, mikrokontroller alapú rendszerekkel optimalizálják bizonyos funkcióik működését, persze a háttérben, a felhasználó számára észrevétlenül. A lényeg, hogy a miniatürizálás és a megbízhatóság egyre inkább kéz a kézben jár, és az ilyen innovatív projektek utat mutatnak a jövő technológiai megoldásai felé.