Łukasz Łuczak
Language: Polish
Pewnego dnia przyszedł klient, który chciał mieć serwis z kamerkami, projekt opisał jako zbliżony do największego polskiego portalu tego typu z niewielkimi zmianami. Pierwsza wersja powstała sprawnie bez problemów, portal ruszył, pojawiły się nowe pomysły i nieznane problemy.
Chciałbym opowiedzieć o tym jakie problemy mogą powstać przy robieniu projektów "wyglądających jak", kiedy pominięty zostaje aspekt analizy wymagań, oczekiwań klienta, jego pomysłów na rozwój a także przy niepoprawnym oszacowaniu ruchu. Przedstawię kolejne ściany jakie musieliśmy przebić by natrafić na kolejne problemy. Wśród przedstawionych problemów wskażę między innymi: niedoszacowanie ruchu na chacie, błędny projekt bazy danych, niewłaściwa konfiguracja serwerów, problemy z oprogramowaniem streamingowym, złe dobranie kodeków w kliencie flashowym, problemy z flashem, złe dobranie serwerowni / oferty serwerowni, a także zagadnienie live statystyk oraz obsługi live konkursów bazujących na statystykach.
Przedstawię także w jaki sposób zostały rozwiązane te problemy, jak wyglądała docelowa architektura oraz jak udało się doprowadzić produkt do wersji stabilnej będącej w stanie wytrzymać więcej ruchu niż u konkurencji (licząc na jeden serwer).
Podczas prób rozwiązania problemów sprawdzane były różne technologie i rozwiązania, które dokładały swoje problemy. Najciekawszym aspektem było łatanie live i ostry weekendowy crunch - największy ruch był w wieczór w piątek oraz w sobotni wieczór i potem połowę nocy, w związku z tym sporo zmian było robionych w piątek wieczorem, testowanych live a potem były robione w nocy i przez cały dzień by znów móc live przetestować na żywym organizmie.
Projekt pochłonął trzy razy więcej niż zakładał pierwotny budżet - tylko dzięki hojności klienta, który dużo płacił za dalsze modyfikacje udało się wyjść na zero.
6. Problemy ze
streamingiem
● Niemożliwe testowanie na localhost
● Niemożliwa kompilacja aplikacji na Red5
● Problem z instalacją i konfiguracją na serwerze
● Działa!
● Albo i nie...
● Zła wersja serwera
● Ruszyło
● Jakoś(ć) średnio
7. Próby na żywo I
● Chat kuleje
● Utylizacja serwera blisko 80%
● Słaba jakość
● Coś rwie video
● Zawiesza się
8. Szybki fix I
● Błędy w kodzie PHP
● setInterval =/= setTimeout
● Zmiana kodeków
● Działa
9. Próby na żywo II
● Działa
● … ale tylko do 50 osób
● Utylizacja serwera blisko 100%
● Szybka rekonfiguracja
● Problemy z hostingiem
10. Architektura sprzętowa
● Serwery w OVH
● Kimsufi
● Zmiana oferty/polityki OVH
● Dodatkowe serwery
● Serwer streamingowy z wyższej oferty z opcją
PRO
11. Próby na żywo III
● Streaming daje radę
● … w HD !
● Granica 120 osób
● Optymalizacja bazy danych
● 150 osób i działa
13. Nasz klient nasz pan
● Dodano rankingi
● Dodane konkursy
● Dodano listę ulubionych
● Dodano listę zbanowanych
● Dodano privy
● Dodano więcej życia
● 130 osób i ...
15. Mamy DJ'kę
● Streaming video wytrzymuje około 1 tys.
widzów
● Chat wytrzymuje około 1,5 tys. widzów
● Statystyki live
● Stałe transmisje DJ'ki
● „Dołóżmy nowe funkcje”