Hvad er Lumen-rammen?

Det er normalt ikke en god idé at udvikle en webapplikation fra bunden af selv at udvikle den. For det første ville det kræve en meget omfattende viden. På den anden side ville det kræve meget lang tid, så det ville næppe være rentabelt. Derfor anvendes der ofte rammer til dette formål.

Disse indeholder allerede alle de væsentlige funktioner for den pågældende opgave. Derefter er det kun nødvendigt at sammensætte dem og tilpasse dem til de individuelle krav.

Inden for webframeworks er der imidlertid et meget bredt udvalg. Derfor er det vigtigt at vælge en passende pakke. En af mulighederne er Lumen. Dette er en relativt ny løsning – den blev først frigivet i 2015.

En anden særlig egenskab er, at det er den samme udvikler, der er ansvarlig for designet som for Laravel-webrammen. Dette tyder allerede på, at der er nogle fælles træk. Denne artikel introducerer, hvad Lumen er, dets særlige funktioner og dets forskel fra Laravel.

Udrulning af webapplikationer via mikroservice

Vi har allerede i indledningen beskrevet Lumen’s grove karakteristika: Det er et framework til udvikling af webapplikationer, som blev designet af den samme person som det meget mere kendte framework Laravel. Der er dog også nogle andre vigtige egenskaber. Det er f.eks. af stor betydning, at det er en ramme baseret på mikroservices. Denne teknik er ikke særlig udbredt på dette område indtil videre. Det er derfor meget vigtigt at gå mere i detaljer med, hvad mikroservices egentlig er, og hvilke fordele og ulemper de giver.

Hvad er en mikroservice?

I mange årtier har computerprogrammer næsten altid været monolitiske programmer. Det betyder, at de består af en lukket enhed, der kun fungerer som en helhed. I nogle år er mikroservices imidlertid blevet mere og mere populære. Det betyder, at et program består af mange individuelle komponenter, der er uafhængige af hinanden og også fungerer hver for sig. Et program kan derefter få adgang til forskellige tjenester af denne art. De udfører deres arbejde helt uafhængigt og overfører kun resultatet. Forbindelsen er kun løs. Det er f.eks. muligt for forskellige applikationer at få adgang til de samme mikrotjenester.

Kommunikation via API

Når du bruger mikrotjenester, er det meget vigtigt at være opmærksom på en passende kommunikationsform. Der anvendes såkaldte API’er til dette formål. Denne forkortelse står for Application Programming Interface. Hver mikroservice skal have en tilsvarende API. Den egentlige applikation kan derefter få adgang til disse og foretage en tilsvarende anmodning. Om nødvendigt godkendes denne anmodning. Hvis dette lykkes, fuldfører mikroservicen sin opgave og sender resultatet tilbage til applikationen. Sidstnævnte kan så bruge den. For at systemet kan fungere, er det vigtigt at vælge passende dataformater. Det er også nødvendigt med detaljeret dokumentation, så udviklere, der får adgang til mikroservicen, ved præcis, hvilke oplysninger de modtager fra den.

Hvad er fordelene ved at bruge mikroservices?

Når du skal beslutte, om du skal bruge Lumen til din webapplikation, spiller det en vigtig rolle, om du ønsker at bruge et monolitisk program eller mikrotjenester. Det er derfor meget vigtigt at se nærmere på fordelene ved at bruge mikroservices og på, i hvilke tilfælde denne teknologi giver mening.

En stor fordel er den store fleksibilitet, som disse systemer har. Hvis det er nødvendigt, kan nye funktioner nemt tilføjes via en passende mikroservice uden at det er nødvendigt at justere de andre tjenester. Derfor kan udvidelser implementeres meget lettere end med monolitiske programmer. Systemernes skalerbarhed er også høj, da det ikke er noget problem at tilføje flere tjenester. I udviklingsfasen er det også en fordel, at de grundlæggende funktioner allerede efter kort tid kan anvendes. Du kan så tilføje de lidt mindre vigtige funktioner, mens du allerede bruger programmet. Vedligeholdelsesforanstaltningerne er også nemme at gennemføre, da det er muligt at udføre dem separat for hver enkelt tjeneste.

Microservices er også kendetegnet ved muligheden for at få den samlede applikation udviklet af mange uafhængige teams. Det er kun nødvendigt at specificere, hvilke opgaver hver enkelt tjeneste skal udføre. Så kan et team udvikle det helt uafhængigt. Det er endda muligt at anvende forskellige programmeringssprog til de enkelte tjenester. Det giver ikke kun en høj grad af fleksibilitet i konstruktionen. Desuden kan der for hver tjeneste vælges en teknik, der passer perfekt til den pågældende opgave. Desuden kan du altid bruge den nyeste teknologi til udvidelser – også selv om de andre tjenester stadig arbejder med ældre teknologier. På denne måde er det muligt at foretage en gradvis modernisering.

Endelig har du normalt fordel af en høj gennemførelseshastighed. Brugen af små uafhængige tjenester betyder, at den computerindsats, der kræves for at udføre de tilsvarende opgaver, normalt er betydeligt mindre end ved brug af en stor monolitisk applikation. Derfor anbefales det også at bruge mikrotjenester, hvis du lægger vægt på effektiv udførelse.

Lumen og Laravel

Vi har allerede sagt, at Lumen har meget til fælles med det velkendte webframework Laravel: Begge teknikker blev udviklet af den samme person – Taylor Otwell. Derfor er det rimeligt at formode, at der også er nogle fælles træk. Det er faktisk tilfældet, og for mange projekter giver det endda mening at bruge begge teknikker sammen.

Kompatibilitet med Laravel

Det er allerede blevet sagt, at mikrotjenester leverer små uafhængige tjenester. Det er netop den opgave, som Lumen er beregnet til. Disse tjenester er backend-applikationer. Front-end-applikationer, der har adgang til disse tjenester, kan dog ikke oprettes med Lumen. Du kan bruge forskellige andre sprog og rammer til dette formål. En meget populær løsning er at bruge Laravel til dette formål. Disse to rammer er perfekt koordineret, så der nemt kan oprettes meget effektive applikationer.

Desuden er der store syntaktiske ligheder. Et team af udviklere, der har styr på Laravel, kan også skabe mikrotjenester med Lumen med en relativt kort oplæringsperiode. Desuden er det muligt at skifte Lumen-applikationer til Laravel, hvis det er nødvendigt.

Enkel og effektiv udvikling

En anden fordel ved denne ramme er, at den er meget nem at udvikle. Indlæringskurven her er meget stejl. Det giver udviklere fra forskellige fagområder mulighed for hurtigt at blive fortrolige med hinanden. Udviklingstiden er normalt også meget kort. Der er en lang række funktioner til rådighed, så det er ikke nødvendigt at udvikle dem selv. Dette reducerer den indsats, der kræves for at oprette applikationerne, betydeligt.

Konklusion: Brugen af lumen sikrer en høj gennemførelseshastighed

Rammerne Lumen er et interessant alternativ til de tidligere muligheder for webudvikling. Af særlig interesse her er brugen af mikrotjenester, hvilket ikke er muligt med de fleste andre teknikker. Det giver en fremragende fleksibilitet i udviklingen og gode muligheder for vedligeholdelse og udvidelse. Desuden er der en meget høj udførelseshastighed. Hvis du lægger vægt på disse aspekter, er denne ramme derfor et fremragende valg til dine projekter.

Interessante artikler:

Lumen’s officielle side

Oplysningerne om rammen på Github

Skriv et svar