Blog Kei.pl

Ruby On Rails – przyszłość aplikacji sieciowych?

Ruby On Rails – przyszłość aplikacji sieciowych?

RoR (Ruby on Rails) jest darmowym frameworkiem dla aplikacji sieciowych, napisanym w Ruby. To to język programowania stworzony przez Japończyka, Yukihiro Matsumoto. 

Ruby został zaprojektowany tak, aby programista tworzący kod w tym języku w jak najprostszy sposób był w stanie osiągnąć zaplanowany efekt. Intuicyjność i przyjemność, z jaką pisze się aplikację w Ruby, stanowią podstawowe zalety tego języka.

Od momentu rozpoczęcia prac nad Ruby minęło już dwanaście lat, a środowisko z nim związanych programistów znacznie się rozszerzyło. W 2004 roku Ruby on Rails, dzieło Davida Heinemeier Hanssona ujrzało światło dzienne.

RoR, podobnie jak Ruby, został zaprojektowany tak, aby tworzenie aplikacji sieciowych było proste i przyjemne. Głównymi założeniami, jakimi kierował się twórca framework’u są:

Don’t Repeat Yourself (DRY)

Convention over Configuration (CoC).

CoC sprowadza się do tego, że podczas pisania aplikacji konieczne jest zdefiniowanie tylko tych metod, które w jakiś sposób odbiegają od normy. Wszystkie standardowe operacje na danych są predefiniowane.

DRY oznacza, że informacja jest umieszczona tylko w jednym, ściśle zdefiniowanym miejscu. Przykładowo, nie jest koniecznym definiowanie nazw kolumn w bazie danych – Ruby takie informacje samodzielnie pobiera z bazy.

Zalety i wady Ruby on Rails

Podstawową zaletą korzystania z RoR, jak to już było wyżej zaznaczone, jest prostota w pisaniu kodu. Nie jest konieczne generowanie od zera całego zestawu klas, w większości wypadków to co jest potrzebne, jest przez framework udostępniane.

Ruby w przejrzysty sposób współpracuje z różnymi bazami danych, od SQLite przez MySQL i PostgreSQL po MSSQL czy Oracle. Kod pisany przez programistę nie zmienia się w zależności od tego, z jakiej bazy korzysta aplikacja.

Kolejną zaletą RoR (a właściwie Ruby, bo to cecha tego języka) jest spora ilość rozszerzeń i modułów – niezależny kod, który można wykorzystywać w obrębie własnych klas.

Podstawową wadą RoR jest wydajność. Niestety, w większości wypadków strony stworzone w tym frameworku nie należą do demonów szybkości. Jest to cena za wygodę pracy i szybkość tworzenia aplikacji.

Drugą kwestią jest to, że w przypadku większych, bardziej skomplikowanych i niestandardowych projektów traci się sporo zalet RoR. Dostępne klasy i zestawy metod nie wystarczają, trzeba od zera pisać własne. W efekcie wydajność programisty maleje. Oczywiście, trzeba zaznaczyć że tego typu sytuacja dotyczy wszystkich języków programowania i większości frameworków. Nie tylko Ruby on Rails.

Wsparcie dla Ruby on Rails w Kei.pl

Nowoczesny hosting nie może obejść się bez udostępnienia Ruby on Rails. Jest to obecnie jedna z najbardziej popularnych platform programistycznych do tworzenia aplikacji sieciowych. Nie mogło więc go zabraknąć w ofercie przygotowanej przez Kei.pl.

Strony pisane z wykorzystaniem framework’u RoR mogą być serwowane na kilka różnych sposobów. Administratorzy Kei.pl opracowali system w oparciu o serwer Mongrel (jest to serwer napisany w języku Ruby, który potrafi uruchamiać aplikacje w RoR) i reverse proxy w Apache.

Na każdej platformie wirtualnej język Ruby jest zainstalowany domyślnie. Z poziomu konta admin istnieje możliwość zainstalowania RoR i Mongrela. Po zalogowaniu się do powłoki, na konto admin wydajemy polecenie:

cp /usr/share/tld/daemons/ruby/.bashrc-ruby /home/users/admin/.bashrc-ruby 
cat /usr/share/tld/daemons/ruby/.profile >> /home/users/admin/.profile

Następnie wylogowujemy się i logujemy ponownie. Wydajemy polecenia:

gem install rails 
gem install mongrel

W czasie instalacji zostaną zainstalowane także wymagane zależności, których instalację należy potwierdzić wpisując „Y” lub naciskając enter. Kolejną czynnością będzie zainstalowane i przygotowanie zestawu skryptów startowych dla serwera mongrel.

mkdir -p /home/users/admin/daemons 
cp /usr/share/tld/daemons/mongrel /home/users/admin/daemons

W pliku /home/users/admin/daemons/mongrel/.config należy ustawić wartość zmiennej RAILS. Używając ip naszej platformy wirtualnej (dla przykładu – 195.149.224.58) oraz aplikacji rails z katalogu /home/users/admin/rails możemy zdefiniować 2 instancje serwera pierwszą działającą w trybie production na porcie 8000, drugą development na porcie 8001:

RAILS="0:8000:195.149.224.58:/home/users/admin/rails:production:128 0:8001:195.149.224.58:/home/users/admin/rails:development:128"

Po ustawieniu konfiguracji wystarczy uruchomić skrypt start:

cd ~/daemons/mongrel
./start

Jeżeli nie będzie komunikatu błędu strony rails będą dostępne przez przeglądarkę na portach 8000 i 8001 serwera.

Niestety, taka konfiguracja nie jest wygodna, gdyż strony nie działają na standardowym porcie 80, czyli za każdym razem podczas wpisywania adresu strony trzeba podawać port (np. http://domena.pl:8000 ). Aby rozwiązać ten problem, konieczne jest zmodyfikowanie konfiguracji serwera Apache. Zrealizować to może jedynie administrator Kei.pl, koniecznym jest więc wysłanie maila na adres bok@kei.pl z informacją zawierajaca:

  • umiejscowienie skryptów startowych serwera mongrel
  • listę domen na których ma działać aplikacja rails.

W razie wystąpienia problemów lub jakichkolwiek wątpliwości należy oczywiście skontaktować się z pracownikami Biura Obsługi Klienta, którzy udzielą wyczerpujących odpowiedzi na wszelkie pytania i pomogą w procesie instalacji Ruby on Rails

Czy RoR ma sens?

Jak najbardziej. Ruby on Rail to świetny framework do pisania aplikacji sieciowych, niezależnie czy będzie to niewielka strona, czy skomplikowany portal. Jak w przypadku każdej decyzji biznesowej należy przeanalizować wszelkie za i przeciw. W pewnych warunkach RoR nie będzie najlepszym wyjściem, w innych wprost przeciwnie. Wszystko zależy od tego jaki projekt jest realizowany, jacy programiści są dostępni, czy konieczna jest integracja nowej aplikacji z już działającym systemem itp.

Jeśli jednak decyzja będzie oparcie się na Ruby, administratorzy Kei.pl z przyjemnością będą świadczyć wsparcie w procesie testowania i uruchamiania projektu. Pracownicy Kei.pl w każdej chwili udzielą pomocy, niezależnie czy będzie to kwestia instalacji RoR, czy też pomoc w tuningu konfiguracji w celu zwiększenia wydajności strony.