Przenosiny aplikacji

Witam… od paru lat programuję w PHP i ROR jest dla mnie pewnym “zjawiskiem”… a odpowiedzi na pewne dręczące mnie pytanie nie mogę znaleźć… po zainstalowaniu RoR na swoim komputerze pod windą i stworzeniu aplikacji webowej… czy jest możliwość przeniesienia tak stworzonej aplikacji np. na hosting pod linuksem bez poważniejszych konsekwencji ?

Jak coś takiego wygląda? Tak jak w php ? połącz z ftp, kopiuj(zmien dan konfiguracyjne), odpal! Konsola RoR działa tylko tak jak ta chociażby w symfony ?

coś mi tu nie gra :slight_smile:

Pozdrawiam

Tak, projekty da się przenosić jak tylko chcesz. Możesz kopiować całe ftpem, aczkolwiek wskazane jest tu posiłkowanie się svn (ale jak chcesz ftp to nie ma problemu). Ror nie zmienia w tej kwestii nic. Jest możliwość skorzystania z narzędzia do deplojowania (chyba nie ma dobrego polskiego słowa na to:P) naszej aplikacji. Są to narzędzia: capistrano oraz vlad the deployer.

Konsola RoR działa tak jak symfony? Raczej odwrotnie, tylko że railsowa nie ma sobie równych ;). Ror ma wielu naśladowców, nie na odwrót ;).

“coś mi tu nie gra smile”. A co dokładnie?:slight_smile:

Niektórzy używają “wdrażanie”.

Hm, wdrażanie pracownika, wdrażanie technologii, oprogramowania - ok. Ale wrażanie w tym kontekście mi nie pasuje :P. Wdraża się raz (a dobrze), deploy to raczej powtarzalna czynność.

ot: wydawało mi się, że odpowiednikiem jest “przygotowywać” z racji pochodzenia tego słowa i jego nacieku czysto militarnego, a z technicznego punktu widzenia to polskim odpowiednikiem będzie “używać” w kontekście używania pewnych umiejętności, narzędzi dla uzyskania pewnych celów (@radarek słusznie użyłeś deploy, ponieważ narzędzi się używa…), lepiej jednak wybrać “develop” jeśli mamy na myśli powiększanie, ulepszanie itd…(tu w domyśle - naszej aplikacji - a nie narzędzia (przytoczonego capistrano, chyba że mamy zamiar rozwijać narzędzie :wink: ) ) - wiem zagmatwałem … wracając do tematu…

wczoraj już miałem dość czytania nt. Ruby i ciufy(ciufci) z czego prawdę mówiąc zrobił się w głowie mały kocioł. Po ledwo przespanej nocy jednak wiele rzeczy nabrało sensu :slight_smile: Zaraz spróbuję wyczarować coś z SVN i capistrano…

Dziękuję za odpowiedź i naprowadzenie na odpowiednie tory… google znów będzie miało mnie dość :wink:

Pozdrawiam
Piotr Mąsior

Jeśli dopiero zaczynasz przygodę z RoR to wystarczy Ci podejście z svn. Potem tylko commity i update na serwerze docelowym.

Polecam przemyśleć przesiadkę po jakimś czasie z Windy na jakiś 'nix-opodobny system jeśli planujesz pracę w Rubim. Szczególnie jeśli oprócz pisania aplikacji będziesz się zajmował “deploymentem”.

Chodzi o to, że na 'nixie skonigurujesz sobie środowisko, które będzie najbardziej podobne do środowiska produkcyjnego (chyba, że planujesz postawić aplikację pod Win - nie polecam - Ruby, Apache, Mongrel czy Nginx pod Win albo nie istnieje albo to niewypał).

Im bardziej Twoje środowisko pracy będzie podobne do środowiska produkcyjnego tym łatwiej będzie Ci wyłapać wszystkie błędy + odpowiednio skonfigurować system. Jeśli nie możesz teraz zrezygnować z Windy z jakichś powodów to polecam postawić środowisko testowe, nazwijmy je Gamma, na którym będziesz mógł testować nie tylko swoją aplikację ale i sam proces “deploymentu” (np. Twoje przepisy Capistrano jeśli takowe napisałeś).

U mnie to wygląda tak:

Development na Gentoo (Rails działa w trybie development)
Gamma - Debian Etch, Ruby + Rubygems skompilowane ze źródeł (ponieważ akurat Etch ma starą wersję Rubiego w repozytorium, jakieś 1.8.2 czy coś takiego, Ferret się gryzł z tą wersją) - Rails w trybie production
Live - Debian Etch - akurat ta dystrybucja jest mi znana i dostępna u providera. Rails w trybie production.

Posiadanie “Gammy” już w wielu przypadkach pomogło mi wykryć błędy w konfiguracji środowiska. (u mnie to Hpricot, Ferret + kilka rozszerzeń do Rubiego).

Jak się uprzesz to oczywiście można “development” robić pod Win ale IMHO na dłuższą metę to nie ma sensu.

Aha dodam jeszcze (żebym nie został oskarżony o gwałt na Win32):

Ta Gamma powyżej to coLinux odpalony pod WinXP z działającym Etch’em w środku - akurat obecnie mam kłopoty ze sprzętem i to jest jedyny komputer w moim domu, który mogłem do tego wykorzystać :slight_smile:

Pierwsze produkcyjne uruchomienie aplikacji Rails jest znacznie trudniejsze niż aplikacji PHP. Trzeba skonfigurować wiele rzeczy.

Typowo, w bardzo ogólnym zarysie wygląda to tak:

  • założenie i konfiguracja repozytorium kodu; wrzucenie projektu do repozytorium
  • konfiguracja serwera webowego (np. Apache)
  • konfiguracja serwera aplikacji (Mongrel)
  • konfiguracja Capistrano, narzędzia automatyzującego wdrażanie
  • założenie bazy danych
  • na komputerze lokalnym: cap deploy:setup, cap deploy:cold (automatyczne wdrożenie bezpośrednio z repozytorium kodu)

Późniejsza aktualizacja aplikacji jest już trywialna - sprowadza się do wydania jednej komendy na komputerze lokalnym, najczęściej:

cap deploy

Są też różne pół-gotowe środowiska, gdzie procedura wygląda całkiem inaczej (nie koniecznie prościej…), ale używa się je głównie do zabawy, nauki i blogów.