Chmura jaka jest, każdy widzi. Ot zbieranina serwerów, opakowana w nowy papierek, opatrzona nowym bilecikiem z marketingowym wierszykiem. Z jedną zasadniczą różnicą. Nie musimy się grzebać w zarządzanie inwentarzem, nie musimy martwić się o load balancing, a pojęcie “zasoby sprzętowe” zostaje zastąpione pojęciem “instancja”. Tak na prawdę my jako programiści jesteśmy w stanie zrobić wszystko sami, bez konieczności angażowania administratora do skonfigurowania serwera, postawienia firewalla i całej tej magii, od której powinniśmy trzymać się z daleka. Jeśli śledzicie mój blog, na pewno zauważyliście, iż od dłuższego czasu interesuję się tematyką cloud computing, a dokładniej Windows Azure. Ostatnio zainteresowałem się kolejnym projektem związanym z PHP w chmurze – PHP Fog.

Otrzymałem właśnie zaproszenie do beta testów i od razu założyłem konto oraz zagłębiłem się lekturę dokumentacji oraz FAQ. Udało mi się również pomęczyć na czacie Macieja Skierkowskiego, product managera w PHP Fog i jak się okazało byłego pracownika Microsoftu pracującego przy Windows Azure. Jaki ten świat jest mały :)

Do rzeczy. Czym jest PHP Fog? Jest to “chmurowa” wersja LAMP-a, najpopularniejszej platformy wśród deweloperów tworzących aplikacje internetowe. Tak na prawdę, PHP Fog działa w chmurze Amazonu (tak tak, tej samej, która zaliczyła ostatnio niezły fuck up). Najważniejszą dla nas jako programistów informacją jest to, że nie musimy robić nic ponad wykonanie komendy git push na lokalnej maszynie, tej samej, na której tworzymy aplikację. Niestety (a może i stety) PHP Fog nie daje żadnej innej możliwości uploadowania kodu do chmury. Dlatego jeśli jeszcze nie zaczęliście korzystać z gita, najwyższa pora, aby nadrobić zaległości.

W chwili obecnej PHP Fog dostarcza dwa sposoby tworzenia aplikacji – skorzystanie z gotowca (WordPress, Drupal, Joomla lub SugarCRM) lub własnoręczne tworzenie przy użyciu jednego z dostępnych w chmurze frameworków (CakePHP, Zend Framework lub CodeIgniter). Oczywiście mamy również możliwość utworzenia Cusom App bez konieczności wybierania żadnego wbudowanego frameworka.

Po wybraniu rodzaju aplikacji stajemy przed kolejnym wyborem – plan taryfowy. Do dyspozycji mamy cztery plany – pierwszy działający na zasadzie współdzielonego hostingu (darmowy przez pół roku dla jednej aplikacji), dedykowany mikro (za 29$ miesięcznie), dedykowany mały (79$ miesięcznie) oraz dedykowany duży (249$ miesięcznie). Oczywiście wszystkie plany różnią się dostępnymi zasobami, niestety poza podstawowymi informacjami, nie udało mi się odnaleźć szczegółowego opisu każdego planu.

Podobnie jak w przypadku każdej chmury, PHP Fog oferuje możliwość prostego skalowania naszej aplikacji w zależności od bieżących potrzeb. Na obecną chwilę możemy skorzystać z maksymalnie pięciu serwerów (instancji), będących w stanie obsłużyć ruch w naszej aplikacji. Oczywiście za każdą instancję musimy dodatkowo zapłacić. Jeśli będziemy potrzebować dodatkową moc obliczeniową lub przestrzeń dyskową, nie musimy się o to martwić. Jeśli zasoby PHP Fog zaczną się wyczerpywać, zawsze możemy przenieść część naszej aplikacji bezpośrednio do chmury Amazona.

Jeśli chodzi o technikalia, to w skład PHP Fog wchodzi PHP 5.3.2, Apache 2.2.14 oraz MySQL 5.1.41. Do tego dochodzi cron uruchamiany co 10 minut (nie można tego zmienić). W kwestii wysyłania maili jest drobny problem. Niestety musimy wspomóc się zewnętrznym rozwiązaniem. FAQ proponuje Gmaila działającego w ramach Google Apps. W przypadku potrzeby zmiany jakichkolwiek ustawień php.ini, możemy to zrobić w pliku .htaccess lub przy pomocy funkcji ini_set. Niestety PHP Fog nie pozwala ustawić wskazania domeny na podkatalog i musimy sobie radzić przy pomocy .htaccess.

Czy PHP Fog na dobre zagości na blogu? Okaże się po pierwszej aplikacji, umieszczonej w tej chmurze. Jeśli cena za najtańszy plan taryfowy nie byłaby taka wysoka, powiedziałbym w ciemno, że tak. Niestety dosyć spory miesięczny koszt w porównaniu z tradycyjnym hostingiem, każe się dobrze zastanowić nad tym rozwiązaniem.