CloudPortal: zasady wykorzystania aplikacji
Aplikacje pisane dla chmury obliczeniowej CloudPortal nie różnią się znacząco od normalnych programów tworzonych dla wspieranych aplikacyjnych frameworków i można je w wielu przypadkach praktycznie bezpośrednio implementować w chmurze.
Specyfika chmury narzuca jednak
pewne ramy funkcjonowania aplikacji i dla pełnego wykorzystania jej potencjału
należy pamiętać o kilku podstawowych cechach i zasadach.
I. Niezależnie od tego, czy aplikacja
jest napisana dla środowiska PHP, Ruby, Java lub innych wspieranych frameworków,
może być uruchamiana w jednej lub kilku instancjach – w zależności od potrzeb
klienta i konieczności sprostania zwiększonemu obciążeniu. Każda instancja to
niezależna komórka obliczeniowa, tworząca kompletne środowisko wykonawcze. W
związku z tym nie należy polegać na lokalnych magazynach danych, lokalnych
danych sesyjnych lub plikach do przechowywania informacji, ale umieszczać je w
zewnętrznych – współdzielonych przez aplikację usługach (np. MongoDB, MySQL,
memcached, riak).
II. Każda instancja aplikacji
podczas restartu jest doprowadzana do stanu pierwotnego, co oznacza utratę
wszystkich lokalnie zapisanych plików konfiguracyjnych, zmodyfikowanych
szablonów i podładowanych plików. Można temu zaradzić przez wykonywanie
odpowiednio przygotowanych skryptów – przygotowujących środowisko wykonawcze –
uruchamianych podczas instancjonowania aplikacji i zdefiniować, które foldery
powinny być podmapowane do zewnętrznych systemów plików, aby mogły być
współdzielone przez instancje i zachowane między restartami aplikacji.
III. Aplikacje uruchamiane w
chmurze są widoczne i odpowiadają na zapytanie tylko po nazwie zadeklarowanej
podczas rejestrowania aplikacji na portach 80 (standardowy http) lub 443
(standardowy https).
IV. Podczas umieszczania
aplikacji w chmurze, wszystkie pliki znajdujące się w folderze programu są
podładowywane do magazyny chmury. Jedynie pliki kontroli wersji tj. .svn, .git,
.darcs są automatycznie pomijane podczas tego procesu. Dla zmniejszenia
wielkości aplikacji należy zadeklarować, które foldery mają być pominięte podczas
przygotowywania obrazu aplikacji (np. pliki logów, foldery plików
tymczasowych).
V. Podczas tworzenia aplikacji
wszelkie dane konfiguracyjne potrzebne do korzystania z zewnętrznych usług (np.
konfiguracja połączenia do serwerów baz danych, poświadczenia do usług
zewnętrznych jak Amazon S3, czy Twitter, URL aplikacji) nie powinny być na
sztywno przechowywane w kodzie, lecz pobierane z odpowiednich zmiennych
środowiskowych. Zmienne udostępniane przez środowisko chmury są mechanizmem
niezależnym od frameworka aplikacyjnego i przechowują jednolite informacje dla
wszystkich instancji aplikacji. Można się do nich odwoływać bezpośrednio lub
wprowadzać wartości zmiennych środowiskowych do plików konfiguracyjnych za
pomocą skryptu instalacji aplikacji.
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ń.
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.