Awaria Facebooka obnażyła słabość jego architektury

Facebook twierdzi, że główną przyczyną awarii były błędy popełnione przez człowieka podczas wykonywania rutynowej operacji konserwowania systemu. Spowodowały one, że internetowy system DNS nie mógł w pewnym momencie podać numerów IP serwerów obsługujących usługi świadczone przez tę największą na świecie sieć społecznościową.

Foto: Firmbee.com/Unsplash

W wyniku awarii informatycy nie mogli uzyskać zdalnego dostępu do urządzeń zarządzających siecią, co pozwoliłoby im od razu zrestartować cały system. Musieli udać się do nich osobiście, po to aby ręcznie ponownie uruchomić system. A to wymagało czasu. Samo przywrócenie usług nie było również łatwym zadaniem, szczególnie, że wymagało skoordynowania operacji wykonywanych jednocześnie w wielu ośrodkach obliczeniowych.

Sprawę pogarszał fakt, że poszczególne centra danych zgłaszały olbrzymie spadki zużycia energii liczone w dziesiątkach megawatów, a nagłe odwrócenie tego trendu mogło spowodować kolejne kłopoty.

Zobacz również:

  • LinkedIn zamyka w Chinach swoją usługę
  • Instagram, WhatsApp i Messenger znowu przestały działać
  • Facebook w opałach

Trzeba też pamiętać o tym, że centra danych mają zabezpieczenia, które utrudniają manipulowanie nimi przez nieupoważnione do tego osoby. Trudno się do nich dostać, a gdy już ktoś znajdzie się w środku, cały sprzęt jest tak zaprojektowany, aby wszelkie modyfikacje wymagały uwierzytelnienia się. Do routera można mieć fizyczny dostęp, ale to nie wystarczy. Dlatego Facebook nie działał w sumie nieco ponad siedem godzin, czyli najdłużej w swojej dotychczasowej historii.

Głębsza analiza tego zdarzenia wydaje się sugerować, że za wyłączenie całego systemu DNS odpowiada niewłaściwa praca stworzonego przez Facebook oprogramowania, które reaguje automatycznie na różne problemy występujące w obszarze całej sieci szkieletowej.

Jak wiadomo, internetowy system DNS zamienia internetowe nazwy witryn i serwerów na adresy IP. Facebook zbudował własny system, który obsługuje jego wewnętrzną sieć. Ma on taką architekturę, w której usługa DNS jest skalowana w górę lub w dół, w zależności od dostępności serwerów DNS. W momencie, w którym w wyniku awarii internetowe serwery DNS przestały być w pewnym momencie dostępne, firmowy system usunął je ze swoich tabel.

Rzecz w tym, że tabele te używane są przez protokół BGP (Border Gateway Protocol), który posiada wiedzę o trasach zapewniających dostęp do komputerów, którym przypisano określone adresy IP. Trasy te są rutynowo rozsyłane do routerów, po to aby dostarczyć im aktualne informacje o tym, jak powinny kierować ruchem. Ponieważ firmowy system DNS usunął ze swoich tabel informacje używane przez protokół BGP, sieć szkieletowa straciła do niego dostęp, co uniemożliwiło całemu internetowi znalezienie naszych serwerów - tłumaczył jeden z inżynierów Facebooka.

Jaka zatem lekcja płynie z tej awarii? Winą za nią można według specjalistów obarczyć specyficzną architekturę Facebooka, która spowodowała, że awaria wewnętrznego systemu DNS położyła na łopatki całą sieć Facebooka. Rozwiązaniem może być stworzenie nadmiarowego, czy zapasowego systemu DNS, który w krytycznych momentach awarii wchodziłby do akcji i przejmował obowiązki nałożone na podstawowy system.

Tak więc Facebook powinien pomyśleć o zdublowaniu swojej usługi DNS, dzięki czemu awarii będzie można uniknąć w przyszłości. Można tu wykorzystać doświadczenia innych firm, które stosują już podobne rozwiązania. Należy do nich np. przykład Amazon, którego sieć AWS posiada własny system DNS, korzystając jednocześnie z dwóch nadmiarowych, zewnętrznych usług tego typu (Dyn i UltraDNS).

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200