Aplikacje Ruby na platformie CloudPortal
CloudPortal jest elastyczną platformą PaaS, która umożliwia tworzenie i utrzymywanie w jednym środowisku aplikacji przygotowanych w najpopularniejszych językach programowania i korzystających z szerokiej gamy usług. Jednym ze wspieranych środowisk uruchomieniowych jest konfiguracja wspierająca aplikacje Ruby, Rack, Rails i Sinatra.
Przygotowanie istniejących aplikacji lub tworzenie nowych dla chmury CloudPortal wymaga poznania wymagań szablonu środowiska uruchomieniowego i możliwości dostosowania go do własnych potrzeb.
Dla aplikacji Ruby i RoR CloudPortal domyślnie wykorzystuje standardowe biblioteki serwera web WEBRick. W sytuacji kiedy aplikacja wymaga bardziej zaawansowanej konfiguracji można skorzystać z funkcjonalności oferowanych przez serwer PhusionPassanger, Puma, Thin lub Unicorn. Uruchomienie aplikacji w niestandardowej konfiguracji wymaga:
- – dodania odpowiedniego gema serwera do Gemfile,
- – utworzenia lub zmodyfikowania pliku konfiguracyjnego w folderze config aplikacji (np. config/puma.rb),
- – utworzenia w folderze głównym aplikacji pliku Procfile, którego obecność informuje komórkę obliczeniową aplikacji o konieczności uruchomienia odpowiednich procesów (np. serwera puma z odpowiednią konfiguracją) dla pożądanego funkcjonowania aplikacji.
Aplikacje uruchomione na Cloudportal przy pomocy szablonu Ruby mogą wykorzystywać wszystkie dostępne w środowisku usługi. Proces przypisywania tworzenia instancji usługi i przypisywania jej do aplikacji jest taki sam jak w przypadku każdego środowiska uruchomieniowego, ale sam proces konfiguracji aplikacji podczas jej uruchamiania jest charakterystyczny dla każdego buildpacka. Dane konfiguracyjne dotyczące przypisanych usług są przekazywane do aplikacji za pomocą zmiennej środowiskowej VCAP_SERVICES. Aplikacja może przy pomocy gema cf-apps-utils odczytać informacje w niej zawarte na podstawie nazwy, tagu lub etykiety. Podczas instancjonowania aplikacji, buildpack Ruby tworzy na podstawie zmiennej VCAP_SERVICES zmienną środowiskową DATBASE_URL, której zawartość jest wykorzystywana do zamiany zawartości pliku database.yml. Aplikacje nie bazujące na RoR również mogą wykorzystać dane zawarte w zmiennych środowiskowych np. vcap_services = JSON.parse(ENV[’VCAP_SERVICES’]).
Środowisko uruchomieniowe Ruby w CloudPortal umożliwia również na wykonanie podczas instancjonowania aplikacji poleceń Rake. Można ich użyć do odczytywania zmiennych środowiskowych i konfiguracji platformy aplikacji lub usług, np. utworzenia wstępnego schematu bazy danych i importu danych. Polecenia powinny znajdować się w plikach .rake w folderze aplikacji lib/tasks. Informacja o konieczności uruchomienia polecenia powinna zostać również umieszczona w pliku manifestu aplikacji.
Twórcy aplikacji dla środowiska Ruby na platformie CloudPortal powinni również zwrócić uwagę na wymagania, jakie buildpack stawia przed każdym uruchamianym programem:
- – aplikacja musi zawierać pliki Gemfile i Gemfile.lock,
- – dla aplikacji Rack i Sinatra jest wymagany odpowiedni plik config.ru,
- – CloudPortal wspiera proces prekompilacji zasobów i może on być automatycznie wykonywany podczas instancjonowania aplikacji. Jest jednak zalecane, aby prekompilacja była wykonywana przed podładowywanie aplikacji. Zapewnia to skrócenie czasu jej uruchamiania i uniknięcie problemów z reinicjalizacją aplikacji podczas prekompilacji.
- – Platforma CloudPortal może przechwytywać i udostępniać developerowi informacje diagnostyczne z aplikacji, ale muszą być one pisane do STDOUT lub SDRERR. W zależności od wersji Rails buildpack może, ale nie musi automatycznie zainstalować odpowiedni plugin (rails_log_stdout dla Rails 2.x) lub gema (rails_12factor dla Rails 3.x i 4.x). W przypadku Rails 4.x twórca programu powinien dodać rails_12factor do pliku Gemfile.
Podobne artykuły
Mongo DB: zarządzanie bazą danych w chmurze
Tradycyjne podejście do przetwarzania danych w przypadku systemów zarządzania relacyjną bazą danych nie we wszystkich przypadkach jest najbardziej optymalne. Konieczność przechowywania coraz bardziej rozbudowanych i skomplikowanych danych, oraz próba ich opisania w postaci tabel i relacji może prowadzić do wolnych wielotabelowych zapytań i rozrośniętych indeksów. W niektórych przypadkach, zamiast korzystać z narzędzia uniwersalnego, warto sięgnąć po system specjalistyczny. Jednym z takich systemów oferowanych w CloudPortal jest nierelacyjny system zarządzania bazą danych MongoDB.
Mechanizmy wysokiej dostępności relacyjnych baz danych w CoudPortal.pl
Wszystkie aplikacje udostępnianie w CloudPortal ze względu na elastyczną architekturę platformy w dużym stopniu wykorzystują dodatkowe usługi. Rozproszone systemy plików, bazy SQL i NOSQL, usługi kolejkowania, pamięci podręczne sesji i wiele innych mają zagwarantować szeroką gamę możliwości dla tworzonych i udostępnianych przez platformę rozwiązań.
7 powodów dla których warto wybrać CloudPortal jako platformę dla aplikacji
W dzisiejszych czasach korzyści z chmury obliczeniowej wydają się oczywiste. Z cloud computingu mogą również skorzystać firmy tworzące oprogramowanie.