Magento2 trgovine, spletni strežniki in varnost

Po dolgem času nov zapis. Skoraj eno leto bo že, kar sem se srečal z zahtevkom po postavitvi strežnika za Magento2 trgovino. Z Magentom 1.x sem imel že nekaj izkušnej, ampak Magento 2 je popolnoma drugačen. Boljši? Morda, ne morem ga ocenit s stališča programerja, ampak s stališča sistemskega administratorja, ki je “mahnjen” na varnost strežnikov in mu neoptimizirani strežniki gredo na “jetra”, bom rekel, da je popolnoma drugačen in neverjetno požrešen.
Že rahlo zahtevnejša trgovina, zahteva ogromno sodelovanja med programerji in sistemskim administratorjem. Naziva DevOps se namerno izogibam, saj tega ni, to je naziv, ki so ga izumili, samo zato, da so lahko slabega programerja in slabega sistemca združili v eni osebi in ravno taki ljudje, ki delajo v kadrovskih službah pišejo oglase, kjer iščejo IT-jevca, ki obvalda C++, C#, .Net, Oracle, MSSQL, MySQL, Node.JS, PHP, Perl, Linux, UNIX, Windows, … poservisira šefov avto in je pripravljen sužnjelastniško delati v StartUpu 18 ur/dan.

Gremo nazaj na strežnike …

Začetki postavitev so segali v implementacijo strežnika z 12 GB RAM, SSD diski, 4 CPU.

Programska oprema za začetek je bila:

Apache 2.4
PHP 7.0 FPM
Redis
MySQL
OSSEC in CSF za varnostno zaščito, ter še Malware scanner (zadeve, ki precej obremenijo strežnike)

za teste je bilo to dovolj, ampak za produkcijo ne …

strežnik se je postopoma nadgradil na 64 GB RAM, 16 CPU, SSD diski, še vedno na VPS …

dodal sem še sledečo programsko opremo:

Haproxy 1.6.x
Varnish 5.x
MySQL menjal z MariaDB
Elasticsearch, ki za sabo potegne še Java 1.8

ti dve priteklini sta delovanje izboljšali, strežnik pohitrili, ampak še vedno je ob špicah kar precejšen LOAD strežnika. S samim stanjem nisem bil zadovoljen, zato sem prešel na Dedicated strežnik z 64 GB RAM, SSD diski v HW RAID1 polju in delno zamenjal programsko opremo:

Hitch
Varnish 5.x
Nginx
PHP 7.0 FPM in FastCGI
Radis
MariaDB
OSSEC in CSF ter še Malscan za preglede pred Malwareom

Ampak to ni to, imamo dobro postavitev, ki deluje, ampak želim si uporabljati najnovejše tehnologije, zato sem k NGINX pridružil še HHVM in za teste sem MariaDB menjal z Percona MySQL, in ko se nastavijo vsi potrebni parametri delovanja zadeva deluje, kot mora.

Ampak, če se gremo igrat HA, potrebujemo HA … torej visoko razpoložljivost.

Način HA v primeru uporabe Dedicated strežnikov je zahtevnejši, saj potrbujemo strežnik, ki je lahko tudi VPS, ki bo pridružen našemu privatnemu omrežju in, ki bo s pomočjo recimo HAProxy delal LOAD Balance, med dvema strežnikoma, ki strežeta splet. Za spletnimi strežniki, pa je potrebno postaviti še MySQL ali MariaDB strežnike in med njima izvajati raplikacijo v realnem času – tu sem uporabil Maria Galera Cluster. Seveda MySQL replikacija ni nujna, ampak je pa priporočljiva. Postavitev brez MySQL replikacije bi izgledala nekako takole:

Postavitev je komplicirana, ampak nuja za trgovino oz. spletno stran, ki ima ogromno obiska. Zavedati se je potrebno tudi to, da Magento2, ni optmiziran, da ima ogromno napak, ki se še odpravljajo. V kolikor se uporabljajo dodatni moduli, lahko tudi ti vsebujejo napake. 
V kolikor gradite Development strežnik za Magento2 oz. HiTraffic spletne strani, želite tu in tam tudi kak UIv Linuxu, potem namestite komponente naštete spodaj oz. izločite tiste, ki jih ne potrebujete:

WEBMIN CONTROL PANEL
PERCONA 5.6
HHVM
VARNISH
NGINX
PHP 7
REDIS
MEMCACHED
PROFTPD
JAVA

MALWARE REALTIME MONITOR
CLAMAV ENGINE
PERCONA TOOLKIT
MYSQLTUNER
MYTOP
PHPMYADMIN
CSF FIREWALL
OSSEC
MAGERUN 2
ELASTICSEARCH

images optimization
letsencrypt
goaccess
iotop
sysstat
git/svn
strace
python-pip
iptraf
SOLR

Upam, da sem komu pomagal pri postavitvi, da bo porabil čim manj časa z iskanjem rešitve.

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja