Magento 2 er langsom – Er Production Mode slået til? Guide

Der er desværre ikke nok opmærksomhed på en vigtige ny feature i Magento 2: Modes. Vi oplever, at 70% af vores klienter har haft deres M2-site i Developer mode. 

 

  • OBS: Alle live Magento 2 sites bør være i Production mode. Production mode cacher hele siden og trækker fra en fuldt udvidet pub folder. Dette giver den bedste brugeroplevelse, da denne tilstand er optimeret til at køre stabilt og effektivt. Production mode er 20-30% hurtigere end Developer mode.

 

Har du en Magento 2 webshop? Er du usikker på hvilket mode dit live site er i? Vi anbefaler at du verificerer, at dit site er i Production mode. 

 

 
 
 

For dig der ikke er Magento nørd, kan det resultere i mange spørgsmål:

 

  • Hvad er Magento modes?
  • Hvordan kan jeg vide hvilket mode min webshop er i?
  • Hvorfor og hvordan kan jeg skifte mode?

 

 

Hvad er Magento 2 modes?

Den store forskel mellem Magento 1 og Magento 2 er introduktionen af development modes. Magento 2 modes blev introduceret med udgivelsen af Magento 2. De er varierende konfigurationer af Magento kodebase, som påvirker drift og performance på et Magento 2 site.

Magento 1 havde kun en mode til både udvikling og produktion. Magento 2 har nu tre forskellige modes: Default, Developer, og Production.

 

Hvilke Magento 2 modes findes der?

Magento har tre modes til anvendelse i et udviklings- eller produktionsmiljø: Default, Developer og Production modes. Production er klart den hurtigste. Default og Developer bruges til problemløsning og bør aldrig anvendes på et live site.

 

  • Default giver dig mulighed for at installere Magento på en enkelt server uden at ændre indstillinger. Dette mode er ikke beregnet til et live site. Performer dårligere end Production.
  • Developer kun beregnet til udvikling.
  • Production beregnet til når sitet skal “Go Live” og køre med optimal drift.

 

Og et mode til vedligeholdelse:

  • Maintenance forhindrer uautoriseret adgang til en Magento webshop under opdatering eller konfigurering.

 

Magento 2 Default Mode

Som navnet antyder benyttes Default mode når ingen anden mode er specificeret. Og det er måske derfor at den uforvarende benyttes på så mange Magento webshops. Default mode er kun tiltænkt til brug første gang man starter et Magento 2 site.

Default mode er en mellemting mellem Developer og Production. Den er indrettet til at forkorte opstartstiden for et standard Magento 2 site. Dette gøres ved at man kan udvikle uden at kompilere kode, samt at den indeholder et standardiseret sæt konfigurationer.

  • I Default mode er der ikke nogen hovedkarakteristika til produktion. Du bør derfor skifte til Developer mode eller Production mode.
  • Fejl vises ikke til brugeren. I Default mode logges fejl i filrapporterne på serveren. Selv om debugging er muligt, er det langt fra ideelt.
  • Når man skifter fra Default til andet mode, kan man ikke fortryde, da Default bliver utilgængelig. Det er ikke indrettet til brug i længere tid, men har kun et formål: At gøre det nemt at starte et Magento site.
  • Statiske filer materialiseres før de caches. Det hæmmer performance.
  • For hver filanmodning skabes et symlink i pub/static kataloget. I Default mode vil cachen derfor ikke blive udnyttet fuldt ud. Siden leverer fortsat indhold dynamisk ved hver forespørgsel.
  • I Default kan du implementere Magento applikationen på en enkelt server uden at ændre i indstillingerne.

 

Dette kan føre til en hurtigere lancering af sitet. Du vil dog i sidste ende spare mest tid på at udføre modifikationer og vedligehold i Developer mode. Det skyldes de mere avancerede muligheder for udvikling, som beskrives nærmere i næste afsnit.

Magento 2 Developer Mode

Her kan Magento udviklerne udføre alle deres udviklingsopgaver. Developer mode er kun beregnet til udvikling. Det er her, du bør tilpasse og udvide Magento.

  • Caching kan godt bruges i udviklertilstand. Det er typisk slået fra for at gøre udviklingstests hurtigere. Man får man i dette mode exceptionelt lave hastigheder i frontend delen og i Magento administration. Det skyldes også manglen på en /pub folder. 
  • Developer mode kompilerer automatisk kode. Det tillader også mere avanceret logning og debugging end i Default eller Production. Logfilerne har derudover flere detaljer.
    – Undtagelser vises i browseren og ikke kun i logfilen på serveren. Det er nemmere end, at man kun har fejlnummeret, og skal ind og kigge i loggen for at se hvilken fejl, der er opstået.
    – Undtagelser vises også i browseren når event subscribers ikke kan kaldes. Det giver hurtigere debugging af problemer med moduler.
  • Statiske filer skrives til Magento pub/static katalog hver gang de kaldes. De bliver aldrig cachet.

 

OBS: Brug dette mode når du modificerer eller udvider Magento 2 standardfunktioner.

Magento 2 Production Mode

Production mode er beregnet til drift i et produktionssystem. Alle live sites skal have Production mode. sHer anvendes fuld caching, som giver en stabil og hurtig drift for brugerne på sitet.

  • Statiske filer gemmes kun i cachen. Denne mode cacher hele siden samt en komplet pub mappe. Production mode er optimeret til at give den bedste kundeoplevelse. Hvis det er vigtigt for dig, bør du skifte din Magento webshop til dette mode.
  • Debugging er sværere i Production. Det skyldes at fejlene kun logges på serveren og ikke vises i frontend (browseren).
  • Production mode uses full page caching with a fully built pub folder to pull from, which results in the smooth and efficient functioning of the store. If you are concerned about offering the best customer experience, you must switch your store to this mode. 
  • Når vi snakker sikkerhed, er Production det mest sikre mode. Her oprettes ikke et symlink til pub/static mappen. Hvis en uautoriseret bruger får adgang til pub/static for at ændre disse data, bliver det kun dubletter af disse filer. 

 

To handlinger er essentielle når du skal skifte mellem Developer og Production mode:

1. Static Deploy  dette fylder pub/static mappen med indhold. Denne mappe bruger dit Production M2 site til at bygge og hente indhold fra.

2. Compilation  denne funktion tager sitets kode og komprimerer det til bytecode. Det betyder bl.a., at klasser hentes hurtigere, og at indlæsningshastigheden i frontend afkortes. Hvis en ondsindet bruger skulle få adgang til pub/static og lave ændringer, så kan de kun ændre dubletter af filerne. Og de bliver overskrevet ved næste statiske implementering.

Hvordan tjekker man det nuværende Magento 2 mode?

Selv om du ikke er en Magento nørd, er det med vores guide nemt at tjekke hvilket mode dit Magento 2 site er i.

Trin 1.

Log på din server via SSH som ejer af Magento filsystemet.

  • Hvis du deler hosting med andre, så skal du bruge det brugernavn, som din Magento hosting udbyder har givet dig.
  • Hvis du har din egen server, er det typisk en lokal brugerkonto på Magento serveren.

 

Du skal bruge en SSH-klient på din computer.

  • På Mac kan du bruge Terminal som er inkluderet i standardopsætningen. Det kunne også være en tredjepartsapp som Termius.
  • På Windows-computere kan du installere en tredjepartsapp som PuTTY.

 

Når du forbinder med SSH, så brug disse oplysninger:

Host: ssh.example.com
Username: example.com
Password: det som du valgte til SSH i dit kontrolpanel
Port: 22

OBS: Husk at erstatte “example.com” med dit eget domæne.

 

Trin 2.

Naviger til Magentos root-mappe. Typisk er dette public_html, men det er ikke altid tilfældet. Du kan altid tjekke hos din Magento hosting udbyder. De kan hjælpe med at finde mappen.

 

Trin 3.

Find /bin mappen i root-mappen.

 

Trin 4.

Kør følgende kommando: php bin/magento deploy:mode:show

 

Så kommer nedenstående meddelelse, der viser hvilket mode dit Magento 2 site kører i nu.

Current application mode: {mode}. (Note: Environment variables may override this value.)

 

Her kan {mode} være enten Default, Developer or Production

 

Blev du klogere på hvilket mode dit site kører i?

Hvis det viser sig at du har et live site i Developer mode, kan det løses nemt. Men det kan desværre være tegn på et større problem. Hvordan og hvorfor? Det beskriver vi nærmere i næste afsnit.

 

 

Hvordan skifter man Magento mode?

OBS: Du bør ikke foretage ændringer på dit Magento 2 site i live versionen uden først at have foretaget en test i et udviklingsmiljø.

 

Trin 1.

Login på SSH-site server.

 

Trin 2.

Naviger til sidens root, og find mappen /bin.

 

Trin 3.

Kør følgende kommando: php bin/magento deploy:mode:set {mode} [-s/-skip-compilation] 

 

hvor:

    • {mode} er en påkrævet parameter (Developer eller Production); 
    • [-s/-skip-compilation] er en valgfri parameter. Den bruges til at springe kompilation over når man skifter til Developer mode.

 

I kommandoen ovenfor kan du bruge værdierne Developer eller Production til at skifte til det tilsvarende mode. Når du har skiftet sitets mode og alt virker, vil du se følgende i konsollen: 

 

Enabled developer mode. eller Enabled production mode.

Dette er simpelt i teorien. Så får man nemt tanken – “hvorfor er mit Magento site ikke i Production mode?” Et almindeligt problem: En væsentlig fejl et sted i systemet, der bevirker, at sitet ikke virker, når kommandoen køres. Det kan tage lidt tid for en udvikler at komme i bund i dette.

Derfor ser vi ofte udviklere efterlade et site i Developer mode, så de ikke skal bruge tid – måske lang tid – på at finde problemet. Et problem, som tit viser sig at være et root problem, der kan være forårsaget af dårlig kode.

 

 

Gode tips når du skifter mode

Hvad skal du være opmærksom på, når du vil skifte over til Production mode:

  • Under ingen omstændigheder bør du skifte mode midt på en dag, hvor folk handler. Du risikerer at din webshop må lukke helt i en periode.
  • Tag en fuld backup af Magentos filer og database inden du begynder skiftet. Så har du noget at falde tilbage på hvis det går galt.
  • Ideelt bør du forsøge at gøre det i testversionen, så du har en ide om det vil fungere live. Selvfølgelig er der altid variable der kan være forskellige fra servermiljø til servermiljø.
  • Når du skifter fra Developer eller Production mode, anbefaler vi at du tømmer følgende mapper. Du bør dog passe på med ikke at slette .htaccess filerne, da de registrerer konfigurationsændringer for hver mappe.

      • var/cache
      • var/di
      • pub/static
      • var/generation
      • var/view_preprocessed

     

  • Nogle gange vil man under skift af mode opleve fejl der stopper skiftet. Disse fejl må identificeres og udbedres før man kan skifte mode.

 

Hvorfor du bør slå Production Mode til

Developer mode optimerer sitet. Det gør det nemt for udvikleren at arbejde med og integrere nye ændringer. Udvikleren kan se de nye ændringer i frontend hurtigt, og der er f.eks. intet statisk indhold i cachen. Udvikleren kan lave ændringer uden at køre langvarige, tidsrøvende kommandoer. Kommandoer, der f.eks. opdaterer de filer der læses af browseren – dvs. opdaterer websitet.

Dette betyder dog at indlæsningshastigheden for den enkelte side stiger med 20-30% på grund af ovenstående tiltag. De gør det nemmere for udvikleren at se de nye ændringer hurtigt. Men udviklerens og brugerens behov er forskellige. Der er ikke noget statisk indhold, som i praksis virker som en cache for browseren så der ikke skal indlæses så mange filer.

Dette er en stor svaghed, da en langsom webshop betyder dårligere konvertering. Brugere, der er utålmodige eller på langsommere forbindelser vil forlade sitet – uden at gennemføre deres køb.

Det er klart at et live Magento 2 site skal være i Production mode.

Jo før du skifter, jo bedre. Jo mindre sitet er tilpasset, desto nemmere er det at skifte det til Production mode.

 

Opsamling

Nu bør du have en bedre ide om forskellen mellem modes i Magento 1 og Magento 2. Du har også lært hvordan du verificerer hvilket mode dit Magento site benytter, og hvordan du skifter mode. At bruge de forskellige modes til Magento 2 giver nye muligheder i udviklingen. Det giver først og fremmest bedre performance og funktionalitet. Både i dag og i fremtiden.

Magento 2 kommer med forskellige features til at optimere performance. Dit job er at konfigurere dem korrekt.

Lad os vide, hvis du har spørgsmål eller feedback. Vi er altid på udkig efter måder hvorpå vi kan bidrage til Magento Community bliver større og dygtigere.

Vi vil også meget gerne fortælle om, hvordan Magecloud kan hjælpe din Magento webshop. F.eks. med at løse svære problemer eller forbedre sitets performance.

Kontakt os i dag, og snak helt uforpligtende med en ekspert om din forretning og dine behov.

 

 
 

Vil du vide mere?

Få en kort analyse af din webshop på video - så kan du se hvad vi kan!
Byer hvor vores kunder er