Magento verkkokauppa ja sen palvelinvaatimukset

Juuso Kataja

Magento on jo pitkään vakiinnuttanut asemansa avoimen lähdekoodin verkkokauppaohjelmistojen valtiaana, joskin WooCommerce alkaa jo tosissaan haastamaan sen asemaa.

Tässä kirjoituksessa tutustumme hieman Magento 2 -verkkokauppaan, sen palvelinvaatimuksiin ja pohdimme, mitä on hyvä ottaa huomioon verkkokaupan perustamisessa palvelintilan osalta.

Magento verkkokauppa

Magento on hyvin monipuolinen avoimen lähdekoodin verkkokauppa-alusta, jota Suomessakin käytetään paljon. Magenton etuina ovat erityisesti kustomoitavuus ja integroitavuus, jonka takia sitä käytetäänkin tyypillisesti hieman isommissa verkkokauppatoteutuksissa, joissa asiakkaalla on usein selkeitä tarpeita ja vaatimuksia kaupan toiminnallisuuksien suhteen. Usein vaatimukset liittyvät juurikin kaupan integrointeihin muihin toiminnonohjausjärjestelmiin, kuten varasto- tai kassaohjelmistoihin.

Magenton 2-versio on kuitenkin ohjelmistona jo hyvin raskas, jonka takia WooCommerce onkin ohittanut sen selvästi verkkokauppa-alustojen suosiossa. BuiltWith -sivusto arvioi, että Magento on nykyään pohjana noin 13% kaikista maailman verkkokaupoista.

Magento 2 palvelinvaatimukset

Mitä verkkokaupan palvelimelta sitten vaaditaan? Tähän voi olla vaikea vastata yleispätevästi, koska jokainen sivustototeutus on yksilöllinen, joten sillä voi olla myös hyvin yksilölliset vaatimukset. Tarvittaviin resursseihin vaikuttavat ainakin verkkokaupan kävijämäärät, hallinnasta löytyvien tuotteiden lukumäärät sekä kaupassa käytettävät toiminnallisuudet.

Siinä missä muut suositut verkkokauppaohjelmistot, kuten WooCommerce tai vaikkapa aiemmat Magento 1.x version verkkokaupat, ovat aiemmin toimineet jo edullisemmassa webhotelliympäristössä, on Magento 2 verkkokauppojen osalta vaatimukset kohentuneet huomattavasti palvelintilan osalta. Magento onkin lähtökohtaisesti raskas ohjelmisto, joka vaatii resursseja käytetyltä palvelimelta.

RAM-muisti

Magenton virallisten suositusten mukaan, palvelimella tulisi olla käytössä vähintään 2Gt RAM-muistia, joka rajaa tehokkaasti jo useimmat webhotellit pois laskuista. Huomionarvoista toki on, että verkkokaupan käyttö onnistuu myös pienemmällä muistin määrällä, mutta erityisesti erilaisten lisäosien päivitykset voivat epäonnistua, mikäli muistia ei ole palvelimella riittävästi.

Tämä mainittu 2Gt on siis vain minimivaatimus muistin osalta. Todelliset tarvitut resurssit ovat aina sivustokohtaisia, joihin vaikuttavat niin kävijöiden määrät kuin sivustolle rakennetut toiminnallisuudetkin. Käyttäjä- ja tuotemääriltään laaja verkkokauppa tarvitsee äkkiä enemmän minimisuosituksia enemmän tehoja.

CPU-ytimet

Verkkokauppa tarvitsee myös palvelimelta laskentatehoa, eli prosessoreita. Prosessoreiden määrä riippuu myös hyvin pitkälti kaupan toteutuksesta, sillä erilaiset tehtävät ja toiminnot kaupassa tarvitsevat erilaisia resursseja palvelimelta. Useimmat Magento-kaupat tarvitsevat kuitenkin useampia ytimiä käyttöönsä. Jos minimivaatimukseksi voitaisiin listata maltilliset 1 CPU-ydin ja 2Gt RAM-muistia, niin suosituksena tämä voitaisiin helposti alkuun tuplata, jos sivustolla on jo vakiintunutta elämää asiakkaiden ja tuotteiden muodossa.

PHP

Käytettävä PHP-versio riippuu myös käytetystä Magenton versionumerosta. Täydellisessä maailmassa kaikki tietysti käyttäisivät aina ohjelmiston uusinta versiota, mutta todellisuudessa päivittäminen ei aina ole niin yksinkertainen asia.

Uusin 2.3.1 versio on sertifioitu toimimaan PHP 7.2.11 -versiolla ja suositeltavaa onkin käyttää vähintään PHP 7.2 -versiota.

Tarvittavia PHP-moduuleja palvelimelta ovat:

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-mbstring
  • ext-openssl
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-spl
  • ext-xsl
  • ext-zip
  • lib-libxml

Eri Magenton versioilla on siis eri vaatimuksia palvelimen PHP-version suhteen. Oheisesta taulukosta voi nähdä, kuinka vanhemmat Magento 2 kaupat toimivat eri PHP-versioilla.

Taulukko Magento verkkokauppa -versioiden PHP yhteensopivuuksista

Lisäosien ja ulkoasuteemojen vaatimukset

Ei riitä, että itse Magentoa ja käytettyä palvelinta päivitetään säännöllisesti uusimpien suositusten mukaisesti. Kaupassa on myös usein käytössä useita kolmansien osapuolien teettämiä lisäosia, ulkoasuteemoja ja erilaisia integraatioita toiminnanohjausjärjestelmiin.

On tärkeää huolehtia, että kokonaisuus on hallussa ja käytettyihin lisäpalikoihin on myös tukea ja päivityksiä saatavilla.

Monien lisäosien ja kustomoitujen integraatioiden vaatimukset voivat helposti poiketa uusimpien Magento-versioiden vaatimuksista. Jokin palikka ei välttämättä olekaan yhteensopiva, vaikka jonkin tietyn PHP-version kanssa. Palvelinta ja sen ohjelmistoja määrittäessä, täytyy siis osata huomioida myös erilaisten osien omat vaatimukset. On tärkeää huolehtia, että kokonaisuus on hallussa ja käytettyihin lisäpalikoihin on myös tukea ja päivityksiä saatavilla.

Jaettu ympäristö vai oma virtuaalipalvelin?

Verkkokaupalta vaaditaan jo lähtökohtaisesti parempaa tasoa palvelintilan osalta muun muassa seuraavista syistä:

  • Verkkokaupan latautumisnopeus
    Sivuston latautumisnopeus vaikuttaa suoraan hakukonetuloksiin, konversioon ja viivan alle jäävään tulokseen. Lue aiemmasta kirjoituksestamme lisää sivuston latautumisnopeuden merkityksestä.
  • Ulkoisten ongelmien minimointi
    Jaetussa palvelintilassa, kuten webhotelleissa, voivat myös muiden asiakkaiden sivustojen ongelmatilanteet vaikuttaa oman verkkokaupan toimintaan. Omassa virtuaalipalvelimessa tämä riski putoaa minimiin.
  • Muokattavuus ja skaalautuvuus
    Palvelimen ominaisuuksia ja asennettuja palvelinohjelmistoja voi olla tarve muokata lennossa. Myös palvelimen tehoja täytyy olla mahdollista muuttaa helposti ja palvelimen täytyy kyetä skaalautumaan verkkokaupan kasvaessa.

Yhteenvetona:

Zoner suosittelee Magento verkkokaupalle omaa virtuaalipalvelinta, joka on täysin räätälöitävissä verkkokaupan tarpeen mukaisesti. Tarjoamamme OnAPP-virtuaalipalvelimet ovat myös skaalautuvia ja perustuvat tuntipohjaiseen hinnoitteluun.