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ść