1s Bitrix webfürt. Web fürt – valódi alkalmazási tapasztalat. Hogyan veheti igénybe a képzést

14.05.2020 Vélemények

Bármely új vagy futó projekt a "" webhelyen megjeleníthető cserélhető kiszolgálók webfürtjeként.

A fő feladatok, amelyeket ez a projektkonfiguráció lehetővé tesz:

  1. A forgalom növekedésével gyorsan hozzáadhat új kiszolgálókat a fürthöz.
  2. Ha valamelyik fürtkiszolgáló meghibásodik, a rendszer továbbra is folyamatosan szolgálja ki az ügyfeleket.
  3. A terhelés, a forgalom, az adatok kiegyensúlyozása több szerver között.
  4. A rendszer lehetővé teszi a lövöldözést biztonsági mentések speciálisan kijelölt fürtcsomópontokból, anélkül, hogy ez befolyásolná a webhely működését.

"Földrajzi webfürt"

A „földrajzi webfürt” növeli a projekt hibatűrését, és biztosítja az adatközponttól való függetlenséget. A különböző városokban vagy országokban található webfürtök több csoportja egyesül különböző adatközpontokban. Egy adatközpont meghibásodása esetén azonnal üzembe helyez egy másikat, anélkül, hogy vissza kellene állítania egy „biztonsági másolatot”.


A földrajzi webfürt lehetővé teszi teljes kiszolgálócsoportok létrehozását. Mindegyik csoportnak megvan a saját mestere – egymástól független adatközpontokban. Így webhelyei és vállalkozása teljes mértékben védettek maguknak az adatközpontoknak a hozzáférhetetlenségével szemben.

Az „1C-Bitrix: Web Cluster” a következő technológiák kombinációja:

  1. Függőleges szilánkolás(modulok áthelyezése külön MySQL szerverekre)
  2. MySQL replikáció és terheléselosztás a szerverek között
  3. Elosztott adatgyorsítótár(memcached)
  4. Munkamenet folytonosság a webszerverek között(munkamenetek tárolása adatbázisban)
  5. Webszerver-fürtözés:
  • Fájl szinkronizálás
  • Terheléselosztás a szerverek között
  • Adatközpont függetlenség(egyik adatközpont meghibásodása esetén azonnal működésbe lép egy másik, „biztonsági mentés” visszaállítása nélkül)

  • Hogyan működik

    1. Függőleges szilánkolás

    Egy webalkalmazás-adatbázis felosztása két vagy több adatbázisra külön modulok szétválasztásával, a webalkalmazás logikájának megváltoztatása nélkül.





    A következő termékmodulok külön adatbázisokban helyezhetők el:

    2. MySQL replikáció és terheléselosztás a szerverek között

    A „mester - slave” séma a MySQL segítségével valósul meg.

    Az 1C-Bitrix: Site Management platform lehetővé teszi a terhelés rugalmas kiegyenlítését a replikációban részt vevő szerverek között.



    Főbb jellemzők:
    • rugalmas SQL terheléselosztás
    • könnyű kezelhetőség
    • olcsó és gyors korlátlan méretezés
    • online biztonsági mentés
    • nincs szükség a webalkalmazás logikájának módosítására

    3. Elosztott adatgyorsítótár (memcached)

    Az „1C-Bitrix: Web Cluster” lehetővé teszi, hogy memcache-kiszolgálók készletét használja az adatgyorsítótárral való együttműködéshez.



    Ez biztosítja:
    • magas hatásfok- a gyorsítótár webes alkalmazás általi központosított használata miatt
    • megbízhatóság- a gyorsítótárazási alrendszer ellenállása az egyes összetevők meghibásodásával szemben
    • korlátlan skálázhatóság- új memcached szerverek hozzáadásával

    4. A munkamenetek folyamatossága a webszerverek között (a munkamenetek tárolása adatbázisban)

    A felhasználói munkamenetek adatainak adatbázisban való tárolásának képessége biztosítja a munkamenet „átláthatóságát” a fürt összes webkiszolgálója számára:
    1. Az egyik szerveren történő engedélyezést követően a felhasználót az összes többi szerverre jogosultnak kell tekinteni.
    2. És fordítva – a munkamenet vége bármely szerveren azt jelenti, hogy az összes szerveren egyszerre véget ér.

    A Web Cluster modul olyan technológiai megoldások kombinációja, amelyek lehetővé teszik, hogy egy webhelyet több szerver között terjeszthessen, és ezáltal több probléma is megoldható: magas rendelkezésre állás webhelyet, méretezését növekvő terhelés mellett, kiegyenlítve a terhelést, a forgalmat, az adatokat több szerver között. A webfürtökkel növelheti projektje teljesítményét, méretezhetőségét és megbízhatóságát!

    Milyen feladatokhoz van szüksége webfürtre?

    Egy fürtre van szükség a terhelés növekedésével és a szolgáltatási stabilitás növelésével kapcsolatos problémák rugalmas megoldásához. Így a forgalom növekedésével gyorsan hozzáadhat új szervereket a fürthöz. Ha pedig valamelyik fürtszerver meghibásodik, a rendszer továbbra is folyamatosan szolgálja ki a látogatókat/klienseket. Ugyanilyen fontos feladat a terhelés, a forgalom és az adatok kiegyensúlyozása több szerver között. A rendszer ugyanakkor lehetővé teszi, hogy biztonsági másolatot készítsenek a speciálisan kijelölt fürtcsomópontokról anélkül, hogy az oldal működését befolyásolnák, a gépek kikapcsolása, lassítása nélkül. A földrajzi elosztásnak külön feladatai vannak. Amikor egy földrajzi webfürtöt futtat, teljes kiszolgálócsoportok létrehozását teszi lehetővé. Mindegyik csoportnak megvan a saját mestere – egymástól független adatközpontokban. Így az Ön weboldalai és vállalkozása teljes mértékben védettek maguknak az adatközpontoknak és kommunikációs csatornáknak a hozzáférhetetlenségétől.

    Hogyan működik az 1C Bitrix webfürt?

    Nézzük meg, milyen technológiákat használ az 1C Bitrix webfürt:

    • Az adatbázis számára ez függőleges szilánkolás(modulok áthelyezése külön MySQL szerverekre)
    • MySQL replikációÉs terhelés elosztás szerverek között
    • Megosztott adatgyorsítótár(memcached)
    • A munkamenet folytonossága webszerverek között (munkamenetek tárolása adatbázisban)

    Webszerver-fürtözés a fájlszinkronizálás, a szerverek közötti terheléselosztás, az adatközponttól való földrajzi függetlenség miatt következik be (egy adatközpont meghibásodása esetén egy másik azonnal működésbe lép, biztonsági mentések és egyéb műveletek szükségessége nélkül, ez valódi forrócsere).

    A nagy terhelés titkai az 1C Bitrixen webfürttel

    1. MySQL Sharding

    Egy webalkalmazás-adatbázis felosztása két vagy több adatbázisra külön modulok szétválasztásával, a webalkalmazás logikájának megváltoztatása nélkül.



    Külön adatbázisokban a következő termékmodulok helyezhetők el: , .

    2. MySQL replikáció

    A „master slave” sémát a MySQL / MariaDB segítségével valósítják meg. Ez a technológiai halom meglehetősen jól leírt és széles körben használatos.

    3. Kiegyenlítő a szerverek közötti terheléselosztáshoz

    Nézzük meg közelebbről az egyensúlyozót. Az 1C-Bitrix: Site Management platform a Web Cluster funkcióban lehetővé teszi a terhelés rugalmas kiegyenlítését a replikációban részt vevő szerverek között.



    A következőket kapjuk Főbb jellemzők: rugalmas terheléselosztás a MySQL-ben, egyszerű adminisztráció egyetlen felületről, gyors korlátlan méretezés további költségek nélkül, forró biztonsági mentés (valójában ez: biztonsági másolatok készítése valós állapot). Mindezek a funkciók nem igénylik a webalkalmazás logikájának módosítását, ebben a kiadásban már minden működik.

    4. Elosztott adatgyorsítótár (kezeli: memcached)

    A technológia lehetővé teszi az adatok gyorsítótárba helyezését véletlen hozzáférésű memória sok elérhető szerver. Az elosztás az adatok kulcskivonat-értékek szerinti felosztásával valósul meg, hasonlóan a hash tábla socketekhez. Az ügyfélkönyvtár az adatkulcs segítségével kiszámítja a hash-t, és ennek alapján kiválasztja a megfelelő szervert.


    Ez biztosítja a nagy hatékonyságot - a gyorsítótár webes alkalmazás általi központosított használatának köszönhetően, valamint a megbízhatóságot - a gyorsítótárazási alrendszernek köszönhetően az egyes komponensek meghibásodásával szemben ellenálló, miközben garantálja a korlátlan skálázhatóságot - új memcached szerverek hozzáadásával a terhelés növekedésével.

    5. A munkamenet folytonossága

    A munkamenetek webszerverek közötti folytonosságának megszervezéséhez engedélyezni kell a munkamenetek tárolását az adatbázisban, és maguk az adatbázisok replikálódnak, a fent leírtak szerint.



    A felhasználói munkamenet adatok adatbázisban való tárolásának képessége biztosítja a munkamenet „átláthatóságát” a fürt összes webszervere számára, mert Az egyik szerveren történő engedélyezést követően a felhasználót az összes többi szerverre jogosultnak kell tekinteni. És fordítva, a munkamenet vége után bármely kiszolgálón ez azt jelenti, hogy az összes szerveren egyszerre véget ér.

    A Bitrix ma bemutatta új megoldását, a „web cluster”-et. Azoknak, akik nem értenek hozzá, elmagyarázom, hogy ez a dolog lehetővé teszi, hogy egy nagyon látogatott projektet ne egy, hanem több szerverre helyezzen el, és bármikor hozzáadjon új szervereket az oldal felgyorsítása érdekében. Az is biztonságos, hogy bármilyen szervert eltávolítsunk javítás, frissítés vagy meghibásodás miatt. Természetesen első versenytársukként (amelyet a Yumisoft cég képvisel) először is meg kellett találnom, milyen alapvetően újdonságokat kínálnak a piacon.

    Semmi. Semmi jó értelemben. Bitrix abbahagyta a hülyéskedést és a „kerék újrafeltalálását” – láthatóan egy okos technológus is bekerült a csapatba, így a „kerékpárok” helyett mindent úgy csináltak, mint a normális emberek. Ebben a bejegyzésben elmondom egyszerű szavakkal– pontosan mit csináltak, és hogyan ismételheti meg ugyanazt a projektben.

    Nézzük a klaszter főbb részeit:

    0. Cloud – felhő, szerverek halmaza, amelyen mindez futni fog.
    1. Load balancer – bejövő terheléselosztó.
    2. A MySQL replikáció az adatbázis-fürtözés egyik népszerű típusa.
    3. Hálózati fájlrendszer – elosztott fájltárolás.

    Mint fentebb említettük, a fürt tetszőleges számú webkiszolgáló halmaza. Elvégezhetik ugyanazt a feladatot, vagy a céloktól függően különbözőeket. Kezdjük a szerverekkel: itt javasolt a használata virtuális gépek aws.amazon.com. Nem mondanám, hogy ez egy ésszerű megoldás: a virtuális gépek eredendően lassúak, de a legfontosabb itt a létrehozásuk egyszerűsége. Megnyomtam a gombot és létrejött. És nem egy alapértelmezett gép, hanem egy kifejezetten az Ön igényei szerint konfigurált. Létrehozhatja ütemezetten, vagy akár dinamikusan is, ahogy a terhelés nő. Webhelye hatalmas látogatói áramlás alá került – r-r-r-az, és számos új gépet hozott létre. A terhelés véget ért - a gépek kikapcsoltak. Szépség.

    Természetesen az internet bármely szervere működhet fürtszerverként: legyen az virtuális vagy hardveres. Referenciaként: bárki, aki nem lusta elkezdeni a legújabb Ubuntu Server disztribúció telepítését, ingyenesen elkészítheti saját személyes „Amazon” fürtjét.

    Kiegyenlítőre van szükség a webhely látogatóitól érkező bejövő kérések elosztásához a fürtkiszolgálók között. Javasoljuk, hogy használja az nginx-et, a Google „nginx load balance”-t, és kap egy csomó linket a kész példákra.

    Adatbázis-replikációra van szükség ahhoz, hogy adatokat írjunk egy szerverre (ezt hívják masternek), és kiolvassuk az összes többiről (illetve szolga). Mivel általában kevés írási és sok olvasási művelet van, a slave-ek számának egyszerű növelésével korlátlanul növelheti a projekt „teljesítményét”. Az adatok a mestertől a szolgák felé áramlanak háttér pusztán a MySQL használatával, és a szolgák bármikor hozzáadhatók és eltávolíthatók. Google "mysql replikáció", és kérjen utasításokat.

    Elosztott fájltárolásra van szükség annak biztosításához, hogy minden szerveren azonos fájlkészlet álljon rendelkezésre. Ha a felhasználó feltöltött egy képet „valahova” az egyik szerverre, akkor annak mindenhol meg kell jelennie. Miért? Mert előfordulhat, hogy információkat adnak át más felhasználóknak egy másik szerverről. A megvalósításhoz a Bitrix elvtársak a „csync2”-t ajánlják - a háttérben működik, és hülyén szinkronizálja a fájlokat a szerverek között, hogy mindenhol ugyanaz legyen.

    Minden. Tehát létrehoztál egy klasztert. És most – finomhangolás:

    Az első buktató, amelybe belebotlik, amikor projektjét (úgy értem, hogy egy másik CMS-en vagy egy saját maga által írt projekten keresztül viszi át) egy ilyen modellre, az adatbázis-műveletekben lesz. A lényeg az, hogy az alkalmazásnak képesnek kell lennie megkülönböztetni az „írási” kéréseket az „olvasási” kérésektől. Más szóval, az INSERT, UPDATE, DELETE, valamint a CREATE, ALTER és DROP parancsokat csak a masteren kell végrehajtani. SELECT lekérdezések elvileg bárhol elvégezhető. Elég sok időbe telik, amíg a motorját áttanítja erre a gondolkodásmódra.

    A Bitrixoidok ráadásul egy érdekességgel is előrukkoltak: mivel az adatok némi késéssel áramlanak a mastertől a slave-ig, megtanították a rendszert a „kritikus” írási kérések felismerésére. Egy ilyen kérés után a PHP szkriptek végrehajtásának legvégéig minden adatot csak a mestertől veszünk el (SELECT), hogy elkerüljük az ugyanezen késleltetésből adódó hibákat.

    A második megfontolandó ötlet a szerverek feladatokhoz való hozzárendelése. Nem szükséges minden szervert egyformavá tenni, és ugyanazokat a feladatokat hozzárendelni. Egy részük szolgáljon ki például egy webáruházat, a másik rész pedig gyűjtsön statisztikákat.

    A harmadik gondolat a memcached klaszterezés. A Bitrix a bemutató elején szerepelt, de később elindíthatja. Előnye, hogy közvetlenül csatlakozik az nginx-hez (emlékszel az első pontra?), és lehetővé teszi a gyorsítótárazott oldalak (vagy blokkok) közvetlen kiszolgálását a RAM-ból. Az Ön feladata - vagy inkább a szkriptjei feladata - az, hogy a gyorsítótárban tárolt tartalmat helyezze el a memcachedben.

    Hogyan lehet projektet fejleszteni egy klaszteren? Gyakran Ismételt kérdés webstúdiók képviselőinek. Igen, pontosan ugyanaz, mint a mostani rendes szerver. A fürt csak egy nagy számítógép lesz, amelyre ugyanúgy ssh-n keresztül jelentkezik be, és működik.

    Mentor vagyok informatikai projektekben. Ez azt jelenti, hogy ha Ön tulajdonos vagy menedzser, segíthetek vállalkozását új magasságokba emelni. Tegyünk rendet, értsük meg a csapat motivációját, alkalmazzuk az eszközöket és érjünk el konkrét célokat. Nem tanítom meg üzletelni, csak segítek megkerülni a bőkezűen szétszórt gereblyéket. .

    A Web Cluster modul olyan technológiai megoldások kombinációja, amelyek lehetővé teszik, hogy egy webhelyet több szerver között terjeszthessen, ezáltal több probléma is megoldható: a webhely magas rendelkezésre állása; méretezése növekvő terhelés mellett; terhelés, forgalom, adatok kiegyenlítése több szerver között. Építsen fel saját webfürtöt – növelje projektje teljesítményét, méretezhetőségét és megbízhatóságát!

    Az 1C-Bitrix: Site Management bármely új vagy futó projektje bemutatható cserélhető szerverek webfürtjeként.
    A fő feladatok, amelyeket ez a projektkonfiguráció lehetővé tesz:

    • A forgalom növekedésével gyorsan hozzáadhat új kiszolgálókat a fürthöz
    • Ha valamelyik fürtkiszolgáló meghibásodik, a rendszer továbbra is folyamatosan szolgálja ki az ügyfeleket
    • A terhelés, a forgalom, az adatok kiegyensúlyozása több szerver között
    • A rendszer lehetővé teszi biztonsági másolatok készítését a speciálisan kijelölt fürtcsomópontokról anélkül, hogy ez befolyásolná a webhely működését.

    "Földrajzi webfürt"

    A „földrajzi webfürt” növeli a projekt hibatűrését, és biztosítja az adatközponttól való függetlenséget. A különböző városokban vagy országokban található webfürtök több csoportja egyesül különböző adatközpontokban. Egy adatközpont meghibásodása esetén azonnal üzembe helyez egy másikat, anélkül, hogy vissza kellene állítania egy „biztonsági másolatot”.


    A földrajzi webfürt lehetővé teszi teljes kiszolgálócsoportok létrehozását. Mindegyik csoportnak megvan a saját mestere – egymástól független adatközpontokban. Így webhelyei és vállalkozása teljes mértékben védettek maguknak az adatközpontoknak a hozzáférhetetlenségével szemben.
    Az „1C-Bitrix: Web Cluster” a következő technológiák kombinációja:

    • Függőleges felosztás (modulok áthelyezése külön MySQL szerverekre)
    • MySQL replikáció és terheléselosztás a szerverek között
    • Elosztott adatgyorsítótár (memcached)
    • A munkamenetek folyamatossága a webszerverek között (a munkamenetek tárolása adatbázisban)
    • Webszerver-fürtözés:
    • Fájl szinkronizálás
    • Terheléselosztás a szerverek között
    • Függetlenség az adatközponttól (egyik adatközpont meghibásodása esetén azonnal működésbe lép egy másik, anélkül, hogy vissza kellene állítania egy „biztonsági másolatot”)

    Hogyan működik

    1. Függőleges szilánkolás

    Egy webalkalmazás-adatbázis felosztása két vagy több adatbázisra külön modulok szétválasztásával, a webalkalmazás logikájának megváltoztatása nélkül.

    A következő termékmodulok külön adatbázisokban helyezhetők el:

    • "Webes analitika"
    • "Keresés"

    2. MySQL replikáció és terheléselosztás a szerverek között

    A mester-szolga sémát a MySQL segítségével valósítják meg.
    Az 1C-Bitrix: Site Management platform lehetővé teszi a terhelés rugalmas kiegyenlítését a replikációban részt vevő szerverek között.


    Főbb jellemzők:

    • rugalmas SQL terheléselosztás
    • könnyű kezelhetőség
    • olcsó és gyors korlátlan méretezés
    • online biztonsági mentés
    • nincs szükség a webalkalmazás logikájának módosítására

    3. Elosztott adatgyorsítótár (memcached)

    Az „1C-Bitrix: Web Cluster” lehetővé teszi, hogy memcache-kiszolgálók készletét használja az adatgyorsítótárral való együttműködéshez.

    Ez biztosítja:

    • nagy hatékonyság - a gyorsítótár webes alkalmazás általi központosított használatának köszönhetően
    • megbízhatóság - a gyorsítótárazási alrendszer ellenállása az egyes összetevők meghibásodásával szemben
    • korlátlan méretezhetőség – új memcached szerverek hozzáadásával

    4. A munkamenetek folyamatossága a webszerverek között (a munkamenetek tárolása adatbázisban)

    A felhasználói munkamenetek adatainak adatbázisban való tárolásának képessége biztosítja a munkamenet „átláthatóságát” a fürt összes webkiszolgálója számára:

    • Az egyik szerveren történő engedélyezést követően a felhasználót az összes többi szerverre jogosultnak kell tekinteni
    • És fordítva – a munkamenet vége bármely szerveren azt jelenti, hogy az összes szerveren egyszerre véget ér

    5. Webszerver-fürtözés


    Ha egy projektet több webszerverre osztunk fel, két problémát kell megoldani:

    • adatok (fájlok) szinkronizálása szerverek között
    • terheléselosztás a szerverek között