• postmortem

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.

Gao
Gao
Founder

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

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.