Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Jakie technologie są Waszym zdaniem najlepsze dla ultra wydajnych serwisów www ?

Jestem ciekaw bo ostatnio spotykam się z takimi "mieszankami" że głowa boli!

np. IIS + Delphi + statyczne pliki txt
Radek Baczyński

Radek Baczyński GoldenLine.pl

Temat: najlepsza technologia dla ultra wydajnych serwisów www

http://nodejs.org - skalowalne i mało wymagające narzędzie - choć jeszcze nie w pełni stabilne. Jeśli potrzebujesz stworzyć produkt działający realtime dla kilku tys. użytkowników online na budżetowym serwerze to jest to możliwe.Radek Baczyński edytował(a) ten post dnia 16.06.10 o godzinie 14:30
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

dzięki za sugestie poczytam, ale zanim doczytam to takie szykbie pytanko:
- czy to narzędzie współpracuje/dobrze współpracuje z CDN?
- jak sobie radzi z obsługą baz danych - dużych baz danych?Mirosław Ratman edytował(a) ten post dnia 16.06.10 o godzinie 16:11
Radek Baczyński

Radek Baczyński GoldenLine.pl

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Mirosław Ratman:
dzięki za sugestie poczytam, ale zanim doczytam to takie szykbie pytanko:
- czy to narzędzie współpracuje/dobrze współpracuje z CDN?

Tego nie wiem i nie wiem czy są jakieś przypadki, bo node jest bardzo młody.
- jak sobie radzi z obsługą baz danych - dużych baz danych?

Są już w pełni dojrzałe drivery do MySql i Postgresa, jeśli chodzi o enterpriseowe bazy to pewnie takich driverów nie ma, jest też driver do Mongo. Nodejs to proste, ale i potężne narzędzie. Bardzo zwinne, do pisania systemu bankowego się nie nadaje, ale do stworzenia twittera realtime i wszelkiej maści :Web 2.0" już tak
Radek Baczyński

Radek Baczyński GoldenLine.pl

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Do Pythona masz podobny framework - Tornado od twórców Friendfeeda, to kolejne podejście asynchroniczne zapewniające ogromną skalowalność i przyzwoitą wydajność.

http://www.tornadoweb.org/
Sławek Ossoliński

Sławek Ossoliński Web Developer,
Conecto Systems Sp.
z o.o.

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Mirosław Ratman:
Jakie technologie są Waszym zdaniem najlepsze dla ultra wydajnych serwisów www ?

Jestem ciekaw bo ostatnio spotykam się z takimi "mieszankami" że głowa boli!

np. IIS + Delphi + statyczne pliki txt

Zależy od wymagań tego serwisu.
Czy treśc jest w pełni dynamiczna czy może być nieaktualna, jak zaawansowana jest logika ....
Większośc web serwerów (apache, iis, ngix..) może obsłużyć kilka/kilkanaście tysięcy req/s i to nie jest wąskie gardło. Jest niz z reguły dostęp/zapis do danych i tutaj najwięcej się ostatnio dzieje, łącznie z modą na noSql, graphDB i key/value stores.
Dobre efekty można uzyskać np. stosując technologie asp.net mvc + mongoDB - może nie ultra wydajne ale kilkaset req/s na niedrogim serwerze.
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Sławek Ossoliński:

Zależy od wymagań tego serwisu.
Czy treśc jest w pełni dynamiczna czy może być nieaktualna, jak zaawansowana jest logika ....
Większośc web serwerów (apache, iis, ngix..) może obsłużyć kilka/kilkanaście tysięcy req/s i to nie jest wąskie gardło. Jest niz z reguły dostęp/zapis do danych i tutaj najwięcej się ostatnio dzieje, łącznie z modą na noSql, graphDB i key/value stores.
Dobre efekty można uzyskać np. stosując technologie asp.net mvc + mongoDB - może nie ultra wydajne ale kilkaset req/s na niedrogim serwerze.

- tresć jest w pełni dynamiczna - aktualizowana bardzo często nie mniej jednak narazie nie ma dużej interakcji z uzytkownikiem - ogranicza się to głównie do odczytu.
Nie mniej jednak przy odsłonach na poziomie od 100 mln do 1 mld miesięcznie szybkość i sposób przesyłania danych do użytkownika ma już spore znaczneie. Rozwiązanie takie musi w pełni wspierać - jak by to fajnie ująć - "powielalność" - inaczej mówiąc dobrze współpracować z CDNami oraz z duzymi bazami danych.

Zacząłem sobie czytać o ASP.NET i ciekawie to wygląda - zwłaszcza np kwestia bierzącej dostępności już skompilowanego kodu bez koniecznosci jego ponownego kompilowania przy kolejnym requeście.
Sławek Ossoliński

Sławek Ossoliński Web Developer,
Conecto Systems Sp.
z o.o.

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Mirosław Ratman:
Sławek Ossoliński:

Zależy od wymagań tego serwisu.
Czy treśc jest w pełni dynamiczna czy może być nieaktualna, jak zaawansowana jest logika ....
Większośc web serwerów (apache, iis, ngix..) może obsłużyć kilka/kilkanaście tysięcy req/s i to nie jest wąskie gardło. Jest niz z reguły dostęp/zapis do danych i tutaj najwięcej się ostatnio dzieje, łącznie z modą na noSql, graphDB i key/value stores.
Dobre efekty można uzyskać np. stosując technologie asp.net mvc + mongoDB - może nie ultra wydajne ale kilkaset req/s na niedrogim serwerze.

- tresć jest w pełni dynamiczna - aktualizowana bardzo często nie mniej jednak narazie nie ma dużej interakcji z uzytkownikiem - ogranicza się to głównie do odczytu.
Nie mniej jednak przy odsłonach na poziomie od 100 mln do 1 mld miesięcznie szybkość i sposób przesyłania danych do użytkownika ma już spore znaczneie. Rozwiązanie takie musi w pełni wspierać - jak by to fajnie ująć - "powielalność" - inaczej mówiąc dobrze współpracować z CDNami oraz z duzymi bazami danych.

Z CDNami to żadna tech. nie powinna mieć problemu. Służą po prostu do serwowania statycznych plików.
Co do skalowalnej architektury to wszystkie popularne technologie webowe (php,ror,python,java,net ..) pozwalają ją osiągnąć(sharding, replication, load balancing etc.). Dla .NET dobrym/wydajnym/tanim "stackiem" jest asp.net mvc + nhibernate + postgresql + mongoDB. Dla reszty nie wypowiadam się bo nie znam.

Zacząłem sobie czytać o ASP.NET i ciekawie to wygląda - zwłaszcza np kwestia bierzącej dostępności już skompilowanego kodu bez koniecznosci jego ponownego kompilowania przy kolejnym requeście.

No i doszedł jeszcze dodatkowy argument - krosplatformowość.
ASP.NET chodzi na linuksie dzięki MONO, a c# jest szczególnie atrakcyjnym językiem dla developera, dynamicznie się rozwija i można w nim napisać prawie wszystko - od prostych serwisów po bazy danych ...
Co do wydajności obliczeniowej, tutaj: http://blog.dhananjaynene.com/2008/07/performance-comp... jest ciekawe porównanie. C# powinien być zbliżony do javy.Sławek Ossoliński edytował(a) ten post dnia 19.06.10 o godzinie 15:41
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Sławek Ossoliński:
Z CDNami to żadna tech. nie powinna mieć problemu. Służą po prostu do serwowania statycznych plików.

Nie nie do końca. My serwujemy np dane poprzez CDN :). Dzięki za pozostałem uwagi
Wojciech Zieliński

Wojciech Zieliński IT
Project/Programme/Pe
ople Manager
(PRINCE2
Practicioner...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Zobacz COBAEX CMS - system działa na zasadzie serwera administracyjnego + serwera prezentacyjnego. W przypadku tego pierwszego mamy PHP + PostgreSQL, na drugim - skompilowane wersje stron / wycinków stron (np. poszczególnych wyników wyszukiwania). System wspiera zarówno kompilację "na żądanie" (dla stron statycznych) jak i kompilację wymuszaną przez serwer prezentacyjny (dla elementów aktywnych).
Serwer administracyjny stoi na platformie COBAEX - dzięki czemu można go łatwo integrować z zewnętrznymi rozwiązaniami (jakiś CRM, systemy bilingowe, sprzedażowe), jak i fakt, że jest on "ukryty" zwiększa bezpieczeństwo danych (zwłaszcza takich, które są np. pobierane z zewnątrz).
Generalnie bardzo częstą architekturą jest serwer administracyjny stojący wewnątrz firmy, do którego dostęp jest limitowany - jedynie wewnętrzny, a z zewnątrz jedynie serwer prezentacyjny może się z nim kontaktować (na podstawie IP), a serwer prezentacyjny to albo serwer stojący w centrum danych, albo wręcz jakiś hosting.
Jakbyś być zainteresowany szczegółami - zapraszam na prv lub wzielinski@cobasolutions.com

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Wojciech Zieliński:
Zobacz COBAEX CMS - system działa na zasadzie serwera administracyjnego + serwera prezentacyjnego. W przypadku tego pierwszego mamy PHP + PostgreSQL, na drugim - skompilowane wersje stron / wycinków stron (np. poszczególnych wyników wyszukiwania). System wspiera zarówno kompilację "na żądanie" (dla stron statycznych) jak i kompilację wymuszaną przez serwer prezentacyjny (dla elementów aktywnych).
Serwer administracyjny stoi na platformie COBAEX - dzięki czemu można go łatwo integrować z zewnętrznymi rozwiązaniami (jakiś CRM, systemy bilingowe, sprzedażowe), jak i fakt, że jest on "ukryty" zwiększa bezpieczeństwo danych (zwłaszcza takich, które są np. pobierane z zewnątrz).
Generalnie bardzo częstą architekturą jest serwer administracyjny stojący wewnątrz firmy, do którego dostęp jest limitowany - jedynie wewnętrzny, a z zewnątrz jedynie serwer prezentacyjny może się z nim kontaktować (na podstawie IP), a serwer prezentacyjny to albo serwer stojący w centrum danych, albo wręcz jakiś hosting.
Jakbyś być zainteresowany szczegółami - zapraszam na prv lub wzielinski@cobasolutions.com

bardzo chetnie poznam szczegoly techniczne ultrawydajnosci, ilosc zuzywane pamieci, jakie rozwiazania zastosowano aby byl "ultrawydajny", jakie testy wykonano i ilu uzytkownikow /sekunde wykazal gorny limit przy jakim sprzecie

bez tego jest to wylacznie papka marketingowa, a jelsi system faktycznie jest dobry to warto to podac i nie na priv tylko tutaj
pozdr
Piotr Maliński

Piotr Maliński Programista
Python/Django

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Nie ma rozwiązania do skalowania wszystkiego. Dany problem ma swoje rozwiązanie, które sprawdzi się w danym przypadku a nie dla wszystkich. Są wspomniane frameworki/platformy asynchroniczne jak Tornado, są bazy nierelacyjne jak MongoDB, CouchDB, Tokyo Cabinet itd. są też rozwiązania Facebookowe: Thrift, Cassandra. Są też różne egzotyki jak framework w Erlangu - http://www.chicagoboss.org/ (Chicago Boss + Tokyo Tyrant = mocne nazwy :D) Można też generować statyczne strony jak robi to COBA, choć to już rzadko spotykane rozwiązanie w nowych projektach - plus ogranicza raczej dynamiczność serwisów (od czego mamy różne metody keszowania?).
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Wojciech Zieliński:
Zobacz COBAEX CMS - system działa na zasadzie serwera administracyjnego + serwera prezentacyjnego. W przypadku tego pierwszego mamy PHP + PostgreSQL, na drugim - skompilowane wersje stron / wycinków stron (np. poszczególnych wyników wyszukiwania). System wspiera zarówno kompilację "na żądanie" (dla stron statycznych) jak i kompilację wymuszaną przez serwer prezentacyjny (dla elementów aktywnych).
Serwer administracyjny stoi na platformie COBAEX - dzięki czemu można go łatwo integrować z zewnętrznymi rozwiązaniami (jakiś CRM, systemy bilingowe, sprzedażowe), jak i fakt, że jest on "ukryty" zwiększa bezpieczeństwo danych (zwłaszcza takich, które są np. pobierane z zewnątrz).
Generalnie bardzo częstą architekturą jest serwer administracyjny stojący wewnątrz firmy, do którego dostęp jest limitowany - jedynie wewnętrzny, a z zewnątrz jedynie serwer prezentacyjny może się z nim kontaktować (na podstawie IP), a serwer prezentacyjny to albo serwer stojący w centrum danych, albo wręcz jakiś hosting.
Jakbyś być zainteresowany szczegółami - zapraszam na prv lub wzielinski@cobasolutions.com

Dzięki za informacje ale to chyba nie bedzie działało przy ogromnym trafiku i częstych aktualizacjach (3-5 sek. interwał). PostgreQSL jest za wolny moim zdaniem do serwowania danych w tym przypadku. I jak juz wspomniano: jak z wymaganiami systemowymi, wytrzymałością na obciążenie przy duzym ruchu, itp?Mirosław Ratman edytował(a) ten post dnia 14.07.10 o godzinie 18:20
Wojciech Zieliński

Wojciech Zieliński IT
Project/Programme/Pe
ople Manager
(PRINCE2
Practicioner...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Mirosław Ratman:
Wojciech Zieliński:
Zobacz COBAEX CMS - system działa na zasadzie serwera administracyjnego + serwera prezentacyjnego...
Dzięki za informacje ale to chyba nie bedzie działało przy ogromnym trafiku i częstych aktualizacjach (3-5 sek. interwał). PostgreQSL jest za wolny moim zdaniem do serwowania danych w tym przypadku. I jak juz wspomniano: jak z wymaganiami systemowymi, wytrzymałością na obciążenie przy duzym ruchu, itp?Mirosław Ratman edytował(a) ten post dnia 14.07.10 o godzinie 18:20
Właśnie przy takim rozwiązaniu architektura COBAEX CMS sprawdzi się bardzo dobrze. Dane bowiem jak napisałeś są pobierane "z zewnętrz" - nie uaktualniane bezpośrednio z portalu. Oznacza to, że działać to będzie następująco:

dane zewn. --> serwer administracyjny -kompilacja-> serwer prezentacyjny

Generalnie na serwerze prezentacyjnym masz bazę danych (niekoniecznie PostgreSQLa - może być np. MySQL szybszy dla dużych ilości danych i prostych zapytań, ewentualnie inne rowziązanie) wykorzystywaną tylko do przeszukiwania - praktycznie zero update'ów. Dane w niej są również "skompilowane" i ładowane na zasadzie "bulk-load" z serwera administracyjnego.

Założenie, że dane są uaktualniane co 4-5 sekundy oznacza, że na serwerze prezentacyjnym "pojawiają się" nowe dane lub modyfikują się dane co te 4-5 sekund. Natomiast odwiedziny tam są nieporównywalnie częstsze - ale przy odwiedzinach serwer prezentacyjny serwuje już gotowe (skompilowane) pliki lub pliki "składane" z przekompilowanych części. Kontakt z bazą danych w momencie prezentacji jest ograniczony praktycznie tylko np. do wyszukiwania danych (gdzie zresztą jest wykonywane banalnie proste i szybkie zapytanie - prosty SELECT, który zwróci nam nazwy plików, które musimy pokazać w ramach wyników wyszukiwania).

Cała idea to trochę rozwinięcie idei cache - tyle że mechanizm odnawiania cache jest bardziej "inteligentny" bo uzależniony de facto od logiki biznesowej portalu. Odświeżenie następuje bowiem nie w momencie, gdy coś się zmienia w portalu, ale w momencie kiedy logika biznesowa wie, że coś się zmienić powinno. Ponadto odświeżenie następuje w zakresie bardzo ograniczonym - tylko rzeczy które rzeczywiście się zmieniły, a nie w pełnym zakresie lub w zakresie rzeczy oglądanym aktualnie. Również odświeżanie cache nie jest zależne od odwiedzin, a od zmian danych - czyli nie uruchamia się przy odwiedzinach, a przy zmianach. A przecież w portalach chodzi właśnie o to, aby odwiedziny były jak najszybsze - jeśli serwer w momencie odwiedzin strony stwierdza, że trzeba przebudować cache, trwa to dłużej aniżeli normalne odświetlenie nawet budowanej z klocków strony.

Dodatkowo EX pozwala na publikację danych na więcej niż jeden serwer - czyli pozwala na realizację klastra funkcjonalnego - część danych przechowywana jest i serwowana z jednego serwera, część z drugiego, ewentualnie na obydwu mamy to samo, a dostęp jest na zasadzie klastra load-balancingu. Jednak w obydwu przypadkach "master data" mamy na jednym serwerze administracyjnym.
W zakresie statystyk wydajnościowych - nie mam takich danych, gdyż sama platforma pozwala na budowanie różnorodnych portali - a ich wydajność zależy również od budowy samego portalu (poziomu wykorzystania możliwości EXa).
Generalnie przewaga tego rozwiązania leży w architekturze - która jest bardziej efektywna od wielu mechanizmów stosowanych aktualnie w portalach.
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Wojciech Zieliński:
Generalnie przewaga tego rozwiązania leży w architekturze - która jest bardziej efektywna od wielu mechanizmów stosowanych aktualnie w portalach.

Dzięki za dodatkowe wyjaśnienia ale nie napisałeś na jak duzycha bazach danych to testowaliscie i przy jakim obciążeniu. zakładając że serwer prezentacyjny robi select z bazy to to rozwiązanie już z idei jest duzo wolniejsze od wczytania gotowego pliku z dysku. Jesli możesz odnieś się jeszcze proszę do kwestii technicznych - narazie nie podałeś żadnych szczegółów - tylko jak ktoś wspomniał marketingową "strawę".
Wojciech Zieliński

Wojciech Zieliński IT
Project/Programme/Pe
ople Manager
(PRINCE2
Practicioner...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Wymagania systemowe jak i kwestie wydajnościowe zależą od projektu, jaki zostanie zrealizowany za pomocą tego systemu. Podawanie jakichkolwiek danych na podstawie np. portali zrealizowanych nie będzie w żaden sposób miarodajne z dwóch powodów:
1. Określony portal/projekt istnieje zrealizowany jedynie w technologii COBAEX CMS - nie ma odpowiednika w technologiach innych/tradycyjnych, więc nie ma możliwości porównania
2. Każdy projekt charakteryzuje się kompletnie inną funkcjonalnością - więc również mechanizmy "pochodzące" z COBAEX CMS są również różne. Dodatkowo takie projekty mają również pewne "autorskie" sposoby wykorzystania mechanizmów z EXa i w związku z tym są nieporównywalne.
Jak wspominałem wcześniej - przewagą jest tutaj architektura wspierana przez określone, udostępnione do użycia techniki realizacji.
W związku z powyższym nie potrafię w sposób jednoznaczny odpowiedzieć Ci na pytanie. Więcej można powiedzieć znając całość projektu - wtedy można określić jak zostaną wykorzystane mechanizmy EXa do tego specyficznego projektu, a również przeprowadzić jakieś jednostkowe testy i analizy porównawcze określonych mechanizmów czy funkcjonalności wykorzystując EXa i np. tradycyjną lub zadaną metodę realizacji.
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Mirosław Ratman:
Jakie technologie są Waszym zdaniem najlepsze dla ultra wydajnych serwisów www ?

1. Lekkie zdarzeniowe, asynchroniczne frameworki (Twisted Web, Tornado),
2. Do statycznych plików lekkie, zdarzeniowe, asynchroniczne serwery (LigHTTPd, NGNiX),
3. lekkie, skalowalne stores (CouchDB, Redis, Voldemort) zamiast RDBMS,
4. aplikacja: client-side templates + JSONP

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Bartłomiej Ogryczak:
2. Do statycznych plików lekkie, zdarzeniowe, asynchroniczne serwery (LigHTTPd, NGNiX),

to ja jeszcze dodam, wszystko co nie nie jest statycznym cachem dynamicznych tresci i nie musi byc trzymane lokalnie np css, js, img ladowac do zewnetrznego CDN ma Amazon S3, kosztuje to grosze i eliminuje setki tysiecy requestow do serwera
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Arkadiusz K.:
Bartłomiej Ogryczak:
2. Do statycznych plików lekkie, zdarzeniowe, asynchroniczne serwery (LigHTTPd, NGNiX),

to ja jeszcze dodam, wszystko co nie nie jest statycznym cachem dynamicznych tresci i nie musi byc trzymane lokalnie np css, js, img ladowac do zewnetrznego CDN ma Amazon S3, kosztuje to grosze i eliminuje setki tysiecy requestow do serwera

Temat CDN jest mi dość dobrze znany - ale amazon S3 w tym przypadku odpada. Z tego co pamietam to "serwuj" ze stananów i irlandii a my potrzebujemy miec dostęp z innych czesci świata. http://www.edgecast.com/ ma ciekawe rozwiazania.Mirosław Ratman edytował(a) ten post dnia 02.08.10 o godzinie 23:22

Temat: najlepsza technologia dla ultra wydajnych serwisów www

Amazon S3: US, Irlandia, Singapur i chyba Japonia ostatnio zostala dodana

Ja ostatnio stanalem przed wyborem firmy do obslugi eventu online z przewidywalnymi 50,000 requestami/sekunde i po dlugich poszukiwaniach wybor padl na Amazon AWS, niestety nigdzie indziej nie moglem znalezc tak latwo konfigurowalnych narzedzi do load balancingu, CDN i dokladaniu kolejnych instancji EC2, nie wspomne juz o konkurencyjnych cenach.

Odnosnie szybkosci serwowania danych to mam CDN wlasnie w Irlandii i nie ma problemow z szybkoscia (serwer w Polsce wpiety do PIX'a).
Dla calej Europy powinno byc bez problemow, pozostalych koncowek nie testowalem (jedynie East US) ale jesli masz klienta miedzynarodowego to amazon ma Amazon CloudFront dla CDN i nie przejmujesz sie gdzie jest klient, chmurka zaserwuje dane z najblizszej lokalizacji.

Jesli masz klienta w Australii to faktycznie edgecast ma tam koncowke, amazon nie ma



Wyślij zaproszenie do