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.

 

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

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