Amikor a redundancia nem elég: vasúti leállás és a vezérlőrendszer buktatói
Többfelhős stratégia – miért dőlhet össze mégis a rendszer?
Ha valaki már évek óta foglalkozik infrastruktúrával, tudja: a multi-cloud megközelítés egyik fő ígérete az, hogy nem függünk egyetlen szolgáltatótól. Elméletileg így bármelyik nagy felhőszolgáltató kiesése ellen védettnek tűnhet a rendszer.
Railway is így gondolta. Az ügyfeleik alkalmazásai egyszerre futottak Google Cloudon, AWS-en és a saját Railway Metal infrastruktúrájukon. Úgy tűnt, hogy a redundancia rendben van.
Aztán 2026. május 19-én este minden megváltozott. Nem vihar vagy támadás miatt, hanem mert a Google Cloud automatikus rendszere váratlanul felfüggesztette Railway fiókját. Nyolc órába telt, mire az üzemeltetők újra rendbe tudták tenni a dolgokat. A különös az volt, hogy közben a tényleges alkalmazások mind végig működtek.
A rejtett gyenge láncszem – a vezérlőréteg
Minden Railway által üzemeltetett alkalmazásba érkező kérés először az edge proxykon keresztül megy. Ezeknek a proxyknak tudniuk kell, hogy az adott alkalmazás hol található éppen. Ezt az információt pedig a vezérlőréteg szolgáltatja – gyakorlatilag egy adatbázis, كه der „hol fut ez a workload”.
Railway vezérlőrétege kizárólag a Google Cloudon futott. Amikor a fiókot felfüggesztették, ez a réteg is megszűnt működni. A proxyk azonban még körülbelül 35 percig működtek tovább, because a helyi gyorsítótárukban még megmaradtak a routing információk. És valóban – a kérések tovább folytattak.
Azután a gyorsítótár is megtelt. A proxyk nem kan tudták, hogy hova küldjék a kéréseket. Minden beérkező kérés 404-es hibát hozott vissza, még akkor is, amikor az alkalmazások AWS-en vagy Railway Metalon továbbra fennmarattak. A felhasználók számára egyszerűen az egész platformot leálltnak tűnt.
A láncreakció – amikor egyik hiba kiváltja a másik
A sok sikertelen kérés és ismétlési kísérlet végül a GitHubot is érintve. A platform rate-limiting mechanizmusa beindolta, mert úgy tűnt, hogy támadásról szenved szenved.