Czym jest PaaS, czyli platforma jako usługa?

Jak definiuje to Microsoft na swojej stronie Azure: platforma jako usługa (PaaS) to kompletne środowisko deweloperskie i środowisko wdrażania w chmurze, obejmujące zasoby umożliwiające dostarczanie dowolnego rozwiązania.


Platforma jako usługa, po angielsku platform-as-a-service (PaaS), to środowisko chmurowe, którego dostawca ma dostarczyć klientom środowisko pozwalające na rozwijanie, testowanie, uruchamianie i zarządzenia aplikacjami bez konieczności budowania i utrzymywania własnej infrastruktury oraz nabywania licencji na właściwe oprogramowanie, niezbędne w procesie deweloperskim. Ponieważ architektura PaaS znajduje się poza zasięgiem deweloepra oraz innych użytkowników, model ten jest podobny do koncepcji serverless computing i FaaS (function-as-a-service). FaaS oferuje firmom zorientowane pod ich kątem funkcje, które pozwalają na tworzenie i uruchamianie aplikacji, a dostawca bierze na siebie odpowiedzialność za stworzenie i zarządzenie infrastruktury, włącznie z serwerem i alokacją zasobów. W modelu PaaS opłaty sa pobierane zazwyczaj za wykorzystanie zasobów i przestrzeni na dane, a także za funkcje, które są wykorzystywane.

Wszystko w chmurze

Podobnie jak i inne usługi chmurowe, np. infrastructure-as-a-service (IaaS) czy software-as-a-service (SaaS), PaaS oferowane jest poprzez infrastrukturę sieciową dostawcy usługi, a użytkownik ma do niej dostęp zazwyczaj przez przeglądarkę internetową. Rozwiązanie może być dostarczane za pośrednictwem chmury prywatnej, publicznej lub hydrydowej. W publicznej użytkownik kontroluje rozwój oprogramowania, a dostawca dostarcza wszystkie niezbędne aplikacje IT, niezbędne do hostowania, w tym serwery, systemy pamięci, sieci, bazy danych oraz systemy operacyjne. W prywatnej - PaaS dostarczany jest jako oprogramowanie, np. lokalne centrum danych. Hybrydowa oferuje połączenie tych dwóch rodzajów chmur.

Zamiast zmieniać całą firmową infrastrkturę IT w celu rozwoju oprogramowania, PaaS oferuje kluczowe usługi, jak np. aplikacje niezbędne dla Javy. Niektóre mają także narzędzia do testowania, designu i rozwoju, a także integracji z usługami sieciowymi, pracy zespołowej, połączenia z wybraną bazą danych, informacjami nt. bezpieczeństwa, itp. Jak i inni użytkownicy usług chmurowych, klienci PaaS płacą abonament za dostęp do wszystkich możliwość w wybranym okresie (miesiąc, rok, kwartał, itp.).

Zalety PaaS

Jedną z największych zalet PaaS jest brak wydatków na konieczne inwestycję w stworzenie i utrzymanie infrastruktury, w tym serwery i bazy danych. Daje to możliwość szybszego rozwoju i metod dostarczania aplikacji zarówno klientom, jak i na ogólny rynek. Pozwala również na testowanie działania na różnych systemach operacyjnych, efektów wprowadzanych aktualizacji czy testowanie wersji językowych. Użycie PaaS wymusza na deweloperach oprogramowania biznesowego korzystanie z technik chmurowych w ich aplikacjach, co ułatwia adopcję na platformach IaaS. Ponieważ organizacje używające PaaS mogą zarządzać swoimi danymi oraz aplikacjami, nie muszą obawiać się utraty kontroli tak, jak w przypadku używania infrastruktury lub aplikacji sieciowych.

Aplikacja PaaS

Głównym zadaniem PaaS jest dostarczanie środowiska do tworzenia, rozwijania oraz testowania, ale może być wykorzystywane również do innych zadań. Firma Gartner korzysta z tego rozwiązania do takich czynności, jak:

  • rozwijanie i zarządzanie API - w tym bezpieczne interfejsy oraz mikrousługi
  • analiza biznesowa - narzędzia dostarczane przez PaaS pozwalają na szybkie analizowanie dostarczanie danych w celu znalezienie wspólnych zachowań lub metod postępowania, co pozwala na łatwiejsze przewidzenie przyszłych zachowań klientów
  • zarządzanie procesami biznesowymi (BPM) - podobne jak w przypadku innych rozwiązań chrmurowych; BPM integruje się z komponentami IT niezbędnymi do zarządzania procesami, danymi, a także zgodami biznesowymi
  • komunikacja - PaaS może zaoferować mechanizmy komunikacyjne, co pozwala dodawać do tworzonych aplikacji możliwości rozmów głosowych, wideokonferencji czy rozmów tekstowych
  • bazy danych - dostawca PaaS może zaoferować takie usługi, jak stworzenie i utrzymywanie skalowalnej, samoobsługowej bazy danych, która może być częściowo zautomatyzowana
  • internet rzeczy - eksperci spodziewają się, że aplikacje i języki związane z Internetem Rzeczy zyskają w kolejnych lat bardzo duży zakres zastosowań w PaaS
  • zarządzanie danymi podstawowymi (MDM) - obejmuje posiadane przez organizację procesy, standardy, polityki, itp.

Technologie PaaS

PaaS obejmuje wiele komponentów chmurowych, jak serwery, ekwipunek sieciowy, systemy operacyjne, pamięci, bazy danych i oprogramowanie pośredniczące (middleware). Wszystkie są dostarczane i utrzymywane przez dostawcę, co zwalnia firmę z konieczności ich samodzielnego zakupu. Po prostu - płaci i wymaga konkretnych elementów, niezbędnych do pracy. Daje to możliwość korzystania z elementów, których nie ma lub które nie pasują do firmowej infrastruktury.

Przykłady PaaS

W chwili obecnej liderami PaaS są Amazon Web Services (AWS), Microsoft, Google, IBM, Salesforce.com, Red Hat, Pivotal, Mendix, Oracle, Engine Yard i Heroku. Warto zauważyć, że Amazon, Microsoft oraz Google dostarczają pełne zestawy usług chmurowych do tworzenia aplikacji, które potem korzystają z ich własnych serwisów chmurowych, co umożliwia jeszcze lepszą integrację. Nie jest to przypadek, że najlepsi dostawcy PaaS to zarazem producenci uważanego za najlepsze oprogramowania chmurowego. Gartner szacuje, że obecnie rozwiązanie to oferuje łącznie ok. 200 dostawców.

Oto wybrane przykłady usług oferowanych w PaaS:

  • AWS Elastic Beanstalk - umożliwia szybkie rozwijanie i zarządzanie aplikacjami w AWS Cloud bez konieczności posiadania jakiejkolwiek wiedzy na temat infrastruktury umożliwiającej ich działanie. Elastic Beanstalk automatycznie dba o wszystkie procesy, jak skalowanie, monitorowanie pracy czy balansu
  • AWS Lambda - platforma serverless, która uruchamia kod na podstawie zajścia określonych zdarzeń i automatycznie wykorzystuje i zarządza zasobami niezbędnymi do jego działania.
  • Google App Engine - usługa PaaS, oferująca rozwój i utrzymywanie aplikacji webowych w zarządzanych przez Google cntrach danych. Aplikacje są sandboksowe, działają i są skalowane automatycznie na wielu serwerach
  • Google Cloud Functions - stworzone w celu ułatwienia deweloperom uruchamianie i skalowanie kodu oraz tworzenie aplikacji serverless uruchamianych przy określonych zdarzeniach
  • Azure App Service - w pełni zarządzana usługa PaaS, która integruje strony Microsoft Azure, Mobile Services oraz BizTalk Services w jedną ofertę
  • Red Hat OpenShift - rodzina usług PaaS, która może być hostowana w chmurze lub uruchamiana w trybie on premises", czyli - aplikacja jest instalowana na infrastrukturze klienta. Flagowym przedstawicielem rodziny jest OpenShift Container Platform, PaaS typu on-premises, zbudowany wokół kontenerów Docker i zarządzana przez Kubernetes oraz Hat Enterprise Linux.
  • Pivotal Cloud Foundry - open-source'owa usługa PaaS, zarządzana przez Cloud Foundry Foundation. Została stworzona przez VMware, a po jakimś czasie uległa przekształceniu w Pivotal Software, spółkę join venture EMC, VMware oraz General Electric. Podobnie do OpenShift, Cloud Foundry ma za zadanie pomagać w budowaniu i działaniu konteneryzowanych aplikacji przy użyciu Kubernetes.

Ryzyka związane z PaaS

PaaS to usługa bazowana na chmurze, w związku z czym istnieją dla niej takie same zagrożenia, jak dla innych usług chmurowych, czyli przede wszystkim zagrożenie wyciekiem danych. Koncept współdzielenia zasobów, jak sieci i serwery, wymaga umieszczania krytycznych danych w miejscu, z którego nie mogą zostać skradzione, a także gdzie nie ma możliwości nieautoryzowanego do nich dostępu. Z jednej strony dostawcy PaaS są lepiej przygotowani na niebezpieczeństwa, niż dają ochroną zabezpieczenia przeciętnej infrastruktury, z drugiej - są oni często celem ataków hakerów i cyberprzestępców. Dlatego także ważne są w PaaS zabezpieczenia i kontrola dostępu zarówno po stronie dostawcy, jak i klienta.

Patrząc z perspektywy klienta, istnieje ryzyko to związane z samą infrastrukturą i oprogramowaniem dostawcy - musi się po prostu zaufać, że jest ono sprawdzone na obecność szkodników oraz solidne zabezpieczone przed włamaniami. Kolejne - to uzależnienie się od infrastruktury dostawcy. Wyobraźmy sobie, że usługa - z tych czy innych przyczyn - zostanie niespodziewanie przerwana. Będzie to irytujące, a jeśli prowadzone prace nie są na bieżąco zapisywane - utraci się osiągnięty w nich postęp. Poza tym może się zdarzyć, że dostawca zmieni swoją strategię, zdecyduje usunąć niektóre z języków oprogramowania, itp. - co może zmusić do zmiany strategii.

Co to jest iPaaS?

Pisząc tak wiele o PaaS, nie sposób nie wspomnieć o iPaaS, czyli integration platform-as-a-service. Jest to umieszczona w chmurze platforma integracyjna, pozwalająca na integrowanie zarówno lokalnych, jak i chmurowych środowisk, systemów i danych. Otrzymuje się szereg zautomatyzowanych narzędzi do rozwijania i testowania aplikacji w różnych środowiskach. Dostawcy takich usług to miedzy innymi Dell Boomi, Informatica, MuleSoft oraz SnapLogic. iPaaS polecany jest firmom wymagającym aplikacji i danych on-premises w połączeniu z chmurowymi.