Damian Usnarski Freelancer
Temat: Skalowanie aplikacji na wiele maszyn i związane z tym...
Witam,mój pierwszy temat tutaj :) Jestem pod wrażeniem ilości informacji jakie można tutaj znaleźć, tak więc wykorzystam to i poradzę się w sprawie która nurtuje mnie już od dłuższego czasu.
Jestem obecnie od dłuższego czasu w trakcie konfigurowania serwera w chmurze Amazonu przeznaczonego do hostingu wymagających aplikacji webowych napisanych w Railsach i Django.
Chcę zaoferować użytkownikom maksymalną moc obliczeniową dla ich aplikacji, w tym celu zamierzam skorzystać z możliwości rozkładania obciążenia ich aplikacji na wiele maszyn jednocześnie z wykorzystaniem haproxy, nginx itd. Udostępnię też możliwość uruchamiania aplikacji "stand-alone", dobrym przykładem takich aplikacji będzie np. klient torrenta, mimo, że nie zamierzam udostępniać możliwości jego użycia.
Problemem dla mnie, który na pewno ma jakieś proste rozwiązanie, a jednak brakuje mi wiedzy w tym temacie, to odpalanie tych usług. Serwer z katalogiem domowym użytkowników, a więc także i z ich wszystkimi aplikacjami jest osobną maszyną wirtualną do której użytkownicy mają dostęp także przez SSH. Jednak chciałbym uniknąć możliwości uruchamiania aplikacji na tym serwerze by uniknąć jego przeciążenia, serwer ma służyć tylko i wyłącznie jako storage dla katalogów domowych.
Na chwilą obecną mam też już jeden serwer web do którego mam podpięte przez NFS katalogi domowe użytkowników z serwera storage. Chciałbym też stworzyć kolejną maszynę która by zajmowała się "hostowaniem" aplikacji nie związanych z http, czyli wszelakiego rodzaju klientów itd. Nie chcę jednak użytkownikom komplikować życia, wymuszając na nich wgrywanie plików na jedną maszynę, a odpalanie programów na drugiej, więc tutaj powstaje moje pytanie - jak umożliwić użytkownikom normalne uruchamianie aplikacji na serwerze storage, ale sprawienie, by te aplikacje wykonywały się zdalnie na zewnętrznym serwerze, transparentnie dla użytkowników? Nie mam pojęcia od której strony się za to zabrać, jakich technologii użyć, prawdę mówiąc moja wiedza w tym temacie jest równa zeru, a jednak zależy mi na udostępnieniu takiej możliwości by zapewnić użytkownikom raz, że wygodę, dwa, wydajność poprzez transparentny load-balancing, a sobie problemów w przyszłości z przeciążonym storage.
EDIT: Wyedytował bym temat, bo raczej bardzo średnio oddaje treść wypowiedzi, ale widzę, że nie ma tutaj takiej możliwości.Damian Usnarski edytował(a) ten post dnia 07.03.12 o godzinie 16:34