14 articole publicate. Urmeaza mai multe
      

Uniserver vs. Servicii Distribuite


plesk-expandIn urma cu scurt timp am inceput sa povestim de alegerea sistemului de operare, ce alegem si din ce motive. Dupa care am trecut la doua dintre cele mai folosite panouri de control si am povestit de avantajele si dezavantajele fiecaruia.

Continuand pe fagasul logic, acum ar fi cazul sa povestim despre gazduire in sistem uniserver si servicii distribuite. Ambele au avantaje si dezavantaje, atat pentru hoster cat si pentru clientul acestuia. Le vom parcurge pe toate, urmand sa tragem o concluzie de final vizavi de raportul avantaje/pret.

Astfel, incepem cu cel mai folosit sistem de gazduire si anume cel uniserver. In primul rand, ce inseamna uniserver? Uniserver (dupa cum sugereaza si numele) este un server de sine statator care ruleaza absolut toate serviciile necesare gazduirii site-urilor sau aplicatilor. Simplu, nu? Serviciile Web, DNS, Mail, baze de date ruleaza pe un singur server. Toate la un loc, pe principiul toate merele in acelasi cos. Imi pare rau, nu m-am putut abtine de la aceasta mica rautate de inceput :)

Sistemul uniserver este insa cel mai raspandit la aceasta ora (chiar daca tendinta este de a trece la servicii distribuite), asa ca hai sa vedem care sunt avantajele acestui sistem.

In primul rand usurinta in instalare/implementare – ai instalat sistemul de operare si panoul de control, ai configurat serviciile si cam atat, poti sa te apuci sa adaugi clienti. In cele mai multe cazuri procesul este foarte usor si rapid, lucru care avantajeaza pe foarte multi administratori de sistem si hosteri.

In aceeasi ordine de idei, alt avantaj ar fi costurile reduse – fiind nevoie de un singur server pentru a putea incepe gazduirea de noi clienti. Costurile depind de configuratia hardware a serverului (fie ca este colocat, fie ca este dedicat), dar ele sunt mai reduse din simplul motiv ca e nevoie de mai putin hardware. Adevarul este insa ca acest avantaj poate fi unul fals pentru ca, desi e nevoie de un singur server, acesta are nevoie de mai multe resurse pentru a putea rula toate serviciile.

Astfel avem si primul mare dezavantaj: Costul hardware-ului. Pentru a rula toate serviciile e nevoie de o namila de server, mai ales la un numar mare de clienti gazduiti. Si un astfel de server costa multisor.

Urmatorul dezavantaj este ceea ce numim in limbaj profesional availability – Sarim peste situatia in care un HDD face ca popcorn-ul, caci se presupune ca exista un RAID (daca nu exista, stimate client, e cazul sa schimbi providerul iar tu hosterule, ar trebui sa inchizi pravalia si sa te apuci de altceva) sau cea in care se strica niste rami (inlocuirea lor se face usor, chiar daca dureaza) si presupunem ca procesorul serverului incepe sa fumege sau sistemul de operare incepe sa sughite din varii motive; sau exista un load imens pe server (disk I/O mare de exemplu)

Ei, in cazul asta se cam face intuneric pentru cateva sute de clienti, care nu mai pot folosi/accesa site-ul, mailul sau fisierele lor. Destul de urat si suparator, nu?

Si sa nu uitam, durata de viata a unui server este de aproximativ un an, dupa care se inlocuieste. Alta mare durere de cap. Oare sa mentionam si situatia in care serverul este compromis? Totul se afla pe acel server, deci va las pe voi sa ghiciti rezultatul. (bineinteles ca exista backup – daca nu exista citeste cu cateva randuri mai sus; dar iarasi ne lovim de downtime si multe batai de cap)


***

Si acum vine si versus-ul: Serviciile Distribuite. Le scriu cu litere mari pentru ca le merita. E urmatorul pas logic pentru orice companie de hosting si pentru ca e frumos sa argumentezi ce zici, iata-le ca vin:

In primul rand, ce spuneam la inceput legat de toate merele in acelasi cos. Faptul ca serviciile se afla pe servere diferite se traduce automat printr-o securitate crescuta. In cazul in care este compromis un server, doar serviciul respectiv este afectat, care este in majoritatea cazurilor doar cel Web (multe servicii se afla in backend).

Daca tot suntem la capitolul avantaje, trebuie sa amintim de upgrade-uri, care se fac mult mai usor si in acest caz doar un serviciu este indisponibil pentru o scurta perioada de timp. (si upgrade-urile se fac doar noaptea) – totodata acest upgrade/update si setarile se fac o singura data pe serverul care se ocupa de serviciul respectiv, nu pe fiecare server in parte.

Marele avantaj al serviciilor distribuite este consumul mai mic de resurse per server. Altfel spus, serverele nu devin gatuite. Disk I/O mai mic, procesor care respira mai usor si per ansamblu serverele functioneaza mult mai linistit.

Nu ar fi completa lista de avantaje daca nu am mentiona protectia in cazul atacurilor de tip DoS, moment in care doar un server este afectat. Deci daca un site este atacat macar functioneaza emailul si restul serviciilor.

Si sa nu uitam dezavantajele, doar vrem sa fim corecti, nu? In primul rand costurile. Un calcul simplu zice ca daca fiecare serviciu are propriul server, costul serverului se inmulteste cu suma serviciilor. Pentru multi hosteri acest lucru poate fi descurajant. Daca facem insa un calcul pe termen lung (se presupune ca cei care fac hosting o vor face pentru mult timp) investitia pare sa merite.

Cel mai suparator dezavantaj este insa instalarea si implementarea sistemului multi-server. Chiar si pentru un sysadmin experimentat poate sa fie o bataie de cap pentru multa vreme – asta pana incepe sa functioneaze sistemul in parametrii optimi.

Si ar mai fi managementul sistemului, care poate da multe dureri de cap. Sau poti folosi de exemplu Parallels Plesk Expand (pe care il folosim si noi) care face managementul centralizat al tuturor serverelor. Partea interesanta este ca pentru client totul este transparent: Poate sa aiba X domenii pe un server Linux, Y domenii pe un server Windows. Si managementul lor le face din acelasi panou central. Interesant, nu? :)

In concluzie, orice hoster trebuie sa ia in calcul doar doua variabile: Cost si beneficii. Si in ultima instanta cat de repede si de mult vrea sa-si dezvolte propria afacere.

 

  • bogdanf
    Daca rulezi pe fiecare server un singur serviciu, atunci ai avantajul ca poti sa iti optimizezi tot serverul ca sa ruleze serviciul respectiv cat mai bine. De exemplu, in cazul unui server de MySQL, poti sa incepi de la configuratia hardware (cel mai probabil niste disk-uri mai rapide, un controller de RAID mai bunicel), la file system si sa mergi pana la optimizari in sistemul de operare, la network sau chiar kernel.

    Daca chiar vrei sa reduci riscul intreruperilor de servicii, singura solutie e sa implementezi o solutie de high availability si aia nu o faci decat intr-un mediu distribuit.

    Alt avantaj pe care il ai folosind o infrastructura cu sisteme distribuite intr-un mediu eterogen (in care ruleaza si Windows si Linux de exemplu) e ca vei putea profita din plin de avantajele fiecarui sistem de operare si de aplicatiile care ruleaza pe ele. De exemplu, probabil vei rula pe Windows doar IIS pentru clientii care doresc ASP/ASP .NET (eventual si PHP si Perl in caz ca au nevoie de ele pe aceleasi site-uri), un serviciu de FTP si eventual pe alta masina ceva server de MSSQL, pe cand MySQL-ul si serverul de mail o sa ruleze pe ceva masini cu Linux (atat din motive de performanta cat si pentru facititatile pe care le ofera in plus aplicatiile care ruleaza pe acest sistem de operare, mai ales in cazul serviciilor de mail dar si din motive de licentiere).

    In momentul de fata cam toti hosterii mai maricei distribuie servicii pentru ca cam toti au cel putin serviciul de DNS pe cel putin 2 masini, de obicei in sistem master/slave.
  • @dt riscul sa pice un server centralizat , avand in vedere ca ruleaza de obicei un singur serviciu este mic. normal aici trebuie sa ai asigurat de bun simt un raid , un ups, respectiv generator si clima adecvata. avantajul totusi daca pica un server de mysql este ca va functiona totusi contentul static. analogia este sa it mearga internetul cu pierderi/in reprize fata de cazul in care nu ar merge deloc.

    cred ca este mult preferat sa iti functioneze un serviciu defectuos decat deloc. nu toate aplicatiile depind de baza de date si multe din ele se pot configura sa foloseasca un sistem de cache ceea ce reduce si consumul de resurse catre serverul de mysql.


    @Florin da, chiar si noi folosim unele din servicii instalate pe masini virtuale insa nu trebuie confundate masinile virtuale care le achizionati de la "o firma obisnuita" de hosting unde resursele dunt limitate de multe ori si de catre abonamentul contractat la valori relativ mici pentru servicii "enterprise". nodul de vps-uri trebuie de asemenea sa indeplineasca conditiile de bun simt de mai sus. avantajul in a folosi serviciile pe servere virtuale este ca permit live modificarea resurselor (memorie/spatiu pe disc) si chiar migrarea pe alte servere de masini virtuale aproape fara downtime in cazul in care resursele globale nu mai sunt suficiente pe serverul actual.

    idem pe serverul virtual nu depinzi de diverse drivere de sata de ex care s-ar putea sa nu functioneze in cazul in care muti hdd-urile dintr-un server "crepat" in unul nou. teoretic si kernelul sistemelor virtuale este mai optimizat decat cel al serverelor "nevirtuale".
  • A încercat cineva să distribuie serviciile folosind maşini virtuale ?
  • dt
    Daca imi este ingaduit, pot sa mai spun eu un dezavantaj pentru "Sistemele Distribuite" :P Daca distribuirea se face la nivel de server fizic, atunci cel mai probabil numarul de conturi gestionat de un server/serviciu este mult mai mare decat in cazul uniserver. Iar daca acel server "pica", numarul clientilor afectati este evident, mult mai mare. Acum depinde de serviciu - mysql de exemplu, daca nu functioneaza, o sa genereze erori in paginile web chiar daca serverul web, aflat pe alt server fizic, functioneaza foarte bine.
blog comments powered by Disqus