Anunţ

Caută printre mesajele de pe forum înainte de a scrie unul nou!
Formulează corect întrebarea sau problema pe care o ai.
Respectă regulile forumului și Codul de Conduită!

#1 05 Mar 2016 02:55:32

Claudiu.
Membru
Locaţie: Timisoara
Înregistrat: 08 Apr 2009
Mesaje: 633
Site web

[REZOLVAT] Arhitectura server shop online - pareri

Salutare ... e primul post dupa foarte multa vreme smile



Nu am neaparat o problema ... mai degraba doresc niste sfaturi legate de arhitectura unui server ... Am sa incerc sa fiu cat mai scurt.

Am un client in Franta pentru care o sa facem un shop online pe Magento 2.

Initial am primit de la ei un pdf cu niste "must have"-uri pentru noul server urmand sa luam noi decizia concreta legata de toate aspectele de server ...

Se da:

Cod:

* Server: 

Intel(R) Xeon(R) CPU D-1520 @ 2.20GHz, 8 cores
32GB RAM
2 x TB HDD

* Must have:

Debian 8 
Virtualizare on top of debian cu KVM sau XEN
Doua VM-uri (Dev + Testing) cu Ubuntu 14.04 urmand ca live-ul sa fie pe sistemul de baza (Debian)
Varnish 
HTTP + HTTPS 
Nginx si/sau Apache 2.4
MariaDB sau Percona
PHP7 sau HHVM
Firewall - iptables + acces pe baza de IP la VM-uri 
Fail2ban, PSad
Monitorizare

Prezint mai jos o schema cu ce am facut.

Desi se observa in schema .. pe scurt am instalat un template de Proxmox 4.0 pe Debian 8
Am facut 2 VM-uri cu Ubuntu 14.04 cu resurse destule pentru dev / test
HHVM-ul mi-a placut insa am ales totusi PHP7 ... ceva bug imi forja procesorul prea tare zeci de secunde 
Apache 2.4  mpm_event + php-fpm + MariaDB si in fata am pus Varnish
Am folosit Vhosturi de apache cu ProxyPass ca sa-mi rutez traficul catre VM-uri (nu stiu cat e de corect dar altfel nu am stiut)
Am dezactivat orice cache catre vm-uri ... am lasat varnish doar pentru live + op.cache in php.ini pe live + poate o sa folosim si un Redis (nu sunt sigur deocamdata)
Tweaks de config (apache,mysql,php,varnish) recomadate pentru high traffic Magento sites ...

http://i.imgur.com/FTKJqpk.jpg


Intrebari:

O sa sune ca un discurs "de gagica virgina" insa ... rog nu sariti pe mine ! ... Cu cativa ani in urma am fost destul de activ pe aici pana mi s-a acrit de agresivitatea unora si mi-am cam bagat piciorul ... am ramas la stadiul de cititor de topicuri ... Daca va ia cu aiurea nu scrieti in postul asta ... is that simple!
Nu sunt sysadmin fulltime job (fac programare) insa ma ocup si cu partea de server la job si o fac destul de binisor ..
Deci daca nu stiu ceva/gresesc ceva cu siguranta pot sa invat / inteleg ... sunt la inceput cu proiectul si acum e momentul sa iau decizia buna legat de flow-ul de mai sus ...


1. Avand in vedere treaba prezentata mai sus (nu prea am avut flexibilitate din cauza chestiilor cerute de ei) ... ce sugestii aveti ? ... potentiale probleme care eu nu le pot prevedea

2. Flowul de mai sus imi poate pune probleme in viitor daca vreau sa scalez ? ...

3. O minima solutie de High Availability ajuta cu ceva aici ... care ar fi ?

4. Pentru cultura mea generala ... e vreo logica in a face cateva VM-uri (clone cu aplicatia) si un VM separat cu DB -ul urmand ca in fata lor sa pun un Haproxy care sa faca load balancing intre ele. Logica de bun simt imi spune ca atata timp cat sunt pe acelasi node nu are rost ... (stiu care-i diferenta intre cluster si load balancer)

5. Aveti experienta in production cu HHVM ? ... ati avut probleme de compatibiliate sau de stabilitate in timp ?



Mersi mult,
Claudiu

Editat ultima oară de Claudiu. (07 Mar 2016 17:24:26)

Offline

 

#2 05 Mar 2016 09:18:28

bula20
Membru
Înregistrat: 18 Jan 2016
Mesaje: 498

Re: [REZOLVAT] Arhitectura server shop online - pareri

Ce am citit la varnish asa in trecere  sint ceva probleme (probabil mari) la virtualizare  aici https://www.varnish-cache.org/docs/4.1/ … notes.html


Procesor:GenuineIntel ,Intel(R) Atom(TM) CPU  230   @ 1.60GHz, placa video intel G945,
2GB ram, 160GB hdd.

Offline

 

#3 05 Mar 2016 13:31:25

guletz2002
Membru
Locaţie: Brasov
Înregistrat: 09 Sep 2009
Mesaje: 1512

Re: [REZOLVAT] Arhitectura server shop online - pareri

Salut Claudiu, chiar ma intrebam de ce nu te mai vad:)


  Acu nu zic ca sunt expert la ce vrei tu sa faci dar cate ceva stiu (din facute si nu din citite). o sa punctez cateva ideii, fara o ordine anume:


    Clintul tau impune niste chestii aiurea. Adica o arhitectura se gandeste dupa niste date tehnice, nu    dupa niste visuri. Am priectat si eu dupa visurile unora, a fost functional, dar au aparut probleme de performanta.   Aici e buba cea mai mare. Ai nevoie de niste specificatii, in baza carora sa faci o arhitectura. Minimal trebuie asa:

- nr de clienti concurenti (min/max)
- cat de mare e baza de date,  ai nevoie de un istoric al acelor interogari si durata de executie (pe care le vei executa pe arhitectura ta, si vei modifica setari in functie de rezultate)

- cele mai mari probleme vor fi la stocare
- serverul pare subtirel, dar necunocand detalii e greu sa fiu obiectiv, oricum gatuirea e pe partea de baze de date de regula,  asa ca foloseste stocare dedicata pt baza de date (ssd mirror sau raid 10 de preferinta - sunt multe de zis aici)
- nu ai decat batai de cap cu kvm, asa ca foloseste containere (kvm are multe straturi care se suprapun peste FS si discuri, si e f. complicat de impacat toate)
- o sa te lupti in kvm cu cache-ul (cel al gazdei si cu cel al sistemului virtualizat)
- ca si arhitectura nu se amesteca partea de development cu cea de productie, se face un server complet separat fizic
- nu folosi mariadb, decat daca e o cerinta justificata, altfel mergi pe percona, e mai bine optimizata, si stiu ce zic
- arhitectura ta nu scaleaza decat hardware - canva va trebui sa cresti performantele, asa ca vei lua un server mai bun, si ce ai acum vei pune in dulap
- porneste din start cu ceva ha si cluster din prima, pt ca altfel undeva in viitor o sa trebuiasca sa schimbi arhitectura
- separa front-endul de backend- e bun si pt securitate dar se preteaza mai bine la optimizari, bazele de date au alte optimizari decat un webserver, si nu pot fi conciliate (e si mai flexibil, poti muta guest-ul cu DB pe alt server)
- nu folosi nginx ca si revers proxy, se decurca dar nu e gandit pt asa ceva - aici haproxy e regele
- varnish e ideal pt caching,  asa ca mergi pe haproxy ca frontend (ca e http sau https) si el va trimite catre varnish si el va timite catre apache sau ce vrei tu
- haproxy e mai rapid si mult mai dotat ca si protectii fata de varnish (mai mult poti defini in haproxy si un fall-back daca varnish o ia in craci)


   Sunt f multe de spus, dar totul depinde de detalii, fara ele orice arhitectura e doar o poveste .... wink



   PS: si eu am zis ca ma pricep ca si admin, pana a trebuit sa fac ceva similar ca tine, si a trebuit sa-mi schimb parerea ....  Abia dupa cativa ani am prins abia despre ce e vorba .... in sensul ca am invatat pe propria piele ce nu trebuie facut intr-un astfel de setup.

Cireasa de tort e zfs, dar inca nu stii wink

Editat ultima oară de guletz2002 (05 Mar 2016 13:44:11)


Daca retea Nu e, atunci nimic nu e !!!
LiCo : Proud GNU/Linux User since 2003.

Offline

 

#4 05 Mar 2016 14:11:02

geosoft1
Membru
Locaţie: Râmnicu Vâlcea
Înregistrat: 21 Sep 2009
Mesaje: 3735

Re: [REZOLVAT] Arhitectura server shop online - pareri

pentru proiecte care cer performanta si scalibilitate iti recomand sa arunci o privire peste limbajul go si mongodb. sunt tehnologii relativ noi care iti permit sa te intinzi cu aplicatia cat si cu datele pe orizontala cat vrei.
solutiile gen php+mysql/mariadb+apache/ngnix sunt limitate, pot fi ok pana la un anumit nivel dar am vazut proiecte care s-au gatuit teribil din cauza modului de lucru tip musuroi si asa cum s-a mentionat mai sus la un moment dat se cer resurse exponential. de aceea e bine sa mergi in general pe solutii moderne, scalabile. poate nu pentru proiectul asta cu cerinte fixe dar pentru viitor e bine sa iei in considerare si alte lucruri.


Daca raspunsul nu te multumeste, probabil nu ai pus intrebarea potrivita.
Registered linux user #542751

Offline

 

#5 05 Mar 2016 15:09:39

Alexandru.Cucu
Administrator
Locaţie: -21.8021247, -154.6975949
Înregistrat: 17 Jun 2008
Mesaje: 6756
Site web

Re: [REZOLVAT] Arhitectura server shop online - pareri

Bine ai revenit smile

Eu sustin parerea lui Guletz.
Porneste pe ideea de scalabilitate si HA de la inceput, separa frontend de backend, separa development si testing de productie.
In general, seapara rolurile. Mai tarziu iti va fi mult mai usor sa scalezi, sa faci troubleshooting, etc.

+1 pentru Percona in loc de MySQL/MariaDB si HAproxy in loc de Nginx ca reverse proxy.

Daca ti se permite, mergi pe Nginx in loc de Apache smile

O mare provocare vor fi cautarile mai ales daca e un magazin cu multe produse. Aici ti-ar prinde bine Solr sau ceva similar.

Offline

 

#6 07 Mar 2016 09:12:46

bula20
Membru
Înregistrat: 18 Jan 2016
Mesaje: 498

Re: [REZOLVAT] Arhitectura server shop online - pareri

Mi s-a parut un site interesant care trateaza problema scalabilitatii , scalabilitate peste tot si in titlu http://highscalability.com/blog/2013/5/ … nel-i.html


Procesor:GenuineIntel ,Intel(R) Atom(TM) CPU  230   @ 1.60GHz, placa video intel G945,
2GB ram, 160GB hdd.

Offline

 

#7 07 Mar 2016 17:23:32

Claudiu.
Membru
Locaţie: Timisoara
Înregistrat: 08 Apr 2009
Mesaje: 633
Site web

Re: [REZOLVAT] Arhitectura server shop online - pareri

Am citit cu atentie ... exact de asta aveam nevoie ... niste sfaturi generale legat de solutia aleasa ...

Am sa incerc sa modific ce am facut pana acum si sa adaug cat mai mult din ce mi-ati recomandat in functie desigur de cat de flexibil va fi si clientul.

Mersi frumos baieti ...

Claudiu

Offline

 

#8 07 Mar 2016 18:29:26

guletz2002
Membru
Locaţie: Brasov
Înregistrat: 09 Sep 2009
Mesaje: 1512

Re: [REZOLVAT] Arhitectura server shop online - pareri

Cu placere Claudiu. Si poate ne arati dupa un timp  ce ai facut. Sigur ca nu o sa poti spune tot, da noi stim sa citim printre randuri smile

  Bafta, si te mai asteptam si cu alte intrebari.


Daca retea Nu e, atunci nimic nu e !!!
LiCo : Proud GNU/Linux User since 2003.

Offline

 

#9 07 Mar 2016 18:41:12

guletz2002
Membru
Locaţie: Brasov
Înregistrat: 09 Sep 2009
Mesaje: 1512

Re: [REZOLVAT] Arhitectura server shop online - pareri

bula20 a scris:

Mi s-a parut un site interesant care trateaza problema scalabilitatii , scalabilitate peste tot si in titlu http://highscalability.com/blog/2013/5/ … nel-i.html

Articolul se refera doar la o abordare ingusta, care este valabila intr-un anumit context. De catva ani, regula e divide et impera. Decat sa ai un sistem care sa mestece catralioane de taskuri, e mai fezabil sa imparti acel catralion pe mii de sisteme independente. Asta fac toti furnizorii de orice ... mail/web/stocare/orice. Cine nu intelege asta va deveni istorie.
  Oricum articolul e f generalist, fara sa exemplifice macar un caz concret.


Daca retea Nu e, atunci nimic nu e !!!
LiCo : Proud GNU/Linux User since 2003.

Offline

 

#10 07 Mar 2016 19:20:22

Alexandru.Cucu
Administrator
Locaţie: -21.8021247, -154.6975949
Înregistrat: 17 Jun 2008
Mesaje: 6756
Site web

Re: [REZOLVAT] Arhitectura server shop online - pareri

Daca mai aveti idei, nu ezitati sa le spuneti in continuare in subiect smile

Cred ca voi avea si eu de pus in picioare o infrastructura tot pentru un magazin pe Magento. La mine se cere clar sa fie HA si scalabila.

Offline

 

#11 07 Mar 2016 19:57:33

bula20
Membru
Înregistrat: 18 Jan 2016
Mesaje: 498

Re: [REZOLVAT] Arhitectura server shop online - pareri

guletz2002 a scris:

bula20 a scris:

Mi s-a parut un site interesant care trateaza problema scalabilitatii , scalabilitate peste tot si in titlu http://highscalability.com/blog/2013/5/ … nel-i.html

Articolul se refera doar la o abordare ingusta, care este valabila intr-un anumit context. De catva ani, regula e divide et impera. Decat sa ai un sistem care sa mestece catralioane de taskuri, e mai fezabil sa imparti acel catralion pe mii de sisteme independente. Asta fac toti furnizorii de orice ... mail/web/stocare/orice. Cine nu intelege asta va deveni istorie.
  Oricum articolul e f generalist, fara sa exemplifice macar un caz concret.

Ca si fapt concret inlocuia si elimina partea de net din kernel prin proiectul http://dpdk.org/ pentru o procesare rapida a packetelor eliminind buferul din spatiul de kernel,  pentru cei cu placi de retea compatibile se poate testa sau se poate rescrie intregul driver.
Daca instalati asa ceva nu veti mai putea folosi multe din functiile clasice din kernel, firewall, port forwarting acestea fiind mutate in spatiul de user si vor trebui create aplicatii separat.
Citind mai departe aici http://www.intel.com/content/www/us/en/ … brief.html
se face o comparatie de viteza de transfer avind doua implementari de kernel cea clasica cu stiva de net in kernel, Data net development kit de la in tel.
Stiva de net in kernel (clasic)            viteza de transfer             12.2 Mpps
Data Plane Development Kit              viteza de transfer              35.2 Mpps

Editat ultima oară de bula20 (07 Mar 2016 21:00:33)


Procesor:GenuineIntel ,Intel(R) Atom(TM) CPU  230   @ 1.60GHz, placa video intel G945,
2GB ram, 160GB hdd.

Offline

 

#12 07 Mar 2016 20:47:25

geosoft1
Membru
Locaţie: Râmnicu Vâlcea
Înregistrat: 21 Sep 2009
Mesaje: 3735

Re: [REZOLVAT] Arhitectura server shop online - pareri

in completarea colegului @guletz2002, da, e o solutie pentru un caz particular, daca vrei o 'gaselnita' interesanta dar care nu inseamna scalabilitate si nicidecum nu poate fi considerata o solutie pentru probleme serioase. scalablitatea trebuie obtinuta din programul de aplicatie si/sau din aplicatia server nu din kernel.

Editat ultima oară de geosoft1 (07 Mar 2016 20:48:19)


Daca raspunsul nu te multumeste, probabil nu ai pus intrebarea potrivita.
Registered linux user #542751

Offline

 

#13 07 Mar 2016 21:16:49

guletz2002
Membru
Locaţie: Brasov
Înregistrat: 09 Sep 2009
Mesaje: 1512

Re: [REZOLVAT] Arhitectura server shop online - pareri

@bula20, am văzut în atâția ani comparații și teste intre tehnologia X și Y, ca nu mai dau nici 2 bani pe asa ceva. Sunt complet irelevante, dacă nu se explica în detaliu, metodologia de testare(ce cpu/memorie /hardware, ce S-o, ce kernel,  e ala stock, ce alte setări sunt făcute fata de valorile implicite, șamd.) inclusiv load-ul aplicat. Ca una e dacă am pachete cu mtu 9000 și alta e cu mtu 1500. Una e ca pun un singur flow tcp și alta e dacă pun N flow-ri udp. Deci la ce ne raportam... "setări conform unor proceduri de buna practica în IT". Suna frumos, dar nu e și relevant.

Editat ultima oară de guletz2002 (07 Mar 2016 21:18:02)


Daca retea Nu e, atunci nimic nu e !!!
LiCo : Proud GNU/Linux User since 2003.

Offline

 
Feed

Antet forum

Powered by FluxBB