Skrevet af den

Laravel Horizon: Velkommen til det nyeste medlem af Laravel-familien

Laravel Horizon

I sidste uge udkom Laravel Horizon. I denne lidt tekniske blogpost tager vi et kig på, hvad Laravel Horizon er, og hvorfor det er en stor nyhed inden for Laravel “økosystemet”.

Taylor Otwell Twitter‘Horizon’ har længe været et hypet ord i Laravel kredse som følge af stifteren Taylor Otwell’s adskillige teases og hints på Twitter.

Spekulationerne har været vidt omkring, og spændingen nåede et højdepunkt i sidste uge, op til den lovede lancering til Otwell’s egen keynote til Laracon US.

Det kan Laravel Horizon

I sin simpleste formulering, blev Laravel Horizon præsenteret som: ‘A Beautiful Dashboard For Your Redis Queue’.

Problemstillingen Horizon er sat i verden for at løse, er lidt teknisk.

De fleste web-apps har i dag brug for at lave tidskrævende opgaver såsom email-udsendelse, eksterne API-kald, databehandling mv. Disse opgaver kører ofte asynkront i baggrunden for at at give bedre brugeroplevelse. Til dette benyttes ofte køsystemet ‘Redis’ som fungerer godt sammen med Laravel.

Udfordringen indtil nu har været gennemsigtighed ift. antal opgaver (jobs), kø-tid, serverbelastning, samt fejlfinding når noget går galt.

Horizon er et “1-click install dashboard” der serverer alt dette data i overskuelige nøgletal og grafer, samt giver mulighed for at inspicere fejlede jobs og køre dem igen.

Vi har hos Makeable allerede givet det en prøvekørsel.

Installation af Horizon

At installere Horizon tager ganske kort tid, da det blot er en composer package, der installeres.

Bemærk dog at den kræver Laravel 5.5 der stadig er i beta. Vi forsøgte, at opgradere et eksisterende projekt fra 5.4 til 5.5 for at teste det af, og her oplevede vi ingen problemer.

Det første kig

Med det samme efter installationen kan Horizon tilgås i browseren på ‘/horizon’. Det er et minimalistisk og overskueligt dashboard der byder en velkommen.

Laravel Horizon

Vi er meget begejstrede for de features, som Horizon tilbyder:

  • Nøgletal og trends til at give indblik i performance og workload
  • Auto-balancing mellem de forskellige queues man måtte have
  • Håndtering og nemmere debugging af fejlede jobs
  • Notifikationer til admin når en kø bliver langsom / staller

Da Laravel 5.5 endnu ikke er officielt udkommet, har vi endnu ikke afprøvet Horizon i production, men vi glæder os til at prøve det af med rigtig data.

Økosystemet omkring Laravel

Over de seneste par år er der opstået et økosystem omkring Laravel, der gør det yderligere mere attraktivt at benytte som sit primære PHP framework.

De officielle ressourcer inkluderer bl.a.

  • Forge: Online dashboard til server håndtering
  • Envoyer: Zero-downtime deployments af dit projekt
  • Homestead / Valet: Lokale udviklingsmiljøer til din Mac
  • Spark: Kickstart dit nye SaaS (Software as a Service) projekt
  • Cashier: Online betaling med Stripe / Braintree
  • Scout: Fuldtekstsøgning af dit indhold
  • Echo: Integration med websockets for real-time indhold på dit website
  • Passport: Oauth2 authentication for dit API
  • Horizon: Monitorering og håndtering af Redis queues

Ovenstående er som sagt blot officielle ressourcer udgivet af Taylor Otwell selv. Tæller man mere uofficielle kilder med, er listen meget længere.

Alle disse ressourcer har været med til at lette arbejdet ekstremt ved alle dele webudvikling; alt fra udviklingsmiljøer, selve udviklingen og helt ud til production. En stor del af økosystemet er også med til at lette DevOps aspektet af en webudviklers arbejde, og det bidrager til Laravel’s mantra om at fjerne så meget friktion som muligt, så man som udvikler kan fokusere på kerneproduktet.

Der er i vores optik ingen tvivl om, at det i lige så høj grad er øksystemet der er med til at give Laravel den success og traction det i dag har fået; nøjagtig på samme måde som App Store var det for iOS i sin tid.