web cluster cu propriile lor mâini - Gregory Dobryakov

Bitrix a prezentat astazi noua solutie - „web cluster“ Pentru cei care nu știu - voi explica ca acest lucru poate găzdui vysokoposeschaemy proiect nu este pe unul, ci pe mai multe servere, și în orice moment pentru a adăuga noi servere pentru a accelera site-ul tau. Și, în condiții de siguranță retrage ca orice server pentru întreținere, upgrade-uri, sau în caz de eșec. Desigur, îmi place primul lor concurent (în persoana Umisoft), în primul rând a fost necesar pentru a afla ce le oferă în mod fundamental nouă piață.

Nimic. Într-un sens bun, nimic. Bitrix oprit prosti si „reinventeze roata“ - se pare că a primit aceeași echipă tehnologie inteligentă, astfel încât în ​​loc de „bicicletă“ și ei au făcut totul de când a decis să facă oamenii normali. În acest post vă voi spune în cuvinte simple - ceea ce au făcut exact, și cum se repetă același lucru în proiectul dumneavoastră.

Luați în considerare partea principală a cluster-ului:

0. Cloud - Cloud, o colecție de servere pe care toate acestea se vor juca.
1. egalizatorul de încărcare - un membru al unei echilibrist de sarcină.
2. MySQL replicare - un tip popular de grupare a bazei de date.
3. Sistemul de fișiere de rețea - un fișier de stocare distribuit.

După cum sa menționat mai sus, cluster - este un set de orice număr de servere web. Ele pot îndeplini aceeași sarcină sau diferite, în funcție de scopul. Să începem cu serverul: aici pentru ei sunt încurajați să folosească mașini virtuale aws.amazon.com. Nu aș spune că aceasta este o soluție rezonabilă: virtualke a priori lent, dar punctul cheie aici - simplitatea creării lor. El a apăsat butonul - pentru a crea. Și nu este implicit „masina si adaptata in mod specific pentru nevoile dumneavoastra. Puteți crea programat sau chiar încărca dinamic crește. Hit-ul site-ul sub un flux puternic de vizitatori - este p-p-p-Al și a creat mai multe mașini noi. încărcare Încheiat - aparatul este oprit. Frumusețe.

Desigur, ca un cluster de servere poate acționa orice server de pe Internet: chiar și virtuale, chiar fier. Pentru informații: personale „amazonovsky“ grup liber poate face singur orice persoană care nu este prea leneș pentru a începe instalarea o distribuție proaspătă Server Ubuntu.

Echilibrist nevoie pentru a distribui cererile primite de vizitatori între servere cluster. După cum se propune utilizarea Nginx, Google „raportul de încărcare Nginx“ și a obține o grămadă de link-uri către exemple gata făcute.

stocarea de fișiere distribuit necesare pentru a se asigura că toate serverele au același set de fișiere. În cazul în care utilizatorul a încărcat imagine „undeva“ pe unul dintre serverele, ar trebui să apară peste tot. De ce? Deoarece informații alți utilizatori pot fi date la un alt server. Pentru a pune în aplicare tovarășii de Bitrix recomanda „csync2“ - funcționează în fundal și prostește sincronizează fișiere între servere care peste tot a fost acelasi.

Totul. Deci ai fi făcut cluster-ului. Și acum - Reglarea fină:

Primul bloc de poticnire pe care executați în timp ce traducerea proiectul său (mă refer proiectul la un alt CMS sau samopisny) pe acest model - va fi în operațiunile de baze de date. Linia de jos este faptul că cererea trebuie să fie în măsură să se facă distincția între solicitările „scriere“ de la „citire“. Cu alte cuvinte, INSERT, UPDATE, DELETE, și ca CREATE, ALTER, și declarații DROP care urmează să fie efectuate numai pe master. interogări SELECT, în principiu, pot fi transportate oriunde. Pentru a reinstrui motorului pe acest mod de gândire, ea are nevoie de timp foarte tangibil.

În plus, bitriksoidy veni cu o piesă interesantă: ca datele de la master la slave curge departe cu o oarecare întârziere, au învățat sistemul să recunoască „critice“ interogări de scris. La o astfel de cerere, sunt luate toate datele până la sfârșitul anului de execuție php-script-uri (SELECT) numai cu comandantul pentru a se evita erorile din cauza foarte întârziere.

Al doilea gândul că trebuie să fie luate în considerare - acesta este un server dedicat pentru sarcina. Nu este neapărat același server și le încarcă aceleași sarcini. Să unele dintre ele servesc, de exemplu, un magazin online, iar pe de altă parte - colectează statistici.

A treia idee - clustering memcached. Bitrix l-au dus la începutul prezentării, dar îl puteți rula mai târziu. Avantajul său este că acesta este direct potrivit cu Nginx ar putea (amintiți-vă primul punct?) și vă permite să dea paginile stocate în memoria cache (sau blocuri), de fapt, direct din memoria RAM. Sarcina ta - exact problema pe care scripturile - pune conținutul stocat în memoria memcached.

Cum de a dezvolta un proiect pe un cluster? O întrebare comună pentru reprezentanții studiourilor web. Da, exact la fel ca pe un server normal. Cluster pentru tine de a fi doar un mare calculator, care tocmai te duci peste ssh și de muncă.