Jeżeli startup okazuje się dużym sukcesem, często popularność serwisu zaskakuje samych twórców. Z reguły zwiększenie liczby serwerów utrzymujących serwis jest nieuniknione, ale ich liczbę można ograniczyć nawet 10-krotnie. Kluczem jest optymalizacja wydajnościowa systemu.
Jeżeli startup okazuje się dużym sukcesem, często popularność serwisu zaskakuje samych twórców.
W sytuacji gdy z miesiąca na miesiąc liczba wizyt rośnie z kilku tysięcy do kilku milionów miesięcznie wykorzystane zostają wszystkie zasoby serwera, serwis przestaje działać płynnie, a w okresach szczytowej aktywności użytkowników połączenie może być dla niektórych z nich niemożliwe, pojawia się syndrom „pana gąbki” znany z „naszej-klasy”.
Naturalnym i najlepszym rozwiązaniem wydaje się być zwiększenie liczby serwerów, ale czy na pewno? Z reguły zwiększenie liczby serwerów jest nieuniknione, ale ich liczbę można ograniczyć nawet 10-krotnie. Kluczem jest optymalizacja wydajnościowa systemu.
Jeżeli ekspertowi od optymalizacji systemów zadasz pytanie: Czy ten system może przyspieszyć 10-krotnie? Odpowie: Pytaniem nie jest czy może, tylko na kiedy i ile pracy koncepcyjnej to będzie wymagało?
W przypadku często odwiedzanych serwisów zawsze warto jest najpierw optymalizować, bo koszt optymalizacji wydajnościowej rozpatrywany w dłuższym okresie czasu będzie zdecydowanie mniejszy niż rozwój infrastruktury bez optymalizacji. Optymalizacja wydajnościowa pozwala bardzo istotnie ograniczyć koszty utrzymywania infrastruktury. Jest to nie do przecenienia w każdej fazie rozwoju serwisu, ale szczególnie w początkowym okresie, gdy projekt nie przynosi jeszcze spodziewanych przychodów.
Dobrze jest zadbać o zachowanie podstawowych standardów skalowalności już w fazie projektowania, tak aby w miarę rozwoju serwisu nie napotkać na barierę nie do pokonania. W przypadku serwisu o dużym stopniu skomplikowania, gdy optymalizacja wymagana jest na styku warstwy aplikacyjnej z warstwą systemu operacyjnego, a przez to wymaga eksperckiej wiedzy i doświadczenia w obu tych obszarach, wskazane jest skorzystanie z pomocy ekspertów od optymalizacji serwisów.
Poniżej chciałbym przedstawić korzyści płynące z optymalizacji na przykładzie serwisu www.futbolowo.pl, który jest obecnie jednym z najpopularniejszych serwisów piłkarskich.
Case Study - Futbolowo.pl
Serwis Futbolowo.pl działa od lutego 2008 roku. Jest odwiedzany obecnie przez 250 tys. unikalnych użytkowników generujących 8 mln odsłon miesięcznie.
Serwis oferuje zarejestrowanym użytkownikom możliwość darmowego tworzenia oraz prowadzenia strony internetowej klubu piłkarskiego w oparciu o udostępniony mechanizm. Portal umożliwia prezentację podstawowych informacji o klubie, takich jak: historia klubu, zawodnicy, bieżący terminarz rozgrywek, tabela ligowa, a także galeria zdjęć. Automatycznie generowane statystyki spotkań, zawodników oraz inne dodatkowe funkcje systemu pozwalają na atrakcyjne przedstawienie działalności poszczególnych klubów.
Diagnostyka
We wrześniu 2008 roku liczba obsługiwanych stron klubowych przekroczyła 1,5 tys. i portal zbliżył się do bariery rozwoju w postaci wydajności bazy danych.
Wspólnie z twórcami serwisu zdiagnozowaliśmy problem. Liczba zapytań do bazy danych była tak duża, że pojedynczy serwer o przeciętnej mocy nie był w stanie ich obsłużyć. Najprostszym rozwiązaniem było dostawienie większej liczby serwerów o dużej mocy obliczeniowej oraz zastosowanie replikacji bazy danych na dodatkowe serwery (praca w trybie master-slave). Nie było to jednak rozwiązanie optymalne z punktu widzenia kosztów utrzymania infrastruktury oraz nie rozwiązywało definitywnie problemu skalowalności.
Optymalizacja wydajnościowa
Optymalnym rozwiązaniem pozwalającym na znaczne obniżenie wymaganej liczby oraz wydajności pojedynczych serwerów okazał się sharding bazy danych.
Sharding polega na podziale jednej bazy danych na kilka mniejszych baz według określonego klucza. W naszym przypadku kluczem był pojedynczy klub piłkarski. Bazy danych poszczególnych klubów zostały rozłożone równomiernie pomiędzy serwery, tak aby każdy serwer bazodanowy obsługiwał zbliżoną liczbę zapytań. Aby można było wdrożyć takie rozwiązanie najpierw należało wprowadzić odpowiednie zmiany zarówno do warstwy aplikacyjnej, jak i do warstwy systemu operacyjnego, tak aby aplikacja mogła korzystać z kilku baz danych w różnych lokalizacjach równocześnie. W efekcie architektura baz danych jest w pełni skalowalna i nie będzie już przeszkodą w dalszym rozwoju serwisu.
Efekt
Potwierdzeniem skuteczności działań optymalizacyjnych był kilkudziesięciokrotny spadek obciążenia serwerów do stabilnego poziomu parametru load w okolicy 1, a przede wszystkim podwojenie się liczby stron klubów piłkarskich w ciągu zaledwie dwóch tygodni po wdrożeniu optymalizacji wydajnościowej z 1,5 tys. do 3 tys. w ostatnim dniu października 2008 roku.
Wnioski
Profesjonalny serwis powinien być pod stałą obserwacją, tak aby na bieżąco diagnozować bariery rozwoju, których wystąpienie jest nieuchronne oraz rekomendować z wyprzedzeniem odpowiednie działania optymalizacyjne. Działania optymalizacyjne nie powinny ograniczać się do przeciwdziałania barierom rozwoju. Dla dużych serwisów równie ważny jest czas oczekiwania na załadowanie się strony.
Według badań Amazon każde 100 milisekund opóźnienia kosztuje tą firmę 1% spadku sprzedaży. Firma Google z kolei doświadczyła, że wydłużenie czasu oczekiwania na wyniki w wyszukiwarce o 5 sekund spowodowało zmniejszenie ruchu o 20%. Dom maklerski może stracić 4 miliony dolarów w ciągu każdej milisekundy jeżeli jego platforma transakcyjna jest o 5 milisekund wolniejsza niż aplikacja konkurentów.
Powyższe dane cytowane za serwisem www.highscalability.com jednoznacznie wskazują, że działania optymalizacyjne, są nie tylko konieczne dla utrzymania rentowności projektów internetowych, ale przede wszystkim są jednym z podstawowych narzędzi uzyskania przewagi konkurencyjnej na rynku elektronicznym.
Pobierz ebook "Social media marketing dla firm i agencje się w nim specjalizujące"
Zaloguj się, a jeśli nie masz jeszcze konta w Interaktywnie.com - możesz się zarejestrować albo zalogować przez Facebooka.
Projektujemy i wdrażamy strony internetowe - m.in. sklepy, landing page, firmowe. Świadczymy usługi związane …
Zobacz profil w katalogu firm
»
1stplace.pl to profesjonalna agencja SEO/SEM, specjalizująca się w szeroko pojętym marketingu internetowym. Firma oferuje …
Zobacz profil w katalogu firm
»
Pomagamy markom odnosić sukces w Internecie. Specjalizujemy się w pozycjonowaniu stron, performance marketingu, social …
Zobacz profil w katalogu firm
»
W 1999 roku stworzyliśmy jedną z pierwszych firm hostingowych w Polsce. Od tego czasu …
Zobacz profil w katalogu firm
»
Pozycjonujemy się jako alternatywa dla agencji sieciowych, oferując konkurencyjną jakość, niższe koszty i większą …
Zobacz profil w katalogu firm
»
taa...<br /> uwierz mi nie warto :)