Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka serverów / Amazon S3 / inne
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Hej wszystkim!

Mam problem z czasami dostępu do serwisu, szukam rozwiązania który go skróci - najpierw opiszę jaki jest obecny stan portalu.

Każdy user może zakładać konta, dodawać prezentacje. Prezentacja składa się z obrazków, po klatkowych zdjęć lub rozbitych filmów na ramki. Userzy mogą te filmy udostępniać innym albo przez plugin w js animujący obrazki, albo poprzez wygenerowanie gif/video. Obecnie portal ma ok 500gb plików userów z całego świata, a transfer wychodzący jest na poziomie ok. 1tb miesięcznie.

Niestety pojawiają się problemy z wydajnością łącza, klient chce rozproszyć servery/dodać cdn'y. Tak by klienci nie musieli łączyć się z serverem przez pół świata do polski gdzie obecnie stoi 1 server.

Rozwiązania jakie udało mi się znaleźć to routing DNS, który wydaje się bardzo kosztowny lub Amazon S3 - tutaj lepiej z kosztami.

Problem jest taki, że user musi od razu uploadować pliki na najbliższy S3. Potem server jakiś musi go pobrać, utworzyć video, gify itd i oddać tym razem do kilku regionów S3. Cała procedura jest dość zawiła i szukam innych rozwiązań tego problemu.

Obecny szacunkowy koszt przy 3 regionach w amazonie tworzy koszt ok. 300$ miesięcznie + server bazowy do operacji na plikach, mysql'a itd. za ok 500zł/miesiąc. Te koszta są jak najbardziej akceptowalne.

Możecie doradzić jakieś rozwiązanie ew. utwierdzić mnie że S3 to dobry wybór?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cepa
post
Post #2





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

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


Widly z igły (IMG:style_emoticons/default/wink.gif) osobiście gdybym miał taki problem to podszedł bym tak:

- mam conajmniej dwie identyczne strefy z aplikacja (moze byc oczywiscie wiecej)
- dns routuje do najblizszego serwera po latency, lub geoip i zwykly redirect
- klient robi zwykly upload do najblizszej strefy, plik laduje normalnie na serwerze - odpada upload do S3
- plik z automatu jest dodawany do kolejki, dane sa przetwarzane lokalnie - odpada download z S3
- po udanym przetwarzaniu plik wynikowy laduje na podmontowanym glusterze, gluster sam zadba o replikacje danych do innych stref i dziala to jak zwykly mount jak nfs
- kontent prezentacji jest dostepny poprzez niewielkie nody cache, moga to byc nawet malenkie vps, na hostach stoi cached reverse proxy - dzieki temu dane beda ciagniente doslownie z lokalnego dysku, co do odswierzania cache, zalezy od ciebie

kolejka:
polecam python + celery, sprawdzi sie doskonale a uzycie jest trywialne

baza danych:
osobiscie uzylbym apache cassandra, ma jezyk CQL bardzo zblizony do SQL no i przedewszystkim masz replikacje i klastrowanie z bani
druga opcja to shardowanie mysql i consisten hashing, nie uzywalbym replikacji sql ze wzgledu na opoznienia miedzy strefami

skalowanie up:
- tworzysz nowa strefe, stawiasz wszystkie elementy na niej
- podpinasz kolejny node glustera do klastra
- podpinasz kolejny node cassandry do klastra
- dodajesz informacje o kolejnej strefie do dns
- pijesz browar zwyciestwa (IMG:style_emoticons/default/wink.gif)

Edit:
ewentualnie zamiast glustera wykorzystaj S3 ale tylko do wynikow, dane przetwarzaj lokalnie

Ten post edytował cepa 25.09.2014, 13:54:15
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 05:27