Pracuję nad moim [pierwszym] startupem od miesiąca i chociaż prawdopodobnie minęło jeszcze jeden miesiąc od wydania alfa, chcę wiedzieć, jak go wdrożyć we właściwy sposób. Strona będzie początkowo bardzo obciążona (sieć + procesor) dla nowego użytkownika, więc myślę o oddzielnym serwerze/kolejce dla tego wstępnego procesu, aby nie spowalniała strony dla obecnych użytkowników.Jak wdrożyć witrynę [Ruby on Rails] w skalowalny sposób?
Na podstawie moich dotychczasowych badań, obecnie skłaniam się ku nginx + haproxy + unicorn/thin + memcached + mysql i wdrażaniu na Linode. Jednakże nie posiadam żadnego wcześniejszego doświadczenia w żadnym z powyższych; dlatego mam nadzieję wykorzystać doświadczenie społeczności.
- Czy powyższa architektura wydaje się uzasadniona? Wszelkie sugestie/artykuły/książki, które polecasz?
- Czy Linode to dobry wybór? Heroku/EY wydaje mi się zbyt drogi (przynajmniej dopóki nie mam wystarczających dochodów), ale czy brakuje mi innej lepszej opcji? MediaTemple?
- Jakieś dobre sugestie dotyczące architektury równoważenia obciążenia? Wciąż o tym czytam.
- Czy lepiej mieć 2 oddzielne instancje serwera Rails na 2 oddzielnych liniach lub 1 wystąpienie na linwie o dwukrotnie większej pojemności (pod względem pamięci RAM/pamięci/przepustowości)? Z iloma Linodami powinienem zacząć?
- Którą dystrybucję Linuksa powinienem wybrać? (Linode oferuje 8 różnych - http://www.linode.com/faq.cfm) Czy są jakieś względne zalety/wady między nimi dla strony Rails?
Przepraszam, jeśli któreś z moich pytań jest głupie lub sprzeczne; proszę przypisać to do mojego niedoświadczenia.
Dziękujemy za szczegółową odpowiedź. Kilka pytań uzupełniających dla Ciebie: - (1) Używam Ruby 1.9.2. Czy w tym przypadku REE nadal ma przewagę? (2) Jaką przewagę zapewnia Pasażer nad Thin? –
Pasażer automatycznie zarządza klastrem procesów. Z cienkim, musisz ręcznie zarządzać każdym backendem. Pasażer korzysta również z funkcji kopiowania przy zapisywaniu REE, aby dzielić się pamięcią szkieletową w instancjach zaplecza, oszczędzając pamięć RAM. Instalacja i konfiguracja jest dość prosta. –