allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Alexandra Mendes
André Santos

09 april 2024

Min läsning

Micro frontend: vad det är och hur du använder det för ditt företag

Nya frontend-tekniker dyker upp varje dag. Med så många olika tillvägagångssätt kan det vara svårt att veta vilka som bäst passar ditt projekt och team. Om du vill använda nyare teknik i dina projekt samtidigt som du upprätthåller höga krav på prestanda och underhåll, kan mikrofrontend vara svaret.

Genom att kombinera mikrotjänster med webbappar kan vi skapa kraftfulla, funktionsrika webbläsare. Dess primära mål är att föreställa sig en webbplats eller mobilapp som en samling funktioner som drivs av oberoende team.

Det här inlägget förklarar mer detaljerat vad en mikrofrontend är, dess fördelar, hur ditt företag kan implementera det för din organisation och exempel på företag som redan använder det i produktionen.

Låt oss ta en närmare titt på denna mindre kända teknik.

Vad är Micro Frontend?

En mikrofrontend består av flera små och autonoma modulära komponenter. Modulerna är fristående och kan användas av andra sidor. Du kan använda vilket programmeringsspråk som helst för att koda komponenterna som utgör en mikrofrontend. Vanligtvis är Javascript- och Javascript-ramverk de mest populära, men mocro frontend kan utvecklas på vilket språk som helst och sedan kompileras och paketeras i ett Javascript-paket som kan importeras och komponeras av den andra frontenden.

I mikrofrontendarkitektur byggs webblösningar genom att bryta ner den monolitiska applikationen i mindre bitar och koda, testa och distribuera varje fragment separat. Så tvärfunktionella team kan utveckla varje komponent (från en databas till ett användargränssnitt) oberoende, vilket gör komponenter oberoende. Användare ser hela lösningen snarare än enskilda fragment, vilket säkerställer en sömlös upplevelse.

Micro frontend architecture
End to end teams with micro frontend architecture
Källa: mikrofrontends.org
blå pil till vänster
Imaginary Cloud-logotyp

Välkända företag som använder mikrofrontend

Här är några välkända företag som använder mikrofrontend:

  • IKEA - en europeisk möbelhandlare, erbjuder en shoppingupplevelse online.
  • DAZN - en europeisk streamingtjänst för sport som har vuxit till nio länder.
  • Upwork - ett frilansande nätverk som ansluter oberoende affärsmän över hela världen.
  • Spotify - Denna online-streamingmedieleverantör monterar skrivbordsapplikationer med hjälp av frontend microservices.
  • SoundCloud - En europeisk webbplats för musikdelning och plattform för distribution av ljud online som ger en enhetlig upplevelse på alla plattformar.
blå pil till vänster
Imaginary Cloud-logotyp

En kort översikt över mikrofrontendarkitekturen

Målet med en mikrofrontend är att ge samma fördelar som mikrotjänster genom att eliminera nackdelarna med stora frontend-monoliter.

Vilka är fördelarna med det monolitiska tillvägagångssättet, och varför är det inte det bästa alternativet för modern storskalig webbutveckling? Låt oss undersöka.

Vad är Microservices Architecture?

Microservice arkitektur är ett designmönster i backend-utveckling. Till skillnad från en monolitisk arkitektur innehåller mikrotjänster flera oberoende distribuerbara komponenter. De är åtskilda av affärsdomäner och är anslutna med API: er, som är lätta att distribuera.

Differences between monolithic and microservices architectures
Skillnader mellan monolitiska och mikroservicearkitekturer

Mikrotjänster är byggstenarna i de flesta moderna webblösningar. Företag väljer ofta denna typ av arkitektur när de skapar nya webbappar eller uppdaterar sin gamla programvara genom att byta från en monolitisk back-end till mikrotjänster. Här är de viktigaste:

  • Skalbarhet. Med mikrotjänstarkitektur är det enklare att skala en webblösning. Ett utvecklingsteam kan skala upp en eller flera tjänster som behöver mer resurser och lämna resten ifred.
  • Flexibilitet. I mikrotjänstbaserade webbsystem finns det ingen delning av kod. Ändring av separata tjänster påverkar inte andra moduler i ett program.
  • Motståndskraft. Det säkerställer större tillförlitlighet och felmotstånd genom att använda mikrotjänster. Tjänsterna är separata, så om en går ner kommer de andra fortfarande att fungera.
  • Ingen inlåsning med teknik. I en enda webblösning kan programmerare använda olika tekniker för olika tjänster.
  • Snabbare utveckling. Utvecklare kan arbeta med flera olika tjänster samtidigt. Dessutom är tjänster återanvändbara. Det minskar naturligtvis den tid som behövs för utveckling.

I grund och botten bör de flesta storskaliga webbutvecklingsprojekt använda mikrotjänster.

Varför passar en frontend monolit dåligt för mikrotjänster?

Termen frontend monolit hänvisar till klientsidan av en webbapplikation byggd från en enda kodbas. Många lösningar använder fortfarande denna typ av gränssnittsarkitektur, även sådana med mikrotjänstarkitektur. Så, baksidan av ett system är ofta modulär medan frontenden förblir solid.

Till en början kan detta fungera bra, men problem uppstår ofta när en webblösning växer. Här är några exempel:

  • När programvaran ändras blir en frontend-monolit för upptagen och ineffektiv. På grund av detta saktar systemet ner och blir mindre effektivt.
  • En stor och tung frontend kan bromsa utvecklingen när ett system växer. Även om tjänster kan ändras snabbt på baksidan, kan det ta mycket arbete och tid att skicka uppdateringar till klientsidan.
  • En storskalig webblösning med en enda frontend är svår att hålla jämna steg med. Det finns inget sätt att ha separata distributioner, så hela systemet kan misslyckas om en del går ner.

Sammanfattningsvis begränsar en frontend-monolit den oberoende karaktären hos en mikrotjänstarkitektur. Fler och fler utvecklare använder mikrofrontend för att undvika detta. Så låt oss gå in mer i detalj om hur en webblösning fungerar när en mikrofrontendarkitektur är byggd ovanpå mikrotjänster.

Best agile practices to use in your software development cycle
blå pil till vänster
Imaginary Cloud-logotyp

Varför använda en micro frontend?

Med en mikrofrontend kan företag:

  • Ge en bättre användarupplevelse: skapa en sömlös upplevelse för användaren genom att tillhandahålla en konsekvent upplevelse över enheter och tredjepartsplattformar. Du kan uppnå det genom att ha en enda kodbas för alla frontend-komponenter. Det kan också bidra till att förbättra den totala användarretentionshastigheten genom att minska tiden för att slutföra transaktioner eller registrera sig för en tjänst.
  • Förbättra utvecklingshastigheten: Med mikrofrontend kan team utveckla och distribuera funktioner snabbare genom att använda en enda kodbas utan att behöva hantera komplicerad kod. Detta kan leda till betydande kostnadsbesparingar.
  • Förbättra produktens skalbarhet: Microfrontend-metoden gör det möjligt för företag att skala upp antalet komponenter och komplexiteten hos en produkt utan att behöva skriva om koden. Eftersom mikrofrontend-metoden använder små oberoende komponenter kan den enkelt distribueras över ett kluster av servrar eller tjänster.

På så sätt kan komplexa användargränssnitt snabbt och enkelt använda mikrofrontend-metoden. Det är också ett utmärkt alternativ för team som vill anta en modern programvaruteknikstrategi. Dessutom är mikrofrontend mycket flexibla, skalbara och snabbt distribuerade. Förutom de tekniska fördelarna är mikrofrontend också bra för verksamheten eftersom de erbjuder utmärkt affärsvärde och tekniska fördelar.

Fördelar med att använda en mikrofrontend

  1. Autonoma team på accelererad utveckling.
    Ett autonomt team kan skapa varje webbapp eller webbplatskomponent efter en mikrofrontend-strategi. Varje team är helt oberoende, så varje cykel av komponentskapande börjar med idéer och slutar med release och efterproduktion. Flera enheter kan arbeta på samma projekt samtidigt utan att behöva kommunicera. Eftersom utgivningscyklerna är mycket snabbare med mikrofrontend kan flera team arbeta på samma projekt samtidigt.
  2. Högre appstabilitet tack vare lös koppling.
    Mikrofrontend kommunicerar med varandra, men komponenterna är löst kopplade, och varje anslutning är betydande. En webblösnings avancerade stabilitet kommer från det faktum att ett fel i en komponent inte påverkar andra.
  1. Mindre kodbaser för enskilda mikrofrontend resulterar i renare kod.
    Monolitiska frontend växer ostrukturerade och komplexa att underhålla över tid eftersom de har stora kodbaser. Mikrofrontend löser detta problem genom att göra koden för varje mikrofrontend enklare, mindre och därmed mycket lättare att hantera. Detta resulterar i renare kod i hela webblösningen.
  2. Snabbare utbyggnad av funktioner tack vare oberoende driftsättningar.
    Varje mikrofrontend distribueras separat från andra komponenter i en webblösning. Funktioner kan levereras till produktion, vilket ger programmerare lite funderingar om vad som händer med resten av en applikation. Funktioner kan således rullas ut relativt snabbt eftersom de har sina leveransrörledningar. Ändringar av monoliten hindras inte, så du kan distribuera enskilda funktioner utan svårighet.
  3. Lättare att testa enskilda funktioner med denna metod.
    Den viktigaste fördelen med mikrofrontend är att de i sig är modulära och indelade i distinkta komponenter, vilket gör det enklare att testa enskilda delar av en klientapplikation. Förutom att de är modulära i sig drar mikrofrontend också nytta av att de är individuellt testbara.
  4. Mindre riskabelt genomförande av betydande förändringar.
    Att göra betydande förändringar i en monolitisk frontend är alltid riskabelt: ett misstag och alla funktioner kan gå ner. Däremot är modifiering av mikrofrontend en enkel process eftersom även betydande förändringar i en del inte kommer att äventyra hela systemet. På grund av detta kommer du inte att uppleva någon ångest för att ändra saker, oavsett hur viktiga förändringarna kan vara.
  5. Ett mindre paket ökar sidladdningshastigheten.
    Den långsamma sidladdningstiden i funktionsrika monolitiska webblösningar är en av huvudorsakerna till den stora storleken på JavaScript-paketet. Däremot underlättar ett mikrofrontend-tillvägagångssätt optimering av sidladdningstiden. Eftersom en webbsida består av många små buntar behöver webbläsaren inte ladda ner oanvänd kod varje gång. Detta leder i sin tur till snabbare sidladdningar och högre sidhastighet.
  6. Teknologiskt oberoende.
    En mikrofrontendarkitektur gör det möjligt för utvecklare att stapla olika frontend-ramar inom en enda webblösning. Eftersom komponenter är oberoende konstruerade kan var och en skapas med den lämpligaste tekniken för att uppnå projektets mål. Som en självklarhet måste programmerare alltid vara försiktiga när de väljer ramverk för programvaran de ansvarar för, och samarbete med andra team rekommenderas fortfarande starkt. Det finns dock ingen fara att du kommer att fastna med ett äldre ramverk under appens livstid.

Nackdelar med att använda en mikrofrontend

  1. En webblösning är ganska komplicerad att testa som helhet.
    Att testa en webbapp byggd på en mikrofrontendarkitektur är enkelt eftersom varje modul är isolerad. Problemet är att testa en webblösning som helhet inte är detsamma som att testa enskilda moduler. Du måste se till att alla komponenter fungerar tillsammans som avsett. Eftersom mikrofrontend är oberoende och har sina leveransrörledningar kan detta vara svårt.
  2. Svårigheten att utveckla och distribuera ett system.
    På grund av mikrofrontendarkitekturens minimalistiska struktur kan utvecklings- och distributionsprocessen bli mindre okomplicerad. Till exempel, när flera autonoma team arbetar på samma projekt, kan lösningen bli rörig med för många komponenter, vilket kan leda till problem under implementeringsfasen. Det är också svårt att montera alla moduler korrekt och få dem att passa sömlöst in i den större bilden utan en god förståelse för alla deras beroenden.
  3. Inkonsekvens av utvalda tekniker.
    Frontend-ramverk för olika moduler kan vara en fördelaktig teknikkombination, men denna fördel har också en nackdel. Även om frontend-ramverk väljs noggrant kan du sluta med en inkonsekvent teknisk stack. Detta kan leda till ett långsam prestandaproblem och en obehaglig användarupplevelse.
  4. Svårigheten att hålla UX sammanhängande.
    Att hålla användargränssnittet konsekvent när team arbetar med olika programvaror är utmanande. Många inkonsekvenser kan uppstå om alla utvecklare som är involverade i projektet har en enhetlig vision av webblösningen.
  5. Höga initiala investeringar.
    Att underhålla ett mikrofrontend-projekt är kostsamt. Att samla in och underhålla flera frontend-team är dyrt. Du behöver också ledningspersonal för att planera arbetet, samordna allt och säkerställa effektiv teamkommunikation.
blå pil till vänster
Imaginary Cloud-logotyp

När ska man använda micro frontend?

Trots fördelarna med mikrofrontendarkitektur är det inte en lösning som passar alla. Varje webbapplikation är inte lämplig för denna arkitektoniska stil. När du väljer en mikrofrontend för din webbapplikation, hur vet du om det kommer att bli en framgång? Det finns två typer av frontend: monolitisk och mikro.

Låt oss diskutera de viktigaste kriterierna som styr ditt beslut. Här är några exempel på när mikrofrontend är vettiga:

  • Din onlinelösning är komplicerad, byggd på mikrotjänster och kan delas in i olika fristående vertikaler. Anta till exempel att du utvecklar ett företagsresursplaneringssystem med flera moduler (t.ex. ekonomi, CRM, HR, lager).
  • Du vill ha separata teknikstackar för olika moduler inom en enda onlinelösning.
  • Du har redan eller kommer att anställa ett stort utvecklingsteam (eller flera team), och din budget tillåter det.

Om du är osäker på om mikrofrontend passar ditt projekt, kontakta en pålitlig teknisk partner som Imaginary Cloud. I slutändan beror det på detaljerna i din affärsplan.

blå pil till vänster
Imaginary Cloud-logotyp

Hur fungerar en mikrofrontend

En mikrofrontend består av flera oberoende och modulära komponenter som laddas och visas efter behov. Detta innebär att endast de komponenter som krävs för en specifik sida laddas. Dessa komponenter interagerar direkt med data och kräver inte en centraliserad server för att dirigera förfrågningar eller bearbeta data. Förutom de komponenter som visar innehåll kan en mikrofrontend också ha flera verktygskomponenter som interagerar med programmets miljö.

Dessa komponenter kan interagera med användaren eller med andra komponenter. Hanteringen av applikationens tillstånd kan också använda dem. Dessa verktygskomponenter har vanligtvis minimal funktionalitet och visar inget innehåll för användaren. De kan också laddas endast vid behov.

blå pil till vänster
Imaginary Cloud-logotyp

Hur implementerar man en mikrofrontend?

Du kan integrera mikrofrontend på två sätt:

Byggtidsintegrering
Så här skrivs de flesta koder idag. Behållaren installerar komponenterna som bibliotek, liknande hur du skulle installera bibliotek från npm. Du kan också använda Module Federation med NextJS som det ser ut idag på WebPack 5.

Nackdelarna med denna teknik är synkronisering av flera versioner av bibliotek och byggproblem. Det är också svårt att använda flera tekniker. Det slutliga paketet kommer också att vara stort eftersom det kommer att innehålla alla beroenden. Dessutom måste alla ändringar i beroenden distribueras igen, och behållaren och alla mikrofrontend är tätt kopplade.

Körtidsintegrering
Kompositioner för körtidsintegration klassificeras i tre typer:

  • Komposition på serversidan: Backend-funktionaliteten bestämde vilken mikrofrontend som skulle laddas och när. URL:er avgör hur servern dirigerar förfrågningar.
  • Komposition på kantsidanOrkestreringen sker på CDN själv. Den kan hantera aktiva backends som vanligtvis hanteras av servern. Det är också kapabelt att leverera statiskt material.
  • Komposition på klientsidan: Behållarna bestämmer vilken version av frontenderna som ska distribueras eftersom båda är frikopplade. Vid behov kan värden begära mikrotjänster.
blå pil till vänster
Imaginary Cloud-logotyp

Slutsats

Mikrofrontendarkitekturen är särskilt gynnsam för storskaliga webbutvecklingsprojekt baserade på mikrotjänster. Det gör det möjligt att utveckla olika komponenter av separata, autonoma team av programmerare. Som ett resultat, det ger flera fördelar, inklusive en snabbare utrullning av nya funktioner, enklare testning av enskilda komponenter och smidigare uppdateringar.

Trots fördelarna med mikrofrontend finns det också vissa nackdelar. En applikation kan till exempel vara svår att testa i sin helhet. Mikrofrontend-projekt är också ganska kostsamma eftersom de kräver ett stort team av utvecklare och chefer. Ta hänsyn till alla konsekvenser av ett projekt innan du går vidare.

Imaginary Cloud har expertis inom mikrofrontend och monolitiska frontend, så du behöver inte oroa dig. Hör av dig så diskuterar vi din förfrågan i detalj.

New call-to-action
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
Alexandra Mendes
Alexandra Mendes

Alexandra Mendes är Senior Growth Specialist på Imaginary Cloud med 3+ års erfarenhet av att skriva om mjukvaruutveckling, AI och digital transformation. Efter att ha avslutat en frontend-utvecklingskurs tog Alexandra upp några praktiska kodningskunskaper och arbetar nu nära med tekniska team. Alexandra brinner för hur ny teknik formar affärer och samhälle och tycker om att förvandla komplexa ämnen till tydligt och användbart innehåll för beslutsfattare.

Linkedin

Läs fler inlägg av denna författare
André Santos
André Santos

Din dagliga webbutvecklare som gillar att gömma sig i backend. Javascript och Ruby är min sylt. Jag fumlar fortfarande med Docker och mina byggnader går sönder ganska ofta.

Läs fler inlägg av denna författare

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon