Akif Gumussu

22 juni 2020

Door Akif Gumussu

Eigenaar Aquive Media & Full stack developer

Ons zero downtime deployment script voor Magento 2

Wat lees je hier?

Je leest hoe wij een script hebben opgezet, waardoor onze Magento 2 klanten nooit meer uit de lucht zijn door ontwikkeling. Daarnaast hoe deze tot stand is gekomen en te werk gaat. Veel lees plezier!

Het script dat zorgt voor zero downtime voor Magento 2 webshops

Dagelijks zetten wij verschillende features live voor onze klanten. Dit zorgt er regelmatig voor dat je tussen de 30 seconden en 20 minuten uit de lucht bent, afhankelijk van de feature. Hieruit vloeide de wens vanuit de klant om dit te verlagen en zo dicht mogelijk bij de 0 seconden te komen.

Aquive Media Magento zero downtime deployment script Magento 3

Hoe kunnen we zonder downtime nieuwe features live zetten in Magento 2 webshops?

Een custom script die uitgevoerd wordt op de server, waardoor er op de achtergrond features worden gegenereerd en in een keer worden gekopieerd naar de live omgeving. De downtime van tussen de 30 seconden en 20 minuten teruggebracht naar tussen de 0 en 30 seconden.

“We hebben dit bij drie Magento 2 webshops uitgetest en het resultaat is geweldig. De downtime van tussen de 30 seconden en 20 minuten teruggebracht naar tussen de 0 en 30 seconden.”

Best practices en bestaande oplossingen

We zijn waarschijnlijk niet de eerste met dit idee. Vanuit deze gedachte werd het beste script online gezocht, welke zo min mogelijk aantal aanpassingen deed aan de server zelf. Op deze manier is het script direct inzetbaar voor alle webshops. Daarna wil je het script zo gebruiksvriendelijk mogelijk maken voor de technisch beheerder van de webshop.

Gebruiksvriendelijk, veilig en snel

We zijn begonnen met een bestaand script, want deze had een sterke basis. Dit script kon je via parameters gebruiken, wat het erg onoverzichtelijk maakte want je weet niet exact wat je doet.

Na onze aanpassingen hoeft dit niet meer. De eerste keer dat je het script draait kan je de verschillende talen van de shop opgeven. Vervolgens kan je het script uitvoeren. Je krijgt 3 opties waaruit je kiest. Dit zijn de meest voorkomende Magento deployment commando’s.

1. ‘Static content deploy’
2. Modules
3. All

Met ‘Static content deploy’ worden alleen de statische thema bestanden vernieuwd met de nieuwe wijzingen. Dit houdt alle CSS-aanpassing in, zoals het aanpassen van de kooproute knoppen naar oranje. Een ander voorbeeld is het veranderen van de volgorde van elementen zoals tekst en afbeeldingen.

Met het commando ‘Modules’ kies je welke nieuwe modules er op de shop worden geïnstalleerd met een druk op de knop.

Het commando ‘All’ voert beide commando’s uit.

Resultaten

We hebben dit bij drie Magento 2 webshops uitgetest en het resultaat is geweldig. De thema aanpassingen via het commando ‘Static content deploy’ is geheel zonder downtime. Hiervoor kostte dat een paar minuten, wat een aanzienlijk verschil is. De commando’s ‘Modules’ en ‘All’ is teruggebracht van een kwartier tot 20 minuten naar 0 tot 30 seconden.

Wat voor server specificaties moet je voor dit script bezitten?

Welke vervolgstappen zijn er?

Het bovenstaande script hebben we tijdens onze DevDay gerealiseerd, echter willen we graag blijven optimaliseren. Dit betekend dat tijdens de volgende DevDay we de volgende punten gaan aanpakken.

Conclusie

Dankzij dit script zijn de webshops van onze klanten nooit meer uit de lucht, wat een positieve impact heeft voor zowel de bezoekers, de developer en de ondernemer.

Akif Gumussu
Over de auteur

Akif Gumussu (Eigenaar Aquive Media & Full stack developer)

22 juni 2020

Met meer dan 15 jaar ervaring in de e-commerce sector is Akif een ervaren E-commerce expert. Begonnen in 2007 tijdens zijn studie en sindsdien heeft zijn vaardigheden verfijnd en uitgebreid.

Hij heeft de uitdagingen van het runnen van een webshop persoonlijk ervaren. Deze hands-on ervaring geeft hem een uniek inzicht in de praktische pijnpunten van e-commerce ondernemers.