Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Duże aplikacje i load balancing, Czyli co i jak zrobic jak maszyna nie daje rady
kwiateusz
post 2.08.2008, 18:53:14
Post #1


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




Temat założony na prośbę SHIPa oraz normanosa traktujący o rozkładaniu obciążenia na wiele maszyn
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
djhors
post 29.12.2008, 11:07:55
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.03.2008

Ostrzeżenie: (0%)
-----


Witam Wszystkich.

Z braku czasu niezagladam tu za wiele bo nie mam nawet na to czasu ale trafiłem na ten temat. Pozwolcie że napisze wam jak wygląda sprawa teoretycznie ze strony 'korporacyjnej' tegoz problemu. - teoria

Powiedzmy że mamy swoja strone php/mysql i pliki. Podzielimy to oczywiście na:

1. Baza danych MySQL
2. Baza plików aplikacji (Core Aplication)
3. Pliki storage (Multimedia itp.)

Sytuacje jakie tu piszecie maja zastosowanie przy tzw. uzytkowaniu lokalnemu. Oczywiście sprawdza się tutaj Load Balancing. Prawda praktyczna jest taka że jesli liczymy uzytkowników w milionach SLB mozna wyrzucić do kosza ze względu że sam serwer SLB by tego nie wytrzymał. Analiza ruchu i obiażenia tez potrzebuje zasobów i czasu. Serwery Google, YouTube itp. stosuja własne techniki rozdziału swoich aplikacji mniej lub bardziej skuteczne. Napomkne jednak że cały czas mówimy o użytkowaniu lokalnym. Inny motyw jest gdy mamy kilka milionów uzytkowników w Europie i nastepne kilka w Azji Wschodniej. Choćbyśmy posiadali łącza kilku Giga bitowe to i tak wartośc transferowa spada i to powaznie do 20-10%. Po ostatnim zerwaniu lini na dnie morza śródziemnego miało swoje przykre konsekwencje dla wielu wznoszących się portali ogólnoświatowych lub kontynentalnych. A i interes w tym mają pewne korporacje... mniejsza z tym.

Przy uzytkowaniu lokalnym, sprawdza się dobrze SLB jednak jak już wspomniałem (np. w przypadku naszej-klasy) miało to później nie miłe konsekwencje dla użytkowników o czym rozpisywały się nawet gazety.

Na pierwszy rzut oka roziwazaniem staja się osobne serwer na bazę MYSQL - osobny na Core Aplication i osobny na Storage. Do parunastu tysięcy użytkowników lokalnych jest oki. Póxniej zaczynają się schody poniewaz jest to mało opłacalne przy próbie tworzenia mirrorów na każdy punkt z osobna. Dlatego tez najpraktyczniejszym rozwiązaniem jest tworznie całego mirrory jednego serwera ze wszystkimi punktami 1,2,3. WIelu twierdzi że ta metoda jest przestarzała zapoczatkowana przez mirrory serwerów użytkowanych przez dystrybutorów Linuxów itp. ale ma to pewne zalety. Otóz w ten sposób serwer bedzie sie najszybciej komunikował z własnymi punktami PHP <-> SQL. No to chyba zrozumiałe.

Prawda jest tak że nie poto sa od niedawna takie zawody jak 'Network Analist' żeby koles liczyl sobie bajty na ekranie. Wiąże się to z analizą np. rozkładu uzytkowników na pewne grupy. A najprostrza grupą podziałową jest obszar geograficzny.

W sytuacji gdy nasz serwer nie radzi sobie z ilościa uzytkowników wpada taki Analityk i tworzy nam raport gdzie mozna by umiejscowić nowy serwer lustrzany tak aby odciążyć ten co mamy a jednoczesnie objąć taka ilośc użytkowników żeby sam nie stał bezczynnie.

Dla początkujących tworzenie serwera lustrzanego może polegac na zasadzie Copy-Paste - napisania odpowiednich skryptów które będą automatytcznie monitorowały stan plików 'wzorcowych' i samej bazy i aktualizowały automatycznie serwery lustrane. Ze strony bazy danych i Storage dział to te·z wdruga stronę. Dobrze jest też aby taki wzorcowy serwer dobrze jakby był osobna jednostką serwerową (ale nie developerską - tzn nie miejscem gdzie piszemy nasza aplikacje). Dobrze by było aby nasz serwer lustrzany znajdował się w obrębie danego obszaru geograficznego aby połączenia były jak najkrótsze.

Przy zasięgu globalnym to jednak nie wypali. Powiedzmy że użytkownik X z Ameryki zarejestrował się na serwerze który tam się znajduje i użytkownik Y z Polski który będzie minutę póżniej szukał swojego przyjaciela z Ameryki zapewne się rozczaruje bo system aktualizacji będzie potrzebował trochę czasu aby zauktalizowac wszystkie serwery lustrzane (a konkretnie ten Polski). Wiele firm praktycznie olewa ta sprawe bo nie chca wydawać pieniędzy na nowych lub douczanie aktualnych programistów o wiedże z zakresu modelowania rozproszonego baz danyn a czesto początkujące firmy internetowe nie inwestuja w dobrych Senior Programmers - co jest zrozumiałe.

Więc cała sprawa zmierza tak na prawde do tego jak piszemy nasza aplikację. Poczatkujacy programisci a i nawet Ci z duzym stażem nie biora pod uwagę czegoś takiego jak zasięg aplikacji. To pozwala nam w pewien sposób zobaczyć pewna subtelna różnice między 10 letnim programistą freelance i w małej firmie. A programistą z tym samym stażem w większej firmie czy korporacji - nie bez powodu w CV czytaja informacje o poprzednich pracach i wypytuja o nie. Dzisiaj dobre referencje z 'Dobrej' firmy to prawdziwy skarb. Dlatego tez taka rada poza tematem - nie ma zadnego sensu obsypywaniem potencjalnego pracodawcy workiem portfolio z tysiaca i jednej strony dla sklepó, gier i innych temu podobnych - no chyba że startujecie na Designera.

Ale wracając do tematu, do naszego przypadku zastosowanie baz rosproszonych jest naszym roziazaniem. Taki moze ciągły przykład. Kiedy uzytkownik X z Ameryki się u nas zarejestruje - informacje na jego temat zostana zapisane na naszym serwerze lokalnym i wyśle prosty index do innych serwerów na całym świecie (często przez serwery posredniczace np. na dany kontynent). Metoda ta pozwala w 'dość' szybki sposób zaktualizować dane na całym świecie. A 'index. jest poprosty prosta tabelą w której wpisujemy id usera i adres serwera na którym sa przechowywane pełne dane na temat uzytkownika X. Więc kiedy nasz Uzytkownik Y z Polski będzie szukał swojego przyjaciela powinien go w bardzo szybkiem czasie tam odnaleść poniewaz jego lokalny serwer lustrzany (no nie dokońca juz lustrany) połaczy się i pobierze dane z zserwera w Ameryce. Myśle że jest to dość zrozumiałe. Oczywiście w praktyce te serwery nie sa teraz juz takie 'lustrzane'. Obok Core Aplication dodawane jest Local Aplication czy cos w tym stylu powodujace że nasza strona dla Polski będzie nieco inaczej wygladał niz dla Ameryki. Zapewne to wam tłumaczy dlaczego chiny moga sobie sprawnie blokowa tresci dla swoich 'podwładnych' - poprostu filtruja tylko serwry lokalne np YouTube.

A teraz taka praktyka w praktyce.

Powiedzmy że mamy super portal i serwery poroztsawiane na całym świecie. SLB jest stosowane w obszarze powiedzmy jednego kraju lub stany/województwa. SPecjalne serwery krajowe/wojewodzkie/stanowe posredniczą w statycznym rozdysponowaniu obciążenia. Natomiast między krajami nie ma żadnego rozdysponowywania poprostu w ramach potrzeby stawia się serwery w danym regionie poniewaz nie ma to sensu jesli na dany kraj założymy sobie domenę z krajowa końcówką (pl, de, my).

Z pingujcie sobie serwer google.pl i google.my dla prównania.

Kazdy serwer jest jednocześnie takim 'lustrzanym' z dodatkami (s001.mojastrona.pl, s002.mojastrona.pl s001.mojastrona.de s002.mojastrona.de etc.)

Zapewne gdyby nagle cały świat się rzucił i w przegladarkach wpisali google.pl to pewnie mieliby niezły zator. - choć mozliwe ze się przed tym zabezpieczyli - powinni.

Oczywiście żaden wielki portal nie bawi się robienie typowych luster serwerów. Pliki Storage tak jak dane sa poprostu indexowane w bazie danych. Dlatego tez w iększej firmie programista stosujacy metode listowania folderu dla plików dostał by po uszach.

Oczywiście jest to tylko takie liźnięcie tematu bo rozbija się to jeszcze o wiele kwesti lokalnych i samego transferowania danych poprzez dns'y, routowanie połączeń globalnych etc.
Trochę sie rozpisałem ale mam nadzieję że jakoś wam przedstawiłem zagadnienie z nieco innej strony.


Pozdrawiam

Ten post edytował djhors 29.12.2008, 11:25:44
Go to the top of the page
+Quote Post

Posty w temacie
- kwiateusz   Duże aplikacje i load balancing   2.08.2008, 18:53:14
- - LBO   Muskający powierzchnię tematu wpis na blogu Talena...   2.08.2008, 19:01:00
- - wrauk   dzięki za link do mojego bloga, widzę, że temat os...   4.08.2008, 20:33:26
- - Kocurro   No to Panowie zaczynajmy - może na początek odnosz...   5.08.2008, 11:02:55
- - wlamywacz   A jest możliwość utworzenia dysku sieciowego i na ...   5.08.2008, 12:25:49
- - Kocurro   Pomysł dość dobry ale wydaje mi się, że problemem ...   5.08.2008, 12:37:12
- - wrauk   Soft do obsługiwania takich sesji już istnieje i n...   5.08.2008, 12:55:10
|- - Sedziwoj   Cytat(wrauk @ 5.08.2008, 13:55:10 ) M...   5.08.2008, 13:41:27
- - wlamywacz   CytatPomysł dość dobry ale wydaje mi się, że probl...   5.08.2008, 21:09:04
|- - mike   Cytat(wlamywacz @ 5.08.2008, 22:09:04...   5.08.2008, 21:18:30
|- - wrauk   Cytat(wlamywacz @ 5.08.2008, 22:09:04...   5.08.2008, 21:22:56
- - jarek_bolo   Witam, specjalnie doświadczony nie jestem, ale tak...   5.08.2008, 22:08:59
|- - wrauk   Cytat(jarek_bolo @ 5.08.2008, 23:08:5...   6.08.2008, 07:56:52
|- - jarek_bolo   Cytat(wrauk @ 6.08.2008, 08:56:52 ) Z...   6.08.2008, 08:51:23
|- - wrauk   Cytat(jarek_bolo @ 6.08.2008, 09:51:2...   6.08.2008, 09:45:00
- - Kocurro   jarek_bolo: niestety Twój pomysł byłby o wiele mni...   6.08.2008, 09:18:14
- - wlamywacz   A co z adresami typu www2.cos.pl ?   6.08.2008, 10:13:25
- - Kocurro   Widziałem ale jeśli mam być szczery to to jest roz...   6.08.2008, 10:18:46
- - wlamywacz   Ale jak działa to www2.cos.pl itd. bo nawet nie wi...   6.08.2008, 11:38:17
|- - mike   Cytat(wlamywacz @ 6.08.2008, 12:38:17...   6.08.2008, 11:47:12
- - Kocurro   Normalnie Serwer ma taką nazwę, dns wskazuje na j...   6.08.2008, 11:41:48
- - normanos   a mnie ciekawiły by rady w jakim kierunku iść kied...   6.08.2008, 13:48:56
|- - wrauk   Cytat(normanos @ 6.08.2008, 14:48:56 ...   8.08.2008, 09:47:21
|- - normanos   Cytat(wrauk @ 8.08.2008, 08:47:21 ) K...   8.08.2008, 09:57:13
|- - wrauk   Cytat(normanos @ 8.08.2008, 10:57:13 ...   8.08.2008, 10:35:20
- - grzegory   Przyłączam się do tematu. Mój problem wygląda nas...   7.08.2008, 21:36:06
- - wlamywacz   Kup serwer dedykowany, da radę bez problemu. Patrz...   7.08.2008, 21:50:20
- - Sedziwoj   @grzegory Zacznę od tego że to raczej nie jest tem...   7.08.2008, 21:56:20
- - Ace   Od kilku miesięcy interesuje się tematyką wysokich...   12.08.2008, 11:03:43
- - rashid   Pozwole sie wtracic, bo Panowie proboja rozwiazac ...   27.11.2008, 12:27:56
|- - enigma   Cytat(rashid @ 27.11.2008, 13:27:56 )...   13.01.2009, 21:24:38
|- - rashid   Cytat(enigma @ 13.01.2009, 21:24:38 )...   13.01.2009, 21:41:01
- - Krolik   Jeśli baza danych się nie wyrabia i używamy MySQL/...   2.12.2008, 10:37:42
|- - rashid   Cytat(Krolik @ 2.12.2008, 10:37:42 ) ...   11.12.2008, 11:10:50
- - klakson   Witam serdecznie, chcialbym wykonac aplikacje w p...   20.12.2008, 13:05:29
|- - rashid   Cytat(klakson @ 20.12.2008, 13:05:29 ...   20.12.2008, 14:11:47
- - normanos   piszesz, że będziesz mielił dane z dysku a potem w...   20.12.2008, 13:47:49
- - klakson   Dzieki za pierwsze odpowiedzi, i juz uscislam, bo ...   20.12.2008, 16:37:27
- - Kocurro   Wybaczcie offtopic ale nie mogę. Kolega się z cho...   20.12.2008, 16:59:28
- - klakson   No ok Kocurro, ale moze po pierwsze, to przeczyta...   20.12.2008, 18:52:22
- - rashid   Zalozenie, ze operujac na wlasnym formacie plikow ...   20.12.2008, 18:53:32
|- - Krolik   Cytat(rashid @ 20.12.2008, 18:53:32 )...   2.01.2009, 12:18:16
|- - rashid   Cytat(Krolik @ 2.01.2009, 12:18:16 ) ...   2.01.2009, 14:05:11
- - Kocurro   Szanowny kolego klakson - proponuje najpierw zapoz...   20.12.2008, 19:40:32
- - erix   CytatA przechodzac do sedna, w czym niby jest prob...   20.12.2008, 20:06:03
- - wlamywacz   Założenia projektu sobie niezbyt realne. Kolega na...   25.12.2008, 10:52:03
- - djhors   Witam Wszystkich. Z braku czasu niezagladam tu za...   29.12.2008, 11:07:55
- - luinnar   Tak sobie czytam ten wątek i zastanawiam się nad k...   1.01.2009, 10:23:55
- - Krolik   Rashid, porównujesz z MySQLem i słusznie zauważyłe...   5.01.2009, 11:43:18
|- - rashid   Cytat(Krolik @ 5.01.2009, 11:43:18 ) ...   7.01.2009, 11:12:22
- - fragles   a ja mam pytanie podstawowe - jak się to liczy to ...   7.01.2009, 10:33:20
- - Krolik   Nie będę wchodził w szczególy, bo odeszliśmy od te...   7.01.2009, 13:06:25
- - enigma   dziękuje wygląda ciekawie - na pewno przeczytam. ...   13.01.2009, 21:58:21
|- - rashid   Cytat(enigma @ 13.01.2009, 21:58:21 )...   19.01.2009, 22:53:16
- - jmail   Przepraszam, ze tego trupa odgrzebuję, ale miałbym...   10.08.2009, 22:32:15
- - Ormin   Myślę, że wypadałoby odświeżyć temat. Przy okazji ...   16.05.2010, 22:19:23
- - BugsBunny   Odgrzebie temat, bo mam trochę praktyki w tym tema...   15.09.2012, 22:20:20


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.05.2024 - 01:05