Is er een probleem dat snel moet worden opgelost?Spoedfix nodig?Vraag spoedhulp aan →
Blog

Praktische Magento 2-gidsen over upgrades, beveiliging, snelheid en migratie, geschreven door het MageBooster-team.

Production mode en deploys voor Hyvä-webshops

Hyvä maakt de frontend lichter, maar production mode en een herhaalbare deploy bepalen nog steeds hoe snel en stabiel een webshop is. Zo draaien en deployen wij Hyvä-webshops.
Production mode en deploys voor Hyvä-webshops
Update

Hyvä draait nu native op Magento 2.4.9 en op Mage-OS. We hebben beide getest. Wat dit betekent voor je webshop →

In het kort

Een Hyvä-webshop moet altijd in production mode draaien, met gecompileerde code, gedeployde static content en een Tailwind-productiebuild.

Een herhaalbaar deployscript, indexers op schema, een cache-purge en een snelle controle na elke release doen meer voor de stabiliteit dan welke losse optimalisatie ook.

Hyvä maakt de frontend lichter, maar verandert niets aan de basis van Magento goed draaien. Een webshop in de verkeerde mode, of handmatig gedeployd, is traag en kwetsbaar, welk thema je ook gebruikt.

Een Hyvä-productpagina die draait in Magento production mode met gedeployde static content.
Een Hyvä-productpagina die draait in Magento production mode met gedeployde static content.

In dit artikel lees je hoe we Hyvä-webshops draaien en deployen, van de mode-instelling tot de controles na een release.

Altijd production mode

Magento heeft drie modes: default, developer en production. Live webshops horen in production mode.

bin/magento deploy:mode:set production

In production mode serveert Magento vooraf gebouwde statische bestanden en gecompileerde code, in plaats van ze op aanvraag te genereren. Fouten worden gelogd in plaats van aan bezoekers getoond.

Developer mode is alleen voor lokaal werk. We komen regelmatig live webshops tegen die nog in default of developer mode staan, en dat is een van de goedkoopste snelheidsfixes die er bestaan.

Production mode maakt ook deel uit van de opzet achter onze benchmark van Hyvä versus Luma. Een eerlijke vergelijking vraagt dat beide thema's draaien zoals een echte webshop zou moeten.

De Tailwind-build hoort bij de deploy

Hyvä-styles worden gebouwd met Tailwind CSS. De build scant je templates en maakt een stylesheet met alleen de classes die je echt gebruikt.

Dat betekent dat de CSS opnieuw moet worden gebouwd zodra templates of de themaconfiguratie veranderen, vóórdat static content wordt gedeployd:

cd app/design/frontend/Vendor/hyva-child/web/tailwind
npm ci
npm run build

Op onze webshops worden de Tailwind-designtokens tijdens de deploy opnieuw opgebouwd uit config- en themabestanden. Zo komen header- en merkkleuren die in Stores > Configuration zijn ingesteld in de stylesheet terecht, zonder dat iemand code hoeft aan te passen.

De details over tokens en de build-pipeline vind je in Tailwind in Hyvä: design tokens en de build-pipeline.

Een herhaalbare deployvolgorde

Elke deploy moet dezelfde stappen in dezelfde volgorde doorlopen. We hebben ze gescript, zodat niemand ze hoeft te onthouden.

  1. Haal de release op en installeer de dependencies met Composer.
  2. Bouw de Tailwind CSS voor elk Hyvä-thema.
  3. Zet maintenance mode aan als de release databasewijzigingen bevat.
  4. Voer bin/magento setup:upgrade.
  5. Voer bin/magento setup:di:compile.
  6. Deploy static content voor elke gebruikte locale.
  7. Flush de cache van Magento en herlaad PHP-FPM, zodat OPcache de nieuwe code oppakt.
  8. Zet maintenance mode uit.
  9. Purge de CDN en warm de belangrijkste pagina's op.
bin/magento setup:upgrade --keep-generated
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f en_GB de_DE
bin/magento cache:flush

Door buiten de live map te bouwen en pas aan het eind over te schakelen, blijft de downtime kort. Releases in aparte mappen met een symlink-switch geven je bovendien een snelle rollback.

Indexers, cron en achtergrondtaken

Productiewebshops moeten indexers op schema draaien, niet bij opslaan. Een product opslaan mag een admin-gebruiker niet laten wachten terwijl de hele catalogus opnieuw wordt geïndexeerd.

bin/magento indexer:set-mode schedule

Indexeren op schema hangt af van de Magento-cron, dus cron moet betrouwbaar draaien. Een vastgelopen cron merk je aan prijzen, voorraad of nieuwe producten die niet op de frontend verschijnen.

Ook andere taken horen in cron. Op onze Hyvä-demowebshop maakt cron elke nacht WebP-kopieën van productafbeeldingen en ruimt het testbestellingen op.

De server eronder

Production mode werkt het best op een server die voor Magento is gebouwd. De stack die we voor Hyvä-webshops draaien, ziet er zo uit:

LaagWat we gebruiken
ApplicatieMagento 2.4.9 op PHP 8.4
Cache en sessiesRedis of Valkey
ZoekenOpenSearch
Webservernginx met aparte PHP-FPM-pools per webshop
EdgeCloudflare ervoor

Aparte PHP-FPM-pools zorgen ervoor dat één drukke webshop een andere op dezelfde server niet kan uithongeren. Meer over het kiezen van hosting lees je in beste Magento-hosting.

Updates en beveiligingspatches

Magento brengt regelmatig beveiligingspatches en nieuwe versies uit, en Hyvä publiceert eigen updates. Beide moeten door hetzelfde deployproces als elke andere wijziging.

  • Update eerst op een stagingomgeving. Draai daar de volledige deploy en test de checkout voordat je de live webshop aanraakt.
  • Update extensies samen met Magento. Een module die niet klaar is voor de nieuwe versie, kan de frontend of de admin breken.
  • Houd het child theme klein. Hoe minder parent-templates je overschrijft, hoe minder werk elke Hyvä-update met zich meebrengt.
  • Houd alles in versiebeheer. Composer-bestanden, het child theme en het deployscript horen allemaal in de repository.

Vóór een grotere upgrade laat een extensie-audit zien welke modules als eerste aandacht nodig hebben.

Controles na elke release

Een deploy is niet klaar als het script stopt. We lopen een korte checklist af op de live URL:

  • Home, een categorie en een productpagina laden in elke store view.
  • In de winkelwagen leggen werkt en de minicart wordt bijgewerkt.
  • De checkout bereikt de betaalstap met elke betaalmethode.
  • Geen fouten in de browserconsole of in de Magento-logs.
  • Een Lighthouse-run op de echte URL achter de CDN, nadat de cache is opgewarmd.

Hyvä Checkout heeft eigen regels voor de Content Security Policy. Een nieuw betaalscript of een nieuwe trackingtag kan daar worden geblokkeerd, dus de checkout verdient een echte test na elke release die eraan raakt.

Valkuilen waar we tegenaan liepen

  • Verouderde cache na een layoutwijziging. Zie je een wijziging niet, controleer dan elke cachelaag voordat je de code gaat debuggen.
  • Een ontbrekende locale in de static deploy. Eén taal laadt dan zonder styles of scripts.
  • De Tailwind-build vergeten. Nieuwe classes in een template hebben geen effect totdat de CSS opnieuw is gebouwd.
  • De origin testen. We testen de publieke URL achter de CDN met een normale browser-user-agent, omdat onze nginx bot-user-agents blokkeert.

Veelgestelde vragen

Heeft Hyvä een ander deployproces nodig dan Luma?

Grotendeels hetzelfde. De belangrijkste toevoeging is de Tailwind CSS-build, die moet draaien vóórdat static content wordt gedeployd, telkens als templates of styles veranderen.

Kan ik templates direct op de live server aanpassen?

Dat raden we af. In production mode vragen wijzigingen aan templates en styles om een build en deploy, en handmatige wijzigingen gaan bij de volgende release verloren.

Hoe weet ik of mijn webshop in production mode staat?

Voer bin/magento deploy:mode:show op de server. Staat er geen production, dan is dat het eerste wat je moet oplossen.

We draaien Hyvä-webshops op geoptimaliseerde servers, met gescripte deploys, updates en beveiliging als onderdeel van onze Hyvä-dienst. Voor snelheidswerk aan een bestaande webshop, zie Magento-snelheidsoptimalisatie.

Deze pagina is automatisch vertaald. Zie je een fout? Laat het ons weten, dan passen we het meteen aan.

Gratis webshop-audit

Stuur ons de gegevens van je webshop. We controleren snelheid, beveiliging en extensies en sturen je binnen 3 werkdagen drie quick wins.

Laten we praten

Vraag een offerte aan

Vertel ons over je webshop, dan reageren we binnen één werkdag. Liever chatten? Stuur ons een WhatsApp

MageBooster Boek een UnoPim-demo Bekijk UnoPim live met producten zoals de jouwe. Een nieuwe PIM of een overstap van Akeneo: we sturen je een plan, een planning en een offerte.
✓ Officiële UnoPim-partner✓ AI-agent ingericht voor je team✓ Gekoppeld aan Magento
MageBooster Start je Hyvä-project Vanaf nul of vanuit je huidige webshop. We reageren met een projectplan, een tijdlijn en een offerte.
✓ Design en structuur door ons✓ Voor Hyvä geoptimaliseerde server✓ Bonusmodules inbegrepen
Word partner