Pierwsze dni online: jak nie zabić swojej witryny

14

Załóżmy, że masz tę nową, fantazyjną witrynę z dużą ilością danych (np. Duże obrazy), i zamierzasz umieścić ją w Internecie. Jeśli zrobisz „za dużo” reklamy, w ciągu pierwszych dni witryna zostanie przytłoczona żądaniami.

Jak mogę zmniejszyć to ryzyko?

Myślałem o

  • stopniowo, podobnie jak SO i SF: „prywatna” beta, publiczna beta, publiczna
  • zezwól X znajomości sesje jednocześnie, więc podłączony użytkownik nadal ma dobre doświadczenia z witryną, a pozostali mają miłe przeprosiny

Nie mogę:

  • kup więcej serwerów, ponieważ po pierwszych dniach witryna będzie miała znacznie mniejszy ruch :)
Mathieu
źródło
6
W ciągu 15 lat tworzenia i wydawania stron. Tak myślą wszyscy ... umieść nową stronę na my i boom! Prawie nigdy się nie zdarza. Zwykle jest odwrotnie, że dostajesz mniej niż się spodziewałeś. Ale heh, zbyt wielu użytkowników to DOBRY problem;)
Chad Grant
1
miałem ten problem i nie jest to naprawdę przyjemne miejsce ...
Gabriel Solomon

Odpowiedzi:

11
  1. Buforuj jak najwięcej. Wszystkie strony tworzone dynamicznie powinny być buforowane, aby użytkownicy otrzymali wersję statyczną. W komponentach strony, które wykonują kwerendę, db również powinien być buforowany.
  2. Spróbuj skorzystać z zewnętrznej usługi, takiej jak Amazon S3, do udostępniania zdjęć i multimediów (lub przygotuj ją do użycia, jeśli strona nagle otrzyma mnóstwo ruchu).

Rozpoczęcie transmisji stopniowo może działać dla SOF i SF, ponieważ mają już wbudowaną reklamę i popyt, ze względu na popularność blogów Jeffa i Joela. Jeśli nie masz prawie gwarantowanej bazy użytkowników, tak jak oni, rozpoczęcie transmisji stopniowo może być fatalne.

Unikałbym ograniczania przez równoczesne sesje, ponieważ trudno jest określić koniec sesji spowodowany brakiem aktywności. Jeśli użytkownik wyjdzie na 15 minut i spróbuje ponownie załadować swoją stronę, tylko po to, aby otrzymać komunikat o błędzie - właśnie straciłeś użytkownika.

Yaakov Ellis
źródło
Miałem na myśli sesje, ale moje palce oznaczały połączenia. Poprawione
mathieu
5

Ile planowania poszło na twój model danych? Czy zaprojektowałeś schemat, który pozwoli Ci zwiększyć wolumen zapytań bez kosztownych sortowań, kolumn binarnych lub skomplikowanych połączeń? Czy dostroiłeś backend bazy danych (zakładając, że masz)?

Jak serwujesz swoje „duże obrazy”? Czy możesz to podzielić na osobny proces serwera WWW, a nawet oddzielną domenę?

Czy załadowałeś przetestowany system? Narzędzia takie jak ApacheBench i Siege są nieocenione.

Czy cała konfiguracja jest w svn? Czy Twoje wdrożenie jest zautomatyzowane? Będziesz zadowolony, gdy będziesz musiał wdrożyć naszą aplikację na drugi serwer.

Dave Cheney
źródło
zgodziłem się z testami obciążenia, mieliśmy stronę internetową, która pominęliśmy testy, ponieważ byliśmy w napiętym terminie i to wróciło i dupa. I musiałem majsterkować, gdy strona była na żywo, aby doprowadzić obciążenie serwera do stanu umożliwiającego zarządzanie (osiągnęliśmy 200% obciążenia procesora za pomocą serwera dedykowanego dla 4 procesorów)
Gabriel Solomon
1

System zaproszeń może czasem być dobrym sposobem kontrolowania korzystania z witryny przez użytkowników. Na początku rozdaj określoną liczbę zaproszeń, aby strona nie została przytłoczona. Następnie daj każdemu użytkownikowi kilka zaproszeń do przekazania innym, powoli zwiększając liczbę użytkowników w witrynie. W ten sposób na początku nie zobaczysz zbyt wielu osób odwiedzających witrynę i nie uzyskasz dużego ruchu.

Minusem jest oczywiście to, że na początku odrzucasz wielu użytkowników, którzy nie mają zaproszeń i którzy mogą nie wrócić później. Jeśli nie masz naprawdę dobrej strony, z której ludzie są bardzo podekscytowani, może to być zły ruch. To zależy od strony. Dodatkowo trzeba mieć trochę czasu na rozwój, aby dodać system zaproszeń.

Rich Adams
źródło
1

Przed uruchomieniem upewnię się, że masz solidną infrastrukturę monitorowania. Musisz mieć dane, na których oprzesz swoje decyzje - oznacza to pomiar obciążenia procesora na serwerach, sprawdzanie, czy obciążenie rozkłada się równomiernie na pudełka, a jeśli coś się stopi, wiesz, który to był.

Wiedząc, gdzie jest problem, znacznie skróci czas potrzebny na odpowiedź. Widziałem zbyt wiele witryn uruchamianych bez jakiegokolwiek monitorowania, z zamiarem, że zostaną one utworzone później ... po pożarze. To jest głęboko błędne.

Tim Howland
źródło
1

Możesz przyjrzeć się hostowaniu treści statycznych przez inne firmy, takie jak Amazon S3. W zależności od twojej aplikacji może być warto również zachmurzyć niektóre (tak jak ja nienawidzę modnego hasła) za pomocą Amazon EC2.

Adam Gibbins
źródło
0

Niektórzy dostawcy hostingu pozwalają na chwilę przetestować prywatne serwery o maksymalnej pojemności, a następnie osiąść na rozsądnej pojemności po okresie próbnym.

DreamHost jest jednym z przykładów:
http://www.dreamhost.com/hosting-vps.html

Torben Gundtofte-Bruun
źródło