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.
xx

Dotacje na innowacje. Inwestujemy w waszą przyszłość