Analiza po incydencie: Przerwa w działaniu usługi uwierzytelniania Logto
12 czerwca 2025 r. usługi Logto na `logto.app` zostały chwilowo zakłócone przez awarię Cloudflare, która wpłynęła na trasowanie żądań. Problem został szybko rozwiązany, bez wpływu na bezpieczeństwo danych ani kluczowe usługi.
Podsumowanie incydentu
W godzinach 18:07–18:58 UTC, 12 czerwca 2025 r., użytkownicy korzystający z usług Logto przez domenę logto.app
(w tym domeny niestandardowe) napotykali błędy. Zakłócenie było spowodowane awarią Cloudflare Workers KV, która wpłynęła na naszą warstwę trasującą. Usługi Logto Cloud oraz Logto Console, które korzystają z bezpośredniego rozwiązywania DNS i nie są zależne od Cloudflare Workers, pozostały nienaruszone. Usługi zostały przywrócone w ciągu godziny, bez wpływu na bezpieczeństwo danych.
Oś czasu (UTC)
- 18:07: API usługi uwierzytelniania Logto zaczęło zwracać błędy 500 dla żądań przez
logto.app
. - 18:24: Ustalono, że backend Azure działa poprawnie, a problem dotyczył wyłącznie Cloudflare Workers i KV.
- 18:48: Cloudflare oficjalnie potwierdził incydent dotyczący Workers i KV.
- 18:58: Wdrożyliśmy tymczasowe obejście poprzez usunięcie logiki cache’owania, co przywróciło usługę, choć z możliwym drobnym spadkiem wydajności.
- 21:00: Gdy usługi Cloudflare ustabilizowały się, ponownie wdrożyliśmy logikę cache z łagodnym przełączaniem awaryjnym. Pełna wydajność została przywrócona, a usługa jest teraz odporna na podobne awarie KV.
Przyczyna źródłowa
Incydent został wywołany przez niedostępność Cloudflare Workers KV. Nasz Cloudflare Worker trasuje żądania do odpowiedniego regionu Logto dla każdego tenant’a lub domeny, aby zapewnić poprawną lokalizację danych i zgodność z przepisami. W celu poprawy wydajności Worker korzysta z KV do cache’owania mapowań regionów. Gdy KV stało się niedostępne, operacje cache’a zawiodły i Worker zamiast przejść do trybu bez cache’a, zgłaszał błędy, powodując przerwę w działaniu usługi.
Usługi Logto Cloud oraz Logto Console nie były dotknięte, ponieważ korzystają z bezpośredniego rozwiązywania DNS i nie używają Cloudflare Workers do trasowania.
Rozwiązanie i usprawnienia
- Usunęliśmy zależność od cache z Workera, przywracając usługę.
- Po odzyskaniu sprawności przez Cloudflare KV, ponownie wdrożyliśmy logikę cache z łagodnym przełączaniem awaryjnym. Jeśli cache jest niedostępny, usługa działa dalej, wykorzystując trasowanie bezpośrednie bez zakłóceń.
- Trwają dalsze prace nad infrastrukturą, aby zwiększyć odporność i dostępność.
Wpływ
- Użytkownicy korzystający z Logto przez
logto.app
napotykali błędy przez około 50 minut. - Nie doszło do utraty ani naruszenia danych klientów.
- Usługi Logto Cloud oraz Logto Console pozostały w pełni operacyjne.
Kolejne kroki
- Przeprowadzimy przegląd i usprawnimy obsługę błędów w infrastrukturze brzegowej.
- Rozważymy korzystanie z wielu dostawców dla infrastruktury nadrzędnej, aby uniknąć pojedynczych punktów awarii.
Dziękujemy za cierpliwość i wsparcie.