Dwa tygodnie temu uzyskałem dostęp do nowej chmury przeznaczonej dla PHP, stworzonej przez firmę Zend. Zend Developer Cloud, bo o niej mowa, jest już trzecią chmurą dedykowaną PHP i podobnie jak PHPFog znacząco upraszcza proces tworzenia aplikacji, zdejmując z barków programisty kwestie administracyjne. W przeciwieństwie do PHPFog, Zend Developer Cloud jest darmowa.

Jak zacząć?

Proces tworzenia aplikacji na Zend Developer Cloud rozpoczyna się od utworzenia pojemnika (container). Jest to przestrzeń dla naszych aplikacji, coś w rodzaju serwera, na którym będą uruchamiane aplikacje.

image

Kilka minut po utworzeniu pojemnika, będziemy mogli wejść na wskazany przez nas adres. W efekcie ujrzymy poniższą stronę. Ważne jest aby zapisać hasło do pojemnika, ponieważ hasło to będzie używane w bazie MySQL oraz w większości innych miejsc, wymagających potwierdzenia naszej tożsamości.

image

I to wszystko co musimy zrobić, aby rozpocząć pracę w chmurze Zenda. Kolejny krok, to instalacja aplikacji.

Tworzymy aplikację

Stworzenie aplikacji jest równie banalne jak stworzenie pojemnika ją przechowującą. W chwili obecnej nie mamy zbyt dużego wyboru, który zamyka się w obrębie następujących rozwiązań:

  • pusta aplikacja PHP – standardowa aplikacja oparta o PHP
  • pusta aplikacja Zend Framework – szkielet aplikacji ZF
  • pusta aplikacja Zend Framework 2 – szkielet aplikacji ZF2
  • Drupal 7.8 – znany i lubiany CMS
  • Joomla 1.7 – j.w.
  • Magento 1.5.1 – system eCommerce zbudowany w oparciu o Zend Framework
  • WordPress 3.2.1 – znany i lubiany system blogowy
  • phpBB 3.0.9 – znane i lubiane forum

Tworząc nowy projekt warto wiedzieć, że wszystkie aplikacje zostaną utworzone w domenie pojemnika w podkatalogu o nazwie jaką dla aplikacji wybierzemy.

Z racji zainteresowań, do testów wybrałem Zend Frameworka w wersji pierwszej. Po kliknięciu w przycisk Deploy application, zostałem poproszony o podanie nazwy aplikacji i katalogu, w którym będzie się ona znajdować.

image

Po wysłaniu formularza, nasza aplikacja będzie gotowa w ciągu kilkunastu (kilkudziesięciu) sekund.

I już. Mamy gotowy, w pełni działający szkielet aplikacji opartej o Zend Framework. Po przejściu na adres aplikacji ujrzymy typową stronę startową, jaką widzimy po instalacji ZF. Całość zajęła nie więcej niż 5 minut.

Dostęp do kodu

Wszystko ładnie pięknie, ale jak możemy dostać się do kodu i wprowadzać do niego modyfikacje? Z monocą przychodzą nam klucze SSH, które możemy wygenerować lub dodać już istniejący. Korzystanie z kluczy nie różni się niczym od standardowych zastosowań. Co ciekawe, podczas generowania mamy możliwość wyboru, czy klucz zostanie stworzony w formacie PEM (OpenSSH) lub PPK (Putty). Mała rzecz a cieszy.

Po dodaniu klucza, możemy zabrać się za kod. W tym celu musimy sklonować projekt (tak, Zend Developer Cloud wymaga umiejętności korzystania z Gita). Namiary na repozytorium znajdziemy na liście projektów.

image

Pamiętacie jak pisałem, żeby zapamiętać hasło do pojemnika? Oto dobry moment aby sobie je przypomnieć, ponieważ dostęp do repozytorium jest zabezpieczony tym właśnie hasłem.

Po wykonaniu push-a, wprowadzone w kodzie zmiany będą od razu widoczne.

Dostęp do bazy danych

Domyślną i zarazem jedyną bazą danych, do jakiej mamy dostęp, jest MySQL. Zend Developer Cloud dostarcza nam panel administracyjny w postaci phpMyAdmin, jednak nic nie stoi na przeszkodzie, aby korzystać z MySQL Workbench lub wiersza poleceń. W takim przypadku wymagane jest utworzenie tunelu SSH.

Technikalia

Zend Developer Cloud “stoi” na Zend Server. Jeśli mieliście kiedykolwiek okazję korzystać z wersji innej niż Community Edition, wówczas docenicie to rozwiązanie (sam niejeden raz przeklinałem CE). Serwer został zainstalowany w najnowszej wersji oznaczonej numerem 5.5 (stan na dzień tworzenia tego artykułu). Do dyspozycji otrzymujemy PHP w wersji 5.3.8, uruchomione na Apache 2.2.14 (Ubuntu). PHP zostało zainstalowane z większością popularnych rozszerzeń, dzięki czemu nie musimy się martwić o popularne skrypty, ponieważ raczej będą działać. Zend framework zgodnie z oczekiwaniami jest zainstalowany w najnowszej wersji. Bazą danych jest wspomniany już MySQL w wersji 5.1, a do zarządzania nią mamy do dyspozycji phpMyAdmin w wersji 3.3.10. Deploy aplikacji najwygodniej jest przeprowadzać przy pomocy Gita, ale nic nie stoi na przeszkodzie, aby korzystać ze starego, dobrego sposobu, czyli FTP. A dokładniej SFTP.

A teraz rozczarowanie – napisałem wcześniej, że Zend Developer Cloud jest darmowy. To prawda, jest darmowy na czas trwania beta testów i pozostanie darmowy w ograniczonej funkcjonalności po zakończeniu testów. Zgodnie z informacją zawartą na stronie projektu, chmura ma za zadanie pomóc nauczyć się korzystania z tego typu rozwiązań i być chmurą developerską, z której można wykonać deploy, do chmury produkcyjnej. Z tego właśnie powodu, Zend Developer Cloud nie daje możliwości ustawienia własnej domeny wskazującej na pojemnik oraz uruchamiania aplikacji w subdomenach zamiast podkatalogach.

Niestety nie udało mi się dotrzeć do informacji na temat load ballacingu oraz uruchamianiu dodatkowych instancji naszej aplikacji. Odnośnie cyklicznego uruchamiania skryptów (cron) – jest możliwość korzystania z Zend Queue. Niestety moje doświadczenie w tej dziedzinie jest niewielkie i dopóki nie sprawdzę jak to działa, muszę napisać, iż nie ma czegoś takiego jak cron. Dostępne limity to:

  • wykorzystanie łącza – 2TB na miesiąc
  • pamięć – 300MB
  • przestrzeń dyskowa – 500MB
  • długość/czas requestu – 30 sekund
  • czas procesora – 200ms na sekundę

Niespodzianka

Posiadam kilka zaproszeń do Zend Developer Cloud, więc jeśli chcielibyście na własne oczy zobaczyć “z czym to się je”, napiszcie o tym w komentarzu. Przy czym mam prośbę. Jeśli nie interesuje was chmura lub za dwa dni zapomnicie o koncie, nie zgłaszajcie “zapotrzebowania”. Niech skorzystają osoby, które rzeczywiście są zainteresowane tematem.

Podsumowanie

Czy Zend Developer Cloud się przyjmie? Ciężko jednoznacznie odpowiedzieć na to pytanie. Przyjęty model biznesowy pozwala wysnuć przypuszczenia, iż chmura ta ma za zadanie zwiększyć sprzedaż Zend Servera oraz Zend Studio, które od wersji 9 będzie w pełni zintegrowane z chmurą. Pomijając motywy towarzyszące powstaniu tej chmury, należy przyznać, że Zend podszedł do sprawy bardzo profesjonalnie i mimo zamkniętej bety, dostarczył produkt w pełni działający.