Hypernode Certified Agencies: best practices voor Magento development

Hypernode Certified Agencies hebben aangetoond bij de top van de Magento bureaus in Nederland/België te horen. Ze leveren Magento webshops van uitermate goede kwaliteit en hebben processen ingericht om deze kwaliteit ook te waarborgen. Maar hoe doen ze dat dan? Wat doen zij bijvoorbeeld aan performance optimalisatie en hoe ziet hun patchbeleid eruit? In dit artikel delen we deze best practices met jullie.

In het Hypernode Certified Agencies-programma doorlopen Magento development bureaus een uitgebreide audit. We bekijken de output (security, performance) en beoordelen de processen die zijn ingericht om de kwaliteit altijd op een voorspelbaar hoog niveau te houden. Natuurlijk is er niet one-way-to-go. Elk bureau is anders en werkt op een andere manier. Wij laten ons daarom bij elke audit weer verrassen en beoordelen op wat we zien of deze manier een voorspelbare hoge kwaliteit oplevert.

Eén van de redenen dat we dit certificeringsprogramma zijn gestart is om een positieve bijdrage te leveren aan het niveau van Magento development. Dat is al ongelooflijk hoog, maar we merken aan de partijen met wie we werken dat er enorme ambitie is om nóg beter te worden. Deze bureaus helpen we graag waar we kunnen door ze een duwtje in de goede richting te geven. En na 2 auditrondes en 17 Hypernode Certified Agencies hebben we een flinke dosis aan Best Practices die we met de wereld kunnen delen. Hier komen de belangrijkste:

Magento performance optimalisatie

Alle grotere Hypernode Certified agencies hebben vaste processen die worden doorlopen als het gaat om performance optimalisatie. Op elke shop wordt in principe dit, dit en dit gedaan, tenzij het niet kan voor die shop. Vaak is dit caching (bijna altijd Redis, FPC (Lesti), en indien mogelijk Varnish). Op bijna elke shop draait de Hypernode Image Optimizer in een crontab. New Relic, Blackfire en MageReport Premium worden gebruikt voor analyse en monitoring. Het merendeel van de shops gebruikt PHP 7. Soms lukt dit niet i.v.m. budget van de klant (Magento 1) en wordt ervoor gekozen om dit later met een migratie naar Magento 2 mee te nemen. Ook valt op dat de shops relatief weinig botverkeer hebben. Sommige bots heb je nu eenmaal nodig, maar als dit boven de 30% komt kost dit onnodig veel performance. De shops van Certified Agencies hebben gemiddeld 5-20% botverkeer. Dit komt waarschijnlijk ook omdat we hier expliciet aandacht aan besteden in het dashboard van MageReport Premium.

Security

Magento security patches

Bij Magento 1 heb je als bureau nu eenmaal te maken met security patches. Deze komen altijd onverwacht en zolang ze niet geïmplementeerd zijn lopen je klanten gevaar. Een crime voor bureaus, want ze gooien altijd de planning in de war en ze kosten uren waarvan de klant niet altijd het belang begrijpt. Hoe doen Hypernode Certified Agencies dat?

Toestemming van de klant?
Bij het merendeel van de bureaus zijn het doorvoeren van security patches verplicht gesteld. Daar is geen discussie over mogelijk. Vaak is dit voor alle klanten standaard het geval, soms is het opgenomen in een SLA. Daarbinnen zijn er twee vormen: het ene bureau heeft met de klant afgesproken dat de patches zonder toestemming van de klant worden geïmplementeerd, en andere bureau voert de patch door, maar laat de klant vervolgens eerst de change goedkeuren op een stagingomgeving. Dat laatste is netjes, maar kost ook tijd. Je zult dan de tijdsdruk die heerst bij patchen goed moeten kunnen overbrengen op de klant.

Wat we ook hebben gezien is wat wij ‘next level patching’ noemden: bij de release van een patch eerst analyseren wat daadwerkelijk nodig is om het lek te dichten, zonder daarbij andere onnodige wijzigingen door te voeren.

Bewust wachten met doorvoeren Magento patch
Een aantal bureaus wacht inmiddels eerst 24 – 48 uur met het implementeren van de patch, omdat in het verleden is gebleken dat de Magento patches soms complicaties met zich meebrengen. Ze monitoren dan eerst strak de feedback uit de community op Slack en StackExchange. Hierbij speelt voor hen ook mee of wij al een bescherming op serverniveau hebben kunnen maken. Zo ja, dan geeft dat nog iets meer rust en tijd om de kwaliteit van de patch af te wachten. Wel wordt in alle gevallen de patch binnen 4 weken doorgevoerd.

Magento 2
Een nieuwe uitdaging hierin is Magento 2: hierbij worden bij security issues geen patches aangeboden, maar versieupdates. Dat is lastiger: Magento 2 updates worden nog niet altijd als stabiel ervaren en/of third parties blijken dan nog niet altijd compatible te zijn.

Het gebruik van SSL-certificaten

Bij alle certified bureaus is SSL-beveiliging voor Magento shops verplicht, of wordt het zo overtuigend geadviseerd dat alsnog elke klant ervoor kiest. In bijna alle gevallen gaat het ook om de volledige shop, niet enkel de check-out. Argumenten die hiervoor worden gebruikt zijn uiteraard veiligheid, maar ook wetgeving en SEO.

Hacks

Zo goed als elke Hypernode Certified Agency heeft een proces voor proactieve hackdetectie ingericht (en zo niet, dan hebben wij dat streng aangeraden ;-)). Dit betekent dat er sprake is van monitoring en alerting, binnen en buiten kantoortijden. Hiervoor worden tools gebruikt: vaak New Relic voor het monitoren van verdachte performance pieken en de Magento Malware Scanner (Yara). In alle gevallen werd gebruik gemaakt van MageReport. Veel bureaus laten ook alarmbellen afgaan zodra er code changes op de productieserver worden gedetecteerd. Monitoring vindt tijdens kantoortijden vaak plaats met grote tv-schermen op kantoor en buiten kantoortijden met bijvoorbeeld SMS alerting.

Magento deployment

Hypernode Certified Agencies hebben allemaal een soort van OTAP-straat waarbij gebruik wordt gemaakt van verschillende omgevingen voor ontwikkeling, testen, acceptatie van de klant en productie. Een enkeling maakt gebruik van Docker, soms de stagingomgeving op de Hypernode en het merendeel gebruikt de Hypernode development pakketten.

Versiebeheer

Alle bureaus maken gebruik van versiebeheer. Bijna allemaal gebruiken ze git, met pull requests en branches. Vaak in combinatie met Bitbucket.

Changes op productie?

Het merendeel van de Hypernode Certified Agencies maakt gebruik van composer based installaties en updates waardoor het niet mogelijk is code op productieserver aan te passen. Ook corehacks zijn hiermee niet mogelijk overigens.

Andere bureau geven alleen lead developers toegang tot productieomgevingen, of geven aan dat het wel mogelijk is, maar dat het bij de eerstvolgende deployment toch weer overschreven wordt.

Over of je het überhaupt moet willen zijn de bureaus unaniem: “Nee, dat moet je gewoon niet doen. Punt.” En ja, soms is het onvermijdelijk om een hotfix te doen voor bijvoorbeeld third party modules. Dan moet je het gewoon heel zorgvuldig doen en goed documenteren.

Codekwaliteit

Alle Hypernode Certified Agencies hebben een soort van interne codekwaliteitrichtlijn opgesteld waar elke developer zich aan moet houden. Daarnaast moeten developers binnen een jaar een Magento certificaat behalen en/of wordt er gewerkt met black-/whitelists van third party modules.

Bij elke certified agency is er sprake van een 4-ogen-principe. Alle code wordt door een collega-developer gereviewd voor het naar productie gaat. Al dan niet een lead/senior developer.

Tools die worden gebruikt: PHPunit, PHPStorm, PHP Code Sniffer, PHP Mess Detector en plugins, phpcode linting, CodeSniers, Xdebug, MEQP1/2.

 

Heb je nog aanvullingen, of opmerkingen? Kom maar op!

 

 op

Suzanne verzorgt de marketing en communicatie van Byte. Ze stort zich o.a. op het creëren van interessante content (blogs, video, infographics), werkt mee aan productreleases en is verantwoordelijk voor de communicatie naar onze klanten en partners. In haar vrije tijd houdt ze van hardlopen, Nederlandse hitjes, en we kennen niemand die zo blij kan worden van lekker eten.