Přejít na obsah
Contentin
ContentinRegistrovat se

Poválební analýza

Kontrola zpětných odkazů zablokovala vydání: příklad poválební analýzy

Vymyšlený tým, vymyšlená událost, reálné mechanismy. Příběh podáváme v pořadí, v jakém by ho napsal inženýr v pohotovosti.

Červený mechanický paže zastaví dopravní pás s balíkem v miniaturním továrním prostředí
Toto je příklad

Tým, produkt a časová osa níže jsou smyšlené a slouží k ukázání průběhu selhání. Není zde popsána žádná skutečná společnost, zákazník ani měření.

Událost v pořadí

  1. 1

    09:10, stránka pro vydání se objeví v CMS

    Šestičlenný produktový tým provozuje marketingový web na headless CMS a statickém buildu. Editor připravuje oznámení o partnerství, které odkazuje na doménu partnera registrovanou před týdnem.

  2. 2

    09:14, editor stiskne publikovat

    Publish webhook volá funkci. Funkce provede volání kontroly zpětných odkazů na doménu partnera a je nastavena tak, aby zablokovala vydání při jakékoli odpovědi, která není úspěšná.

  3. 3

    09:14, build nikdy nezačne

    Selžou dvě věci najednou. Doména je zcela nová, takže náš index ji ještě nemusí znát. Zároveň byla na klíči týdu vyčerpána předplacená částka, takže placená následná volání vrátila HTTP 402.

  4. 4

    09:40, tým to zjistí

    Editor hlásí nejasnou chybu. Inženýr si přečte log funkce, vidí 402 a prázdný výsledek a trvá dvacet minut, než přijde na to, která z těchto dvou věcí způsobila zablokování.

  5. 5

    10:05, vydání proběhne ručně

    Někdo obejde webhook ručním nasazením. Vydání je zpožděné o 55 minut a obcházení webhooku nezanechá záznam o tom, které kontroly byly přeskočeny.

Zahradník se stará o tři různé typy rostlin v miniaturním záhonu

Co tým kontroloval před vydáním

Velmi málo, jak se ukázalo. Seznam testů obsahoval pouze známé domény, proto zůstala mezera skrytá, dokud se neobjevil odkaz na partnera. Test na známém webu prokáže, že potrubí funguje, ale nevypoví nic o doméně, kterou index ještě neviděl.

Lepší seznamy testů by měly obsahovat tři typy domén: osvědčenou, malou specializovanou a doménu registrovanou nedávno. Všechny tři nechte projít webhookem, než mu kdokoli začne důvěřovat.

Jaké domény test pokrýval?

Pouze ty snadné. Každá doména v seznamu měla za sebou roky historie, takže každá odpověď byla kompletní a nikdo neviděl, jak prázdná odpověď ovlivní publikování.

Přidejte jednu skutečně novou doménu a přečtěte si její výsledek ručně. Pokud poznámka říká „špatně“ tam, kde by měla být „neznámá“, pravidlo je třeba před vydáním přepracovat.

Co vynechal stagingový běh?

Stagingový běh použil klíč se zdravým zůstatkem, takže cesta při vyčerpání zůstatku nikdy nebyla vykonána. Nikdo nevytvořil test, který by úmyslně vyčerpal kredit.

Mějte tuto cestu pod testem. Jednou za čtvrtletí vynutujte 402 a přečtěte si, co editor uvidí poté, protože cesta selhání, kterou nikdo nevyzkouší, je cestou, které nikdo nemůže důvěřovat.

Proč k tomu došlo

Brána považovala každou neúspěšnou odpověď za verdikt. To byla příčina. Problém s zůstatkem a neznámá doména jsou fakta o nástrojích a indexu, a ani jedno nevypovídá nic o stránce.

Náš graf je rebuildován přibližně jednou měsíčně. Doména registrovaná po poslední aktualizaci může vypadat prázdně a nový partner je u stránky pro vydání běžným případem. Nikdo to nekontroloval. Tým testoval webhook pouze se starými, dobře známými doménami, jako je nytimes.com.

Druhým selháním bylo ticho. Funkce chybu zalogovala, ale neposlala žádné upozornění a editor viděl obecnou chybovou zprávu bez nápovědy, že došel kredit.

Náklady nikdy nebyly problémem. Při ceně 2 kredity za volání vyšlo celoměsíční testování pro tuto smyšlenou stránku na přibližně $0,60, což je stejná částka jako řada s 3 000 publikacemi v tabulce nákladů. Brána byla levná a přesto stála tým hodinu práce v roce 2026.

402 si zaslouží vlastní řádek. Předplacený zůstatek je stav, který lze sledovat, takže jednoduchý alarm při 10 000 kreditech, což je $1, by se spustil dříve.

Akční body, které tým zapsal

Vlastníci jsou role, ne lidé. Všechny body jsou součástí příkladu.
ZměnaVlastníkProč
Chápejte 402 jako přeskočení plus upozornění do kanálu platformyPlatformaKredit je stav fakturace, ne stav stránky
Chápejte prázdný výsledek pro novou doménu jako neznámý, ne jako špatnýPlatformaIndex zaostává přibližně o měsíc
Ukažte editoru důvod srozumitelnými slovyEditoriální nástrojeZtraceno 20 minut čtením logů
Zaznamenejte přeskočené kontroly do záznamuPlatformaRuční nasazení nezanechalo stopu
Otestujte webhook s doménou registrovanou tento týdenQAStaré domény maskují mezery

Rehearsal před týdnem vydání

Spusťte tyto kroky před dalším vydáním, ne po dalším selhání.

  1. 1

    Vyberte doménu, kterou nikdo nekontroloval

    Vyberte doménu registrovanou nedávno a zavolejte na ni akci pro volný přehled. Potvrďte, že tenká odpověď je zalogována jako neznámá, nikoli jako zablokování.

  2. 2

    Vyčerpejte testovací zůstatek

    Použijte testovací klíč s malým zůstatkem a nechte ho úmyslně dojít na nulu. Sledujte, jak přijde 402, jak se spustí upozornění a jak publikování pokračuje do buildu.

  3. 3

    Přečtěte si zprávu editoru nahlas

    Požádejte kolegu, který webhook neviděl, aby si přečetl chybovou zprávu. Pokud nedokáže říct, co dělat dál, přepište zprávu před vydáním.

  4. 4

    Zapište přeskočení do záznamu

    Potvrďte, že přeskočená kontrola zanechá v záznamu datumovanou poznámku s důvodem. Ruční nasazení pak nikdy nezanechá mezeru, kterou nikdo nedokáže vysvětlit.

Tři odlišné barevné krabice s nářadím stojí na pracovním stole v miniaturní scéně

Jak byla oprava napsána

Tým rozdělil jednu obecnou chybu na tři, protože každá odpověď má jiného vlastníka. 401 je problém s klíčem, 402 je stav fakturace a prázdný výsledek pro novou doménu je prostě neznámý. Každá z nich má vlastní větev a vlastní zprávu. To je celá změna.

Nikdo nemusel číst stack trace, aby věděl, co se stalo. Název alertu pojmenovává stav a editor vidí větu, která říká, co dělat dál.

Proč je alarm pro zůstatek nastaven výrazně nad nulu?

Deset tisíc kreditů je při zveřejněné ceně $1, malá částka, která stále poskytuje dostatečné varování, když přijde dříve. Nastavte alarm tak, aby ho viděl člověk, ne v logu, který nikdo neotevře v pátek.

Kontrola, která jednou denně selže hlasitě, je lepší než tichá kontrola, která selže během vydání.

Ujednejte číslo s týmem a zapište ho na stejné místo jako pravidlo pro rotaci klíčů, aby se obě věc kontrolovaly společně.

Měla by se nová doména počítat jako selhání?

Ne. Doména, kterou index ještě neviděl, je fakt o indexu, ne o stránce. Uložte ji jako neznámou s datem a nechte editora rozhodnout, zda počkat na další aktualizaci.

Stejné pravidlo platí pro jakoukoli tenkou odpověď. Chápejte ji jako chybějící data a nikdy jako verdikt o partnerovi.

Logujte neznámé odpovědi do vlastního seznamu, aby byl jejich vzorec viditelný při příští revizi a nebyl pohřben v obecném logu.

Co z toho vzít

Selhejte otevřeně u dat o odkazech, selhejte hlasitě u upozornění

Kontrola odkazů by nikdy neměla být jedinou věcí mezi editorem a vydáním. Pusťte stránku, označte záznam a zajistěte, aby selhání nebylo možné přehlédnout osobě, která vlastní klíč.

  • Rozlišujte 401, 402 a prázdný výsledek v kódu
  • Udržujte alarm pro zůstatek výrazně nad nulou (viz tabulka nákladů)
  • Vyzkoušejte selhání na stagingu před dnem vydání

Otázky, které si tým položil poté

Zástupčí schůzka zvedla stejnou hrst otázek v každé verzi tohoto příběhu. Zde je, jak si vymyšlený tým na ně odpověděl a proč by se tyto odpovědi lišily od organizace k organizaci.

Žádná z těchto odpovědí není univerzální a každá závisí na účelu stránky. Cílem je mít odpověď na papíře před dalším vydáním.

Měla by brána selhat uzavřeně?

Pro tento vymyšlený tým ne. Kontrola odkazů je signál založený na měsíčním indexu a neměla by být jedinou věcí mezi editorem a vydáním.

Napište politiku jako jednu větu, aby příští inženýr mohl rozlišit záměrné zablokování od chyby.

Zabránila by tomu větší částka?

Zpozdila by problém, nikoli by ho opravila. Větší zůstatek může také dojet a brána, která považuje každou neúspěšnou odpověď za verdikt, stále zablokuje na první neznámé doméně.

Opravou je rozdělení na tři odpovědi plus alarm, který se spustí včas. Zůstatek je jen jednou částí příběhu.

Položte stejnou otázku jakékoli bráně, kterou stavíte: které selhání by bylo tiché a kdo by ho zjistil jako první?

Poznámka k hypotetickému scénáři

Skutečné týmy se budou lišit. Váš tým může selhat uzavřeně ze dobrých důvodů, například u regulovaného webu, kde každý odchozí odkaz kontroluje člověk. V pořádku. Jen to musí být vědomá volba.

Runbook pro webhook uvádí stejná rozhodnutí jako kontrolní seznam a seznam mýtů pokrývá přesvědčení, která vedla tento vymyšlený tým do pasti.