Darmowa strona WWW na Windows Azure
Dosłownie kilka dni temu uczestniczyłem w rozmowie z pracownikami Microsoftu, która dotyczyła Azure. I nagle, ku mojemu zdziwieniu, okazało się, że jest obecnie możliwe postawienie na Windows Azure strony internetowej (a nawet nie jednej, o czym za chwilę), kompletnie za darmo (pytanie - czy na wieki za darmo?).
Kalkulator cen dostępny na stronie Azure mówi, że bezpłatna jest:
Możliwość bezpłatnego uruchamiania do 10 witryn sieci Web na podregion w środowisku wielodostępnym. Wraz ze wzrostem natężenia ruchu można bezproblemowo przeprowadzić uaktualnienie do modelu płatnych współużytkowanych wielodostępnych lub zastrzeżonych wystąpień.
O co dokładnie chodzi? W aktualnej wersji Azure możliwe jest uruchomienie do 10 stron WWW ("na subregion" - czyli na 10 na Europę, 10 na Amerykę Północną itd.) w dość podobnym systemie jak dzieje się to u zwyczajnych usługodawców, czyli w ramach hostingu współdzielonego. Limity które obejmują naszą stronę to:
- 1 godzina czasu pracy procesora dziennie,
- ale maksymalnie 2.5 minuty ciągłej pracy w ciągu 5 minut;
- 165 MB wysłanych danych dziennie;
- 1024 MB miejsca na dane;
- do 1024 MB pamięci RAM zajętej w ciągu godziny;
Jak widać, limity są dość ostre, jednak będzie to z pewnością wystarczające dla stron hobbystycznych, które odwiedza ktoś raz na jakiś czas.
Opcja "web sites" jest obecnie objęta napisem "preview" w zarządzaniu kontem Azure, więc limity mogą się zapewne zmienić w przyszłości.
Aby skorzystać z tej usługi potrzebujemy dwóch rzeczy - konta Azure (a co za tym idzie - konta Microsoft Account) oraz aktywnej subskrypcji. Do założenia tychże napotykamy pierwszy problem - wymagana jest karta płatnicza z dostępem do transakcji internetowych. Ja używam eKarty z mBanku. Założoną mam standardową subskrypcję typu "Pay-As-You-Go" w której co miesiąc muszę zapłacić tyle, ile wykorzystałem środków. Ale tak się składa, że te usługi są darmowe, więc będzie 0€ na koniec miesiąca.
Posiadając aktywną subskrypcję możemy zalogować się do panelu zarządzania Windows Azure, gdzie przechodzimy do sekcji "web sites".
Tam możemy dodać nową stronę wedle opcji szybkiego dodawania, dodawania własnego albo skorzystania z galerii gotowych systemów, które możemy umieścić na stronie. Galeria obejmuje popularne systemy CMS, szablony czy frameworki, jak np. Wordpress czy MediaWiki. Z tym wiąże się jeden inny problem - przydatna byłaby baza danych SQL, która nie jest dostępna za darmo (100 MB to prawie 4€ miesięcznie)...
Z jednym wyjątkiem - można uruchomić darmową bazę MySQL (o rozmiarze do 20 MB) udostępnianą przez stowarzyszoną z Microsoftem firmę SuccessBricks (usługa ClearDB). Niestety, ma ona obniżoną wydajność i tylko 4 równoczesne połączenia z bazą, ale jest darmowa.
Dodając nową stronę wybieramy dla niej subdomenę w domenie azurewebsites.net, region geograficzny (region powinien być wybrany bliski docelowemu odbiorcy) i subskrypcję do której przypisana będzie strona. W opcjach własnego dodawania strony można od razu stworzyć nową bazę SQL oraz skonfigurować publikowanie z systemu kontroli wersji (co można też zrobić później).
Po stworzeniu strony (co chwilę trwa) jesteśmy w stanie wejść do jej panelu zarządzającego.
W karcie "dashboard" mamy ogólny podgląd na zużycie zasobów ciągu ostatniego czasu, oraz sekcję "quick glance" w której jest kilka przydatnych opcji konfiguracji wdrożenia. Karta "monitor" udostępnia nieco dokładniejszy monitor zasobów. Karta "configure" pozwala wybrać wersję frameworka .NET oraz interpretera PHP dostępnego dla naszej strony, dodać własną domenę i udostępnia jeszcze kilka opcji konfiguracyjnych. Sekcja "scale" pozwala łatwo zmienić darmową stronę w stronę na serwerach o lepszych parametrach ("shared" - około 7€ miesięcznie) lub na zarezerwowanych maszynach wirtualnych (najmniejsza instancja - około 42€ miesięcznie). Te usługi są dodatkowo płatne, zapewne wymagane jest wtedy też opłacenie dodatkowego pasma dla danych wychodzących.
Wspomniałem o własnej domenie - niestety, ta usługa jest dostępna tylko dla wyższych pakietów usług niż darmowy.
Dobrze, posiadamy stronę, jaką ją teraz wdrożyć, znaczy wgrać na serwer? W sekcji "quick glance" naszego "dashboard" (dygresja: kiedyś przetłumaczono to ładnie jako "deskę rozdzielczą") jest kilka opcji związanych z publikowaniem naszej witryny na serwerze.
Przede wszystkim pokazywane są adresy serwerów FTP i FTPS oraz nazwa użytkownika. Można tez pobrać "publish profile", plik, który można bezpośrednio zaimportować w programie WebMatrix i który zawiera wszystkie ustawienia transmisji. Można też zresetować swoje ustawienia wdrożenia podając własną nazwę użytkownika i hasło. Można też - co jest świetnym pomysłem - ustawić automatyczne wdrożenie z systemów kontroli wersji.
Ta ostatnia opcja pozwala śledzić nowe aktualizacje w systemach takich jak CodePlex (TFS, darmowy dla projektów open source), Team Foundation Service (TFS, darmowy), GitHub (Git, darmowy dla projektów open source), Bitbucket (Git lub Mercurial, darmowy) czy Dropbox, względnie z innych, własnych, repozytorów Gita i automatycznie aktualizować stronę po wykonaniu aktualizacji w systemie zarządzania wersjami.
Do kogo jest skierowana ta oferta? Oczywiście dla hobbystów, programistów hobbystycznych, którzy chcieli by mieć serwer minimalnym kosztem. Zwłaszcza ciekawe to może być dla początkujących programistów ASP.NET, dla których nie ma tak wielu darmowych serwerów jak dla PHP. Wydaje się jednak dość interesująca, także dlatego, że jest prostą (i darmową!) okazją do poznania Azure.
Warto też wspomnieć, że Azure udostępnia również 3‑miesięczny plan próbny w którym można spróbować innych, bardziej zaawansowanych usług, a potem gładko przejść na plan "Pay As You Go".