1s Bitrix web klaster. Web klaster - iskustvo stvarne primjene. Kako pohađati tečaj obuke

14.05.2020 Recenzije

Svaki novi ili pokrenuti projekt na "" može se predstaviti kao web klaster izmjenjivih poslužitelja.

Glavni zadaci koje ova konfiguracija projekta omogućuje rješavanje:

  1. Kako se promet povećava, možete brzo dodati nove poslužitelje u klaster.
  2. Ako jedan od poslužitelja klastera zakaže, sustav nastavlja kontinuirano opsluživati ​​klijente.
  3. Balansiranje opterećenja, prometa, podataka između nekoliko poslužitelja.
  4. Sustav vam omogućuje snimanje sigurnosne kopije iz posebno određenih čvorova klastera, bez utjecaja na rad stranice.

"Geografski web klaster"

“Geographic web cluster” povećava otpornost na pogreške projekta i osigurava neovisnost od podatkovnog centra. Nekoliko grupa web klastera smještenih u različitim gradovima ili državama kombinirano je u različitim podatkovnim centrima. U slučaju kvara jednog podatkovnog centra, drugi se odmah stavlja u rad, bez potrebe vraćanja “backupa”.


Zemljopisni web klaster omogućuje vam podizanje cijelih grupa poslužitelja. Svaka od ovih grupa ima svog gospodara – u podatkovnim centrima neovisnim jedan o drugom. Tako su vaše web stranice i vaše poslovanje potpuno zaštićeni od nedostupnosti samih podatkovnih centara.

"1C-Bitrix: Web klaster" kombinacija je tehnologija:

  1. Vertikalno dijeljenje(premještanje modula na zasebne MySQL poslužitelje)
  2. MySQL replikacija i balansiranje opterećenja između poslužitelja
  3. Distribuirana predmemorija podataka(memcached)
  4. Kontinuitet sesije između web poslužitelja(spremanje sesija u bazu podataka)
  5. Grupiranje web poslužitelja:
  • Sinkronizacija datoteka
  • Balansiranje opterećenja između poslužitelja
  • Neovisnost podatkovnog centra(u slučaju kvara jednog podatkovnog centra odmah proradi drugi, bez potrebe vraćanja “backupa”)

  • Kako radi

    1. Vertikalno dijeljenje

    Dijeljenje jedne baze podataka web aplikacije u dvije ili više baza podataka odvajanjem zasebnih modula, bez promjene logike web aplikacije.





    Sljedeći moduli proizvoda mogu se smjestiti u zasebne baze podataka:

    2. MySQL replikacija i balansiranje opterećenja između poslužitelja

    Shema "master - slave" implementirana je pomoću MySQL-a.

    Platforma 1C-Bitrix: Site Management omogućuje vam fleksibilno balansiranje opterećenja između poslužitelja koji sudjeluju u replikaciji.



    Glavne značajke:
    • fleksibilno SQL balansiranje opterećenja
    • jednostavnost administracije
    • jeftino i brzo neograničeno skaliranje
    • sigurnosna kopija na mreži
    • nisu potrebne izmjene logike web aplikacije

    3. Distribuirana predmemorija podataka (memcached)

    "1C-Bitrix: Web Cluster" omogućuje vam korištenje skupa memcachiranih poslužitelja za rad s predmemorijom podataka.



    Ovo osigurava:
    • visoka efikasnost- zbog centralizirane upotrebe predmemorije od strane web aplikacije
    • pouzdanost- zbog otpornosti podsustava predmemoriranja na kvar pojedinih komponenti
    • neograničena skalabilnost- dodavanjem novih memcached poslužitelja

    4. Kontinuitet sesija između web poslužitelja (pohranjivanje sesija u bazu podataka)

    Mogućnost pohranjivanja podataka o korisničkim sesijama u bazi podataka osigurava "transparentnost" sesije za sve web poslužitelje u klasteru:
    1. Nakon autorizacije na jednom od poslužitelja, korisnik se mora smatrati ovlaštenim za sve ostale poslužitelje.
    2. I obrnuto - završetak sesije na bilo kojem poslužitelju trebao bi značiti njezin kraj na svim poslužiteljima odjednom.

    Web Cluster modul je kombinacija tehnoloških rješenja koja vam omogućuju distribuciju jedne web stranice na nekoliko poslužitelja, čime se rješava nekoliko problema: visoka dostupnost web stranicu, njezino skaliranje u uvjetima povećanja opterećenja, balansiranje opterećenja, prometa, podataka između nekoliko poslužitelja. S web klasterom povećat ćete performanse, skalabilnost i pouzdanost vašeg projekta!

    Za koje zadatke trebate web klaster?

    Klaster je potreban za fleksibilno rješavanje problema povećanja opterećenja i povećanja stabilnosti usluge. Stoga, kako se promet povećava, možete brzo dodati nove poslužitelje u klaster. A ako jedan od poslužitelja klastera zakaže, sustav nastavlja kontinuirano opsluživati ​​posjetitelje/klijente. Jednako važan zadatak je balansiranje opterećenja, prometa i podataka između nekoliko poslužitelja. U isto vrijeme, sustav vam omogućuje izradu sigurnosnih kopija iz posebno određenih čvorova klastera bez utjecaja na rad stranice, bez isključivanja strojeva ili njihovog usporavanja. Postoje zasebni zadaci geodistribucije. Kada pokrenete geografski web klaster, on vam omogućuje podizanje cijelih grupa poslužitelja. Svaka od ovih grupa ima svog gospodara – u podatkovnim centrima neovisnim jedan o drugom. Tako su vaše web stranice i vaše poslovanje potpuno zaštićeni od nedostupnosti samih podatkovnih centara i komunikacijskih kanala.

    Kako radi web klaster 1C Bitrix?

    Pogledajmo koje tehnologije koristi web klaster 1C Bitrix:

    • Za bazu podataka ovo je okomito usitnjavanje(premještanje modula na zasebne MySQL poslužitelje)
    • MySQL replikacija I uravnoteženje opterećenja između poslužitelja
    • Distribuirano predmemorija podataka(memcached)
    • Kontinuitet sesije između web poslužitelja (pohranjivanje sesija u bazu podataka)

    Grupiranje web poslužitelja nastaje zbog sinkronizacije datoteka, balansiranja opterećenja između poslužitelja, geografske neovisnosti o podatkovnom centru (u slučaju kvara jednog podatkovnog centra drugi odmah ulazi u funkciju, bez potrebe za podizanjem backupa i drugih radnji, to je pravi Vruća zamjena).

    Tajne velikih opterećenja na 1C Bitrixu s web klasterom

    1. MySQL dijeljenje

    Dijeljenje jedne baze podataka web aplikacije u dvije ili više baza podataka odvajanjem zasebnih modula, bez promjene logike web aplikacije.



    Sljedeći moduli proizvoda mogu se smjestiti u zasebne baze podataka: , .

    2. MySQL replikacija

    Shema "master slave" implementirana je pomoću MySQL / MariaDB. Ovaj tehnološki skup prilično je dobro opisan i naširoko se koristi.

    3. Balancer za balansiranje opterećenja između poslužitelja

    Pogledajmo pobliže balanser. 1C-Bitrix: Platforma za upravljanje web-mjestom u funkcionalnosti web klastera omogućuje vam fleksibilno balansiranje opterećenja između poslužitelja koji sudjeluju u replikaciji.



    Dobivamo sljedeće glavne značajke: fleksibilno balansiranje opterećenja u MySQL-u, jednostavnost administracije s jednog sučelja, brzo neograničeno skaliranje bez dodatnih troškova, vruća sigurnosna kopija (zapravo ovo je: stvaranje sigurnosnih kopija Pravo stanje). Sve ove funkcionalnosti ne zahtijevaju modificiranje logike web aplikacije; sve već radi u ovom izdanju.

    4. Distribuirana predmemorija podataka (upravlja: memcached)

    Tehnologija vam omogućuje spremanje podataka u predmemoriju RAM memorija mnogo dostupnih poslužitelja. Distribucija se provodi dijeljenjem podataka prema hash vrijednosti ključa, slično utičnicama hash tablice. Knjižnica klijenta pomoću podatkovnog ključa izračunava hash i koristi ga za odabir odgovarajućeg poslužitelja.


    Ovo osigurava visoku učinkovitost - zbog centralizirane upotrebe predmemorije od strane web aplikacije, kao i pouzdanost - zbog otpornosti podsustava predmemoriranja na kvar pojedinačnih komponenti, dok jamči neograničenu skalabilnost - dodavanjem novih memcached poslužitelja kako opterećenje raste.

    5. Kontinuitet sesije

    Za organiziranje kontinuiteta sesija između web poslužitelja potrebno je omogućiti pohranu sesija u bazu podataka, a same baze podataka se repliciraju, kako je gore navedeno.



    Mogućnost pohranjivanja podataka o korisničkim sesijama u bazu podataka osigurava “transparentnost” sesije za sve web poslužitelje u klasteru, jer Nakon autorizacije na jednom od poslužitelja, korisnik se mora smatrati ovlaštenim za sve ostale poslužitelje. I obrnuto, nakon završetka sesije na bilo kojem poslužitelju, to bi trebalo značiti njezin kraj na svim poslužiteljima odjednom.

    Bitrix je danas predstavio svoje novo rješenje – “web klaster”. Za one koji nisu upućeni, objasnit ću da vam ova stvar omogućuje da vrlo posjećeni projekt postavite ne na jedan, već na nekoliko poslužitelja, te u bilo kojem trenutku dodate nove poslužitelje kako biste ubrzali stranicu. Također je sigurno ukloniti bilo koji poslužitelj radi popravka, nadogradnje ili u slučaju kvara. Naravno, kao njihov prvi konkurent (koje predstavlja tvrtka Yumisoft), prije svega sam trebao saznati što to temeljno novo nude tržištu.

    Ništa. Ništa na dobar način. Bitrix se prestao zafrkavati i "izmišljati kotač" - očito je u tim došao pametan tehnolog, pa su umjesto "bicikla" uzeli i radili sve kao normalni ljudi. U ovom postu ću reći jednostavnim riječima– što su točno napravili i kako to isto možete ponoviti u svom projektu.

    Pogledajmo glavne dijelove klastera:

    0. Cloud – oblak, skup servera na kojima će se sve to izvoditi.
    1. Load balancer – dolazni balanser opterećenja.
    2. MySQL replikacija je popularna vrsta klasteriranja baze podataka.
    3. Mrežni datotečni sustav – distribuirana pohrana datoteka.

    Kao što je gore spomenuto, klaster je skup proizvoljnog broja web poslužitelja. Mogu obavljati isti zadatak, ili različite ovisno o ciljevima. Počnimo s poslužiteljima: ovdje se predlaže korištenje virtualni strojevi aws.amazon.com. Ne bih rekao da je ovo razumno rješenje: virtualni strojevi su inherentno spori, ali ključna točka ovdje je jednostavnost njihovog stvaranja. Pritisnuo sam gumb i stvoreno je. I to ne zadani stroj, već konfiguriran posebno za vaše potrebe. Možete ga izraditi prema rasporedu ili čak dinamički kako se opterećenje povećava. Vaša je stranica došla pod snažan protok posjetitelja - r-r-r-az i stvorila nekoliko novih strojeva. Opterećenje je završilo - strojevi su se ugasili. Ljepota.

    Naravno, bilo koji poslužitelj na Internetu može djelovati kao klaster poslužitelja: bio virtualni ili hardverski. Za referencu: svatko tko nije previše lijen da počne instalirati najnoviju distribuciju Ubuntu Servera može besplatno napraviti svoj osobni "Amazon" klaster.

    Balanser je potreban za distribuciju dolaznih zahtjeva od posjetitelja stranice između poslužitelja klastera. Predlaže se korištenje nginxa kao njega, guglajte “nginx load balance” i dobit ćete hrpu poveznica na gotove primjere.

    Replikacija baze podataka potrebna je za pisanje podataka na jednom poslužitelju (naziva se master) i čitanje sa svih ostalih (odnosno slave). Budući da obično postoji nekoliko operacija pisanja i mnogo operacija čitanja, jednostavnim povećanjem broja podređenih uređaja možete neograničeno povećati "snagu" projekta. Podaci od glavnog do podređenih ulaze u pozadina isključivo korištenjem MySQL-a, a robovi se mogu dodati i ukloniti u bilo kojem trenutku. Google “mysql replication” i dobijte upute.

    Distribuirana pohrana datoteka potrebna je kako bi se osiguralo da svi poslužitelji imaju isti skup datoteka. Ako je korisnik postavio sliku "negdje" na jedan od poslužitelja, tada bi se trebala pojaviti posvuda. Zašto? Budući da se informacije mogu dati drugim korisnicima s drugog poslužitelja. Za implementaciju, drugovi iz Bitrixa preporučuju "csync2" - radi u pozadini i glupo sinkronizira datoteke između poslužitelja tako da je sve svugdje isto.

    Svi. Dakle, napravili ste klaster. A sada – fino podešavanje:

    Prvi kamen spoticanja na koji ćete naići prilikom prijenosa vašeg projekta (mislim na projekt na nekom drugom CMS-u ili onom koji ste sami napisali) u takav model bit će operacije s bazom podataka. Suština je da aplikacija mora moći razlikovati zahtjeve za "pisanje" od onih za "čitanje". Drugim riječima, INSERT, UPDATE, DELETE, kao i CREATE, ALTER i DROP moraju se izvoditi samo na masteru. SELECT upite u principu se može izvesti bilo gdje. Trebat će dosta vremena da ponovno uvježbate svoj motor na ovaj način razmišljanja.

    Osim toga, Bitrixoidi su smislili zanimljivu stvar: budući da podaci teku od mastera prema slave-ovima s određenim kašnjenjem, naučili su sustav da prepozna "kritične" zahtjeve za pisanje. Nakon takvog zahtjeva, svi podaci do samog kraja izvođenja PHP skripti se preuzimaju (SELECT) samo od mastera kako bi se izbjegle greške zbog tog istog kašnjenja.

    Druga ideja koju treba razmotriti je dodjela poslužitelja za zadatke. Nije potrebno sve poslužitelje učiniti istima i dodijeliti im iste zadatke. Neka neki od njih služe, na primjer, internetskoj trgovini, a drugi dio prikuplja statistiku.

    Treća misao je memcached klasteriranje. Bitrix ga je uključio na početku svoje prezentacije, ali možete ga pokrenuti kasnije. Njegova je prednost u tome što se povezuje izravno s nginxom (sjećate se prve točke?) i omogućuje mu posluživanje predmemoriranih stranica (ili blokova) izravno iz RAM-a. Vaš zadatak - ili bolje rečeno zadatak vaših skripti - je smjestiti predmemorirani sadržaj u memcached.

    Kako razviti projekt na klasteru? Često postavljena pitanja za predstavnike web studija. Da, potpuno isto kao na obični poslužitelj. Klaster će za vas biti samo jedno veliko računalo, na koje se ulogujete preko ssh-a na isti način i radi.

    Mentorica sam u IT projektima. To znači da ako ste vlasnik ili upravitelj, mogu vam pomoći da podignete svoje poslovanje na nove visine. Posložite stvari, shvatite motivaciju tima, implementirajte alate i postignite određene ciljeve. Ne učim vas kako poslovati, samo vam pomažem da zaobiđete velikodušno razbacane grablje na svom putu. .

    Modul Web Cluster kombinacija je tehnoloških rješenja koja omogućuju distribuciju jedne web stranice na više poslužitelja, čime se rješava nekoliko problema: osiguravanje visoke dostupnosti web stranice; njegovo skaliranje u uvjetima povećanja opterećenja; balansiranje opterećenja, prometa, podataka između nekoliko poslužitelja. Izgradite vlastiti web klaster - povećajte performanse, skalabilnost i pouzdanost vašeg projekta!

    Svaki novi ili pokrenuti projekt na 1C-Bitrix: Site Management može se predstaviti kao web klaster međusobno zamjenjivih poslužitelja.
    Glavni zadaci koje ova konfiguracija projekta omogućuje rješavanje:

    • Kako se promet povećava, možete brzo dodati nove poslužitelje u klaster
    • Ako jedan od poslužitelja klastera zakaže, sustav nastavlja kontinuirano opsluživati ​​klijente
    • Balansiranje opterećenja, prometa, podataka između više poslužitelja
    • Sustav vam omogućuje da uzmete sigurnosne kopije iz posebno određenih čvorova klastera bez utjecaja na rad stranice

    "Geografski web klaster"

    “Geographic web cluster” povećava otpornost na pogreške projekta i osigurava neovisnost od podatkovnog centra. Nekoliko grupa web klastera smještenih u različitim gradovima ili državama kombinirano je u različitim podatkovnim centrima. U slučaju kvara jednog podatkovnog centra, drugi se odmah stavlja u rad, bez potrebe vraćanja “backupa”.


    Zemljopisni web klaster omogućuje vam podizanje cijelih grupa poslužitelja. Svaka od ovih grupa ima svog gospodara – u podatkovnim centrima neovisnim jedan o drugom. Tako su vaše web stranice i vaše poslovanje potpuno zaštićeni od nedostupnosti samih podatkovnih centara.
    "1C-Bitrix: Web klaster" kombinacija je tehnologija:

    • Vertikalno dijeljenje (premještanje modula na zasebne MySQL poslužitelje)
    • MySQL replikacija i balansiranje opterećenja između poslužitelja
    • Distribuirana predmemorija podataka (memcached)
    • Kontinuitet sesija između web poslužitelja (pohranjivanje sesija u bazu podataka)
    • Grupiranje web poslužitelja:
    • Sinkronizacija datoteka
    • Balansiranje opterećenja između poslužitelja
    • Neovisnost o podatkovnom centru (u slučaju kvara jednog podatkovnog centra drugi odmah ulazi u funkciju, bez potrebe vraćanja “backupa”)

    Kako radi

    1. Vertikalno dijeljenje

    Dijeljenje jedne baze podataka web aplikacije u dvije ili više baza podataka odvajanjem zasebnih modula, bez promjene logike web aplikacije.

    Sljedeći moduli proizvoda mogu se smjestiti u zasebne baze podataka:

    • "Web analitika"
    • "Traži"

    2. MySQL replikacija i balansiranje opterećenja između poslužitelja

    Shema master-slave implementirana je pomoću MySQL-a.
    Platforma 1C-Bitrix: Site Management omogućuje vam fleksibilno balansiranje opterećenja između poslužitelja koji sudjeluju u replikaciji.


    Glavne značajke:

    • fleksibilno SQL balansiranje opterećenja
    • jednostavnost administracije
    • jeftino i brzo neograničeno skaliranje
    • sigurnosna kopija na mreži
    • nisu potrebne izmjene logike web aplikacije

    3. Distribuirana predmemorija podataka (memcached)

    "1C-Bitrix: Web Cluster" omogućuje vam korištenje skupa memcachiranih poslužitelja za rad s predmemorijom podataka.

    Ovo osigurava:

    • visoka učinkovitost - zbog centralizirane upotrebe predmemorije od strane web aplikacije
    • pouzdanost - zbog otpornosti podsustava predmemoriranja na kvar pojedinih komponenti
    • neograničena skalabilnost - dodavanjem novih memcached poslužitelja

    4. Kontinuitet sesija između web poslužitelja (pohranjivanje sesija u bazu podataka)

    Mogućnost pohranjivanja podataka o korisničkim sesijama u bazi podataka osigurava "transparentnost" sesije za sve web poslužitelje u klasteru:

    • Nakon autorizacije na jednom od poslužitelja, korisnik se mora smatrati ovlaštenim za sve ostale poslužitelje
    • I obrnuto - završetak sesije na bilo kojem poslužitelju trebao bi značiti njezin kraj na svim poslužiteljima odjednom

    5. Grupiranje web poslužitelja


    Kada se projekt dijeli na nekoliko web poslužitelja, moraju se riješiti dva problema:

    • sinkronizacija podataka (datoteka) između poslužitelja
    • balansiranje opterećenja između poslužitelja