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 ?
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 ;).
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 ) ) - 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 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ść
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ć
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.