Laravel Horizon
Laravel Horizon je praktická vrstva nad Redis frontami v Laravelu. Pomáhá sledovat průchodnost jobů, selhání, dobu běhu i nastavení workerů, takže fronty nejsou jen proces někde na serveru, ale část aplikace, kterou lze reálně řídit a kontrolovat. Největší smysl dává u projektů, kde se fronty používají pravidelně a jejich stav má vliv na provoz.
Laravel Horizon je nástroj, který začne být opravdu užitečný ve chvíli, kdy fronty přestanou být jen technický detail. Dokud aplikace zpracuje pár jobů denně, člověk si často vystačí se základním queue workerem a logy. Jakmile ale přes fronty běží e-maily, importy, exporty, notifikace, webhooky nebo delší výpočty, potřebujete vidět víc než jen to, že na serveru běží nějaký proces.
Horizon k Laravel frontám přidává přehled, metriky a konfigurační vrstvu. Neřeší za vás návrh jobů ani to, jestli jsou dobře rozdělené. Pomáhá ale pochopit, co se ve frontách skutečně děje: jak rychle se joby zpracovávají, kde padají, jak dlouho běží a jestli počet workerů odpovídá reálnému provozu.
Kdy fronty začnou být provozní téma
Fronty se v Laravelu zavádějí často kvůli jednoduché potřebě: nechci uživatele nechat čekat na pomalou operaci. To je dobrý začátek, ale časem se z front může stát samostatná provozní vrstva aplikace. Pokud se zpozdí zpracování e-mailů, importů nebo platebních webhooků, už to není jen technický problém. Začne to být vidět v produktu.
V takové chvíli je Horizon užitečný hlavně proto, že dává vývojáři i provozu společný pohled. Vidíte failed joby, průchodnost, runtime a chování workerů. Když se něco začne zhoršovat, nemusíte nejdřív hádat, jestli je problém v Redis, v konkrétním jobu nebo jen v nedostatečném počtu procesů.
Konfigurace, která patří do kódu
Jedna z věcí, které mám na Horizonu rád, je konfigurace workerů v souboru. Nastavení supervisorů, prostředí, front a počtu procesů není jen ruční stav na serveru, ale součást projektu. To se hodí hlavně ve chvíli, kdy aplikace roste nebo se nasazuje do více prostředí.
U produkční aplikace nechci spoléhat na to, že si někdo pamatuje, jak mají workery běžet. Chci, aby konfigurace byla verzovaná, čitelná a opakovatelná. Horizon do toho zapadá dobře, protože dovoluje definovat různé chování pro lokální vývoj, staging a produkci, včetně balancing strategií a limitů.
Dashboard jako rychlá zpětná vazba
Dashboard není jen hezký doplněk. U front je rychlá vizuální zpětná vazba často praktičtější než dlouhé hledání v logách. Když vidíte failed joby, čekající fronty nebo runtime jednotlivých úloh, mnohem rychleji poznáte, jestli je problém jednorázový, nebo se v systému opakuje.
Samozřejmě je potřeba správně vyřešit přístup. Horizon dashboard nepatří veřejně na internet bez kontroly. V produkci má smysl mít jasně nastavenou autorizaci, protože uvnitř jsou informace o provozu aplikace. Když je přístup správně omezený, je dashboard velmi dobrý nástroj pro vývojáře i technickou podporu.
Na co si dát pozor
Horizon sám o sobě nezachrání špatně napsané joby. Pokud joby nejsou idempotentní, neumí dobře pracovat s retry logikou nebo dělají příliš mnoho věcí najednou, dashboard jen ukáže důsledky. Pořád je potřeba přemýšlet nad tím, jak joby navrhovat, jak dlouho mohou běžet a co se má stát při chybě.
Největší hodnotu má Horizon jako součást provozní disciplíny. Fronty se sledují, failed joby se řeší, konfigurace workerů se upravuje podle reálného zatížení a metriky nejsou jen dekorace. V takovém nastavení je Horizon velmi praktický nástroj, protože z neviditelné části aplikace udělá něco, co se dá rozumně řídit.
hub Související nástroje
Prozkoumejte podobné nástroje
Náhodný výběr nástrojů ze stejné kategorie.
Laravel Jetstream
Laravel Jetstream je startovací sada pro Laravel aplikace, které potřebují hotový základ kolem přihlášení, registrace, profilu, dvoufaktorového ověření, správy relací a případně týmů. Největší smysl dává tehdy, když nechcete znovu stavět běžnou aplikační infrastrukturu, ale zároveň chcete zůstat v Laravel ekosystému a mít nad výsledkem kontrolu.
Laravel Livewire
Laravel Livewire umožňuje stavět interaktivní rozhraní tak, aby většina logiky zůstala blízko Laravelu. Hodí se pro formuláře, filtry, tabulky, administrace nebo produktové části, kde nechcete kvůli každé interakci budovat samostatnou frontendovou aplikaci. Největší přínos má ve chvíli, kdy komponenty zůstanou malé a dobře ohraničené.
Rector
Rector beru jako nástroj pro chvíle, kdy už ruční refaktoring přestává dávat ekonomický smysl. Umí projít PHP codebase, navrhnout mechanické úpravy a pomoct s upgrady jazyka i frameworků bez toho, aby se člověk ztratil v tisících drobných změn. Největší hodnotu má ve chvíli, kdy je součástí kontrolovaného procesu, ne slepého automatického přepisování.
add_circle Chybí tu nástroj?
Navrhněte nástroj do výpisu
Pokud jste nenašli užitečný nástroj, pošlete mi jeho název a URL. Zkontroluji ho a případně doplním do veřejného katalogu.