Cześć wszystkim. Mam w planach napisać serwis społecznościowy, dlatego chciałbym dowiedzieć się coś o load balancing'u, i miałbym kilka pytań o technologie do takiego serwisu.
Możemy założyć, że w serwisie byłoby kilkadziesiąt tysięcy użytkowników w jednym momencie (online). Chciałbym również mieć ten serwis w formie aplikacji, najpierw na Androida (wiadomo czemu).
Obecnie potrafię pisać w PHP i używam bazy danych MySQL, nie znam żadnego c/ruby/pythona/asp net.
Tak wiem, wszystko zależy od skryptu, ale pomińmy tę kwestię. Pamiętam o cache więc to również możemy pominąć.
- Czy mogę taki serwis napisać w PHP (framework Kohana - raczej lekki)? Jak PHP ma się do skalowalności, w czym w ogóle jest problem z PHP przy load balancingu, skoro i tak load balancer rozdziela ruch? - bo nie rozumiem co ma do tego język i kod.
- Jeszcze raz o tym load balancingu - jak to w końcu działa? W kodzie strony coś się zmienia? Jeśli będę korzystał z chmury, np. Oktawave, to czy ułatwia to load balancing np. w PHP?
- Czy baza danych MySQL będzie wystarczająca? Co się będzie działo, jeśli osiągnie ten swój "próg" kilku milionów rekordów? Jaką bazę danych zalecacie, i czy ciężko się przerzucić z MySQL na np. PostgreSQL (o ile się nadaje ta baza do takiego serwisu)?
- Mam w planach funkcję czatu publicznego, jak np. na fotce - z podziałem na "pokoje" i ludzie mogą na żywo pisać - jak najlepiej takie coś ugryźć w PHP, by nie zarzynało serwera i bazy przy sporej liczbie użytkowników?
- Chcę również zrobić aplikację dla tego serwisu, więc będę musiał ruszyć również coś innego niż PHP - jaki język proponujecie, bym nie musiał uczyć się rok czasu, aby napisać taką aplikację (zakładki jakieś, posty, wiadomości - podobne rzeczy jak w apce Facebooka)? Do pisania apek na androida jest chyba Java, ale kiedyś czytałem, że można w Pythonie to napisać i przy okazji zmieniając maszynę interpretującą/kompilator (?), można utworzyć od razu aplikacje na kilka systemów mobilnych.