W życiu każdego startupa w pewnej chwili wydajność staje się poważnym i pilnym problemem. W niektórych przypadkach problem ten przeradza się w permanentny dramat, inni sobie z nim radzą. Ponieważ temat ten wydał mi się dość ciekawy postanowiłem zapytać się kilku polskich serwisów jak radzą sobie z zagadnieniem wydajności serwisów www.
Pierwszy na pytania odpowiedział Michał Jaskólski IT Director nokaut.pl:
Czy tak zwana “wydajność” to duży procent w budżecie takiego serwisu jak twój ? Jak dużo wydajesz na utrzymanie infrastruktury (mogą to być przybliżone kwoty lub widełki)
Obecnie koszt infrastruktury to około 5% naszych przychodów. Z wydajnością i skalowalnością związanych jest jednak mniej więcej 20-30% projektów realizowanych przez zespół IT, a to ma również wpływ na budżet.
Jak radzisz sobie z utrzymaniem odpowiedniej wydajności serwisu, czy zatrudniałeś (zatrudniasz) specjalistów w tej dziedzinie?
Równolegle zwiększamy liczbę serwerów, szukamy tych elementów aplikacji, które stanowią największe obciążenie i pracujemy nad ich optymalizacją. To ciągły proces.
Jeśli chodzi o specjalistów, to kilka osób w naszym zespole miało już wcześniejsze doświadczenia z serwisami internetowymi odwiedzanymi przez kilkaset tysięcy użytkowników dziennie. Już na starcie mieliśmy więc pewną wiedzę w tym zakresie.
Czy w tych czasach (dostępnych technologi i taniejących serwerów, łączy itp) wydajność może być permanentnym problemem - czy też powinna być rozwiązywana wraz z “kolejną dostawą serwerów”
W tym momencie, gdy z dnia na dzień można uruchomić np. 100 dodatkowych serwerów korzystając z usługi Amazon EC2, a know-how dotyczący skalowalności jest łatwo dostępny, główną barierą staje się czas wprowadzania zmian w aplikacji, który z kolei zależy od wiedzy i doświadczenia programistów oraz administratorów. Wydajność może być permanentnym problemem tylko jeśli tempo wzrostu oglądalności jest na tyle duże, że “development nie nadąża za traffikiem”.
Twitter to już chyba symbol problemów z dostępnością serwisu internetowego w tych czasach - co według Ciebie może być główną przyczyną tych problemów i jaka kwota pieniędzy powinna je definitywnie rozwiązać
Twitter otrzymał spore dofinansowanie, stać ich na zakup lub dzierżawę setek maszyn, więc nie sprzęt jest tu problemem, a sama aplikacja. Wąskie gardła zapewne są dwa: połączenia HTTP (szczególnie te związane z API) oraz baza danych. Rozwiązania typu haproxy oraz nginx lub lighttpd, w połączeniu z dobrym cache w pamięci RAM (niekoniecznie opartym na popularnym memcached), pomogłyby serwisowi rozwinąć skrzydła. Jeśli chodzi o bazę danych, to z pewnością tzw. sharding, czyli w tym wypadku - przechowywanie danych konkretnego użytkownika na 2-3 konkretnych serwerach bazodanowych wybranych spośród kilkuset dostępnych w puli, rozwiązałby wiele problemów. Wówczas rzeczywiście wystarczyłaby kolejna dostawa serwerów by obsłużyć kolejne tysiące userów.
Być może jest też tak, że Twitterowi brakuje kogoś na miarę Cala Hendersona, głównego architekta Flickra i autora znakomitej książki “Building Scalable Web Sites”, dostępnej również w języku polskim - http://helion.pl/ksiazki/skalow.htm
Jakieś rady dla tych którzy właśnie zauważyli, że ich popularny startup zaczyna wolno działać?
Warto przeznaczyć kilka wieczorów na lekturę bloga highscalability.com - to obecnie najciekawsze źródło informacji na tematy związane ze skalowalnością i wydajnością.
Kolejny krok to przejrzenie naszej prezentacji z ostatniego 3campa - http://www.slideshare.net/grzybciak/skalowalno-przy-byskawicznym-wzrocie/. Wspominamy tam o kilku pożytecznych narzędziach (m.in. nginx, haproxy, memcached, xdebug, mysqlsla, sphinx) oraz o sposobie podejścia do problemów z wydajnością w funkcjonującym już projekcie.
Obrazek zabitego Pana Gąbki pobrałem z prezentacji nokaut.pl na temat skalowalności.
Odpowiedzi od kolejnych serwisów internetowych już wkrótce, ten sam zestaw pytań zadałem takim serwisom jak fotka.pl, wykop.pl czy patrz.pl.
Popularity: 3% [?]
Polecam też prelengecję Vladimira Mitioucheva:
http://www.techit.pl/Aktualnosci/View.aspx?1414.vladimir+mitiouchev+o+klastrach+www
To oczywiście ciekawe co mówi pan Jaskulski, ale te aluzje do wydajności naszej-klasy w kontekście nokautu mnie rozbawiły. To zupełnie nie ta liga i jakiekolwiek porównania tutaj są nie na miejscu. Rozwiązywanie problemów z wydajnością w takim relatywnie małym serwisie jak nokaut to naprawdę żaden problem.
Bardzo ciekawa notka. Może przydało by się trochę więcej liczb, ale cóż.. właściciele takich serwisów nie chętnie dzielą się takimi informacjami. Czekam na następne, w szczególność na fotke.pl (swoją drogą przy 6,6 mln kont to muszą hostować więcej zdjęć niż fotosik).
Dało by się zadać pytanie w rodzaju “czy bardziej opłaca się inwestować w godziny programistów czy w serwery?”
@Gargamel, nawet jeśli wydaje Ci się to śmieszne, ok. Faktycznie skala jest inna.
Jednakże co z kolei mnie śmieszy, to fakt, że mimo dobrego wsparcia finansowego i sporej ilości czasu, która upłynęła od pojawienia się pierwszych problemów, to nieszczęsna N-K nie była i (co jak widać) chyba nadal nie jest w stanie sobie poradzić z problemem, o którym mówimy.
Wychodzi tutaj albo kompletna ignorancja osób odpowiedzialnych za zarządzanie tym przedsięwzięciem, albo dramatyczna niekompetencja osób zatrudnionych w celu rozwiązania problemów wydajności. O ile potrafię zrozumieć to, że N-K cierpi na problemy będące wynikiem braku wiedzy czy odpowiedniej dalekowzroczności, które wystąpiły na etapie tworzenia, to nie uwierzę, że nie ma ludzi, którzy potrafią takie problemy rozwiązywać.
W związku z powyższym, można by się nawet zastanowić, czy problemy z wydajnością N-K były/są efektem syndromu ‘jakoś to będzie’, czy ‘ja wszystko wiem najlepiej’ albo może pospolitego NIH (Not Invented Here)?
Co do samego tekstu - Hazan ma chyba jakąś awersję do tego portalu, którą ja u siebie również odkrywam. na dodatek muszę przyznać, że perwersyjnie mnie to fascynuje ;) Niemniej jednak ugryzł zagadnienie od ciekawej strony i chętnie poczytam, co inni ’specjaliści’ mają do powiedzenia.
Jeden z twórców korporacji Google czyli Sergey Brin postanowił uruchomić swojego bloga o nazwie “too“.
Rozczarują się wszyscy Ci którzy spodziewają się tam znaleźć informacje o pracy w Google i newsów z tej korporacji. Too ma być prywatnym blogiem, na którym Sergey będzie opisywał swoje prywatne życie.
Ciekawe czy to tylko chwilowy kaprys miliardera czy też będzie to regularnie aktualizowany blog?
Popularity: unranked [?]
Jeśli nie odwiedzasz regularnie Antyweb.pl (co jest oczywiście dużym błędem :) ), to specjalnie dla ciebie publikuję co miesiąc listę najciekawszych wpisów z ostatniego miesiąca.
Oto co ciekawego mogłeś przegapić w sierpniu 2008:
Popularity: unranked [?]
Gorąco zachęcam do przeczytania porad od Jasona Calacanisa (CEO Mahalo, wcześniej Weblogs itd), na temat PR-u i sposobu na zdobycie rozgłosu dla swojego biznesu i przedsięwzięcia. Jedną z pierwszych rad Calacanisa jest “Fire Your PR Company” - czyli zamiast zatrudniać drogą firmę od PR, zajmij się tym osobiście.
W dalszej części znajdziemy 10 porad praktyka na temat tego jak się komunikować, z kim, jakimi metodami, co robił jako CEO początkujące firmy itp. Wprawdzie nie wszystko da się wykorzystać w naszych realiach - jednak uważam, że wiele z tych informacji może się przydać właścicielom świeżych startupów.
Popularity: unranked [?]
