App Service Plan – o usłudze i typach aplikacji

App Service Plan to usługa udostępniająca gotowe do pracy środowisko, zrzucając z programistów konieczność zarządzania maszyną wirtualną i jej zasobami. Wspomniana usługa pozwala na udostępnianie w sieci aplikacji webowych, mobilnych, API REST’owych itd. Nie zaprzątasz sobie głowy takimi rzeczami jak aktualizacja sytemu operacyjnego czy oprogramowania antywirusowego. Narzędzia takie jak IIS czy np. SDK dla aplikacji mobilnych (Android) są już zainstalowane i w pełni skonfigurowane. Zajmujesz się tylko i wyłącznie pisaniem kodu i rozwojem samej aplikacji.

W ramach App Service Plan’u dostępna jest pewna, ograniczona grupa zasobów sprzętowych, jak i systemowych – niestety 🙂 – wszystko w zależności od tego, na jaki plan się zdecydowałeś. Oczywiście każdy z planów charakteryzuje się swoim przedziałem cenowym. Najpierw zacznijmy od darmowych i współdzielonych planów. Aplikacja znajduje się na tzw. „środowisku współdzielonym”. Platformy te można by nazwać testowymi albo rozpoznawczymi, tak żeby sobie wszystko wybadać, wyklikać. Są to takie środowiska eksperymentalne. Następnie w ofercie znajdują się już tylko maszyny dedykowane. Mamy do dyspozycji wersję podstawową – bez żadnych dodatkowych bajerów, standardową – zalecaną jako minimum dla wszystkich wdrożeń produkcyjnych oraz wersję premium – najbardziej rozbudowaną, składającą się z dużej liczby zasobów, przeznaczoną dla naprawdę dużych wdrożeń. Każdy wyższy plan udostępnia coraz to więcej zasobów oraz funkcjonalności. Więcej szczegółów na temat aktualnych cen oraz możliwych konfiguracji planów usługowych (SKU) znajdziesz na portalu tworząc App Service Plan lub bezpośrednio pod tym adresem.

Service Fabric jako zarządca zasobów

App Serive Plan działa za pośrednictwem usługi Azure Service Fabric. Komponent ten odpowiedzialny jest za dostarczanie oraz rozdzielanie zasobów pomiędzy wszystkie wystawione aplikacje. Stanowi on pewną warstwę abstrakcji pomiędzy aplikacjami, a serwerami na których się one rzeczywiście znajdują. Dba on również o to, aby aplikacje były poprawnie udostępniane oraz były dostępne online przez cały czas.

Azure Service Fabric jako zarządca zasobów
Azure Service Fabric jako zarządca zasobów

App Service Plan – co zyskujesz

Co nam to daje, dlaczego nie zainwestować w klasyczną maszynę wirtualną i wszystko samemu skonfigurować?

Do najciekawszych (według mnie 🙂 ) funkcjonalności udostępnione w ramach App Service Plan należą:

  • możliwość pisania kodu w dowolnym języku programowania – .NET, JavaScript (Node.js), PHP, Java czy Python – bez instalacji środowiska, wszystko już jest,
  • wbudowane mechanizmy autoryzacji i autentyfikacji – gotowe narzędzia do logowania za pośrednictwem np. Active Directory, Facebook’a, Google’a etc.,
  • manualne i automatyczne skalowanie – w przypadku gdy z aplikacji korzysta bardzo dużo użytkowników tworzone są dodatkowe instancje maszyny wirtualnej, w skutek czego dochodzi do powstania architektury rozproszonej. Dzięki temu aplikacja jest w stanie poradzić sobie z znacznie większym ruchem na serwerze, tym samym nie tracąc na wydajności,
  • gotowe narzędzia ciągłej integracji (ang. continuous integration) oraz wdrażania aplikacji na serwer znajdujący się w chmurze – integracja z systemami kontroli wersji takimi jak GitHub czy Bitbucket. W momencie gdy został wykonany push do repozytorium, od razu uruchamiany jest deploy aplikacji do chmury,
  • możliwość wdrożenia rozwiązania hybrydowego – tego typu rozwiązanie pozwala na integrację aplikacji udostępnioną w chmurze np. z bazą danych znajdującą się wewnątrz prywatnego data center. Tego typu scenariusze znajdują zastosowanie w sytuacji gdy klient nie chce wysyłać swoich danych do chmury publicznej, natomiast woli, z różnych powodów, trzymać je u siebie – jest to dość popularny scenariusz. Wtedy aplikacja działa w chmurze, a dane odczytywane są z lokalnych baz danych za pośrednictwem VPN’a,
  • WebJobs – wykorzystywane do przetwarzanie danych w tle aplikacji, najczęściej bez wiedzy użytkowników końcowych. Często zrzuca się na nie jakieś ciężkie zadania, tak aby nie obciążać tego samego procesu na którym działa właściwa aplikacja.

Jakiego typu aplikacje można udostępniać

W ramach App Service Plan’u możesz stworzyć następujące aplikacje:

  • WebApps – aplikacja webowa, dostępna z każdej przeglądarki internetowej. Tak jak pisałem wcześniej, może to być ASP.NET, NodeJS, PHP, Python,
  • MobileApps – dowolna natywna aplikacja mobilna (iOS, Android, etc.) lub inne aplikacje korzystające z tzw. cross-platform tools takich jak Xamarin czy Phonegap. Istnieje również możliwość implementacji samej części backend’owej aplikacji mobilnych. Dopuszcza się wykorzystanie push notifications,
  • LogicApps –  w ramach tego typu aplikacji, za pomocą wizualnego edytora, tworzony jest specjalny workflow realizujący jakiś z góry ustalony proces. Opracowany algorytm zostaje natychmiastowo udostępniony, dzięki czemu może być uruchamiany dla różnych danych wejściowych. Po wystąpieniu jakiegoś zdarzenia, dajmy na to dodania nowego pliku w OneDrive, program zostaje automatycznie uruchomiony, plik jest pobierany, a następnie przetwarzany. Nie potrzebujesz podstawowej wiedzy na temat programowania, cały proces „wyklikujesz” za pomocą edytora,
  • APIApps – pozwala na wystawienie REST’owego API znajdującego się wewnątrz chmury, z którym  mogą komunikować się inne aplikacje zewnętrzne – webowe lub mobilne. Dostępne są wbudowane mechanizmy CORS oraz Simple Access Control. Aplikacje tego typu w bardzo prosty i przyjemny sposób mogą integrować się z wspomnianymi powyżej aplikacjami logicznymi,
  • FunctionsApps – wykorzystywane do uruchamiania niewielkich fragmentów niezależnego kodu, reagującego na zajście pewnego zdarzenia. Ponownie załóżmy sytuacje z pojawieniem się nowego pliku. Plik jest pobierany, przetwarzany, wynik wszystkich przetworzeń zapisywany jest np. w bazie danych. W tym momencie funkcja kończy swoje działanie, wszystkie zasoby są zwalniane. Nieco przypomina LogicApps, aczkolwiek bardziej od strony programistycznej.
Aplikacje dostępne w ramach usługi App Service Plan
Aplikacje dostępne w ramach usługi App Service Plan

Każdą z wymienionych powyżej aplikacji możesz przetestować pod tym adresem. Wszystkie stworzone apki współdzielą pomiędzy sobą zasoby dostępne w ramach App Service Plan’u. Każda z nich uruchamiana jest na odizolowanej maszynie wirtualnej. Na koniec warto jeszcze wspomnieć, że ponosimy tutaj tylko jeden koszt (cena App Serivice Plan) ze te wszystkie wymienione powyżej funkcjonalności. Każda aplikacja może mieć tylko jeden plan.