Wady i zagrożenia aplikacji w modelu SaaS (Software as a Service)
Wstęp
Wraz z zwiększeniem dostępności internetu, przepustowości łączy oraz obniżeniu ceny pakietów (także mobilnych) stał się on powszechny w użyciu. Umożliwiło to łatwiejsze tworzenie aplikacji w całości opartych o przeglądarkę lub aplikacji w znaczącym stopniu wykorzystującej serwer. Jest to zmiana podejścia do pisania aplikacji od tej znanej z lat 90″ XX w. bazującej na wysyłce fizycznych kopii na dyskietkach, płytach lub innych fizycznych nośnikach przez sprzedawanie kluczy licencyjnych z płytami i aktywacją przez internet lub samych kluczy licencyjnych i COA (Certificate of Authenticity). Między czasie pojawiły się aplikacje z tz. grubym klientem (fat client) bazujące na interakcji z serwerem, lecz posiadające aplikację instalowaną lokalnie. Ich następstwem był cienki klientem (thin client) wykorzystujące w większym stopniu serwer. Wszystkie te podejścia zostały w znacznej części zastąpione klasyczną przeglądarką.
Czym jest SaaS?
Model sprzedaży oprogramowania jako usługi dostarczanej i utrzymywanej przez usługodawce. Właściwie SaaS jest modelem dystrybucji oprogramowania jako usługi i sposobem jego kupowania (nie licencjonowania). Kluczową różnicą jest sposób sprzedaży, gdyż nie kupujemy licencji na użytkowanie oprogramowania, a usługę. Ta drobna różnica odwraca zupełnie sposób postrzegania oprogramowania jako coś naszego na usługę od konkretnej firmy. Zmiana modelu sprzedaży oprogramowania z licencji na usług różni się tak znacząco, że tym artykułem chciałbym pokazać moją opinię odnośnie wad oraz zagrożeń, a także i zalet takiego modelu sprzedaży oprogramowania.
Zagrożenia
Mogą się znacząco różnić od konkretnego dostawcy SaaS’a, lecz należy zwrócić uwagę na:
- uzależnienie od jednego dostawcy (vendor-lock-in), a co za tym idzie zmiany usługodawcy (migracji systemu) więcej: https://pl.wikipedia.org/wiki/Uzale%C5%BCnienie_od_dostawcy
- kłopotliwe backup’owanie offline danych zawartych w chmurze i lokalny odczyt
- brak lub utrudniona możliwość uruchomienia aplikacji lokalnie
- brak możliwości eksportu danych do standardowego formatu i odczytania ich przez inną aplikacje
- możliwość manipulacji ceną w przypadku „dłuższego zostania”
- wzrost kosztów w przypadku większego zapotrzebowania na usługę (skalowaniu) przykład: kupując mało wychodzi tanio, ale kupując dużo wychodzi taniej mieć swój software
- konieczność „zaufania” dostawcy i powierzenie mu bezpieczeństwa nad aplikacją i danymi
- ogniwo, które w przypadku pęknięcia może spowodować unieruchomienie biznesu, który od niego zależy
Szanse i możliwości SaaS
Pomimo zagrożeń model oprogramowania jako usługi w części przypadku się sprawdza. Niektóre zalety oraz szanse biznesowe:
- utrzymanie leży po stronie usługodawcy – brak konieczności posiadania infrastruktury oraz sprzętu
- aktualizacja aplikacji po stronie usługodawcy
- support (wsparcie techniczne) jest zazwyczaj zapewnione przez usługodawce i dużo prostsze niż w przypadku licencjonowania
- brak jednej dużej opłaty licencyjnej, a subskrypcje płacona np. co miesiąc
- w przypadku walidacji biznesowej zmniejszenie ryzyka (możliwość anulowania subskrypcji)
- mniejszy czas potrzebny na szkolenie z danej usługi (zazwyczaj nie zajmujemy się infrastrukturą)
- czas uruchomienia jest zazwyczaj krótszy niż w przypadku usługi lokalnej (time to market)
Licencja? Przecież to usługa
Finansowane oprogramowania nie jest już kosztem poniesionym raz i rozłożonym w czasie, lecz abonamentem jak w przypadku innych usług. Znacząca większość usług rozliczana jest miesięcznie co dalej spore możliwości ich skalowania. Usługa może zostać anulowana w przypadku, gdy jest niepotrzebna lub rozszerzona jeżeli zwiększa się na nią zapotrzebowanie. Taka elastyczność umożliwia szybką reakcje w przypadku zwiększenia lub zmniejszenia zapotrzebowania biznesu.
Aktualizacje? Wszystko jest w chmurze i dba o to ktoś inny
Wykonywanie uaktualnień oprogramowania w tradycyjnym przypadku wymagało ręcznego lub pół automatycznego patchowania. Gdy zdarzyło się że z wersji na wersję coś nie działało zazwyczaj była możliwość powrotu. Decydując się na aplikacje typu SaaS zazwyczaj te aktualizacje wykonuje za nas usługodawca. Przecież to wygodne
Eksportowanie danych – ucieczka do innego usługodawcy
Nie zawsze oprogramowanie może się sprawdzić. W przypadku jeżeli zaszłaby taka konieczność ważna jest możliwość eksportu danych do standardowego formatu (.cvs lub .xlsx) w celu przeniesienia do innego usługodawcy lub na swoje oprogramowania jeżeli zaszłaby taka potrzeba. W przypadku braku takiej możliwości konieczne może być scrap’owanie danych (poprzez np. odczyt danych z przeglądarki) i ich ręczne eksportowanie. Taka sytuacji może doprowadzić do vendor lock in, gdzie jesteśmy uzależnieni od dostawcy SaaS’a. Istotną kwestią jest sposób backupu, gdyż jeżeli usługodawca SaaS’a z jakiegoś powodu zawiedzie może to doprowadzić do utraty naszych danych. Oczywiście za backup odpowiedzialny jest dostawca usługi jednak pamiętajmy że mimo podejmowanych przez niego wysiłków może zawieść. Należy się zastanowić czy SaaS nie jest najsłabszym ogniwem łańcucha i co się stanie jak zawiedzie.
Bezpieczeństwo – zaufanie do dostawcy
Kupując usługę w chmurze to dostawca dba o nasze bezpieczeństwo. W przypadku incydentów bezpieczeństwa i wycieku danych musi nas o tym poinformować. W przeciwieństwie do standardowego modelu może pozwolić sobie na specjalistę od bezpieczeństwa oraz audyty firm zewnętrznych.
Skala – klientów jest wielu i różnej wielkości
Z SaaS’a korzysta zazwyczaj bardzo wielu klientów, którzy są różnej wielkości przez co ich potrzeby są różne. Usługodawca stara się dostosować swoją ofertę do wielkości klienta. Ma to zaletę w postaci możliwości kupowania większej ilości usług, jeżeli zachodzi taka potrzeba lub ich zmniejszania jeżeli akurat zdarzyło się że nie ma takiej potrzeby. Klienci muszą brać jednak pod uwagę, że niektóre usługi są opłacalne w małej skali, a przy dużej już może się okazać że bardziej opłaca się utrzymywać własne rozwiązanie. Zagrożeniem płacenia w razie potrzeb jest możliwość manipulacji ceny przez usługodawce. Jednym ze sposobów rozwiązania tego problemu jest architektura multi tenant, w której każdy z klientów ma swoją wersję SaaS’a.
Support – wsparcie jest najważniejsze
W oprogramowaniu kluczowe jest zazwyczaj dostarczanie wartości biznesowej. Zależy nam aby było ono tylko narzędziem do naszej pracy. Kwestia supportu w przypadku SaaS’a jest znacznie prostsza, gdyż nie martwimy się o problemy z sprzętem, siecią, systemem operacyjnym czy aktualizacjami a zazwyczaj tylko z funkcjonalnością aplikacji. Inne rzeczy zależne od działania oprogramowania są po stronie usługodawcy i to on dba o to, aby sprzęt na którym zainstalowanym jest system operacyjnym na którym uruchomiona jest aplikacja komunikująca się przez sieć działały. Zostawiamy to usługodawcy.
Podsumowanie
Model aplikacji SaaS jest niewątpliwie rewolucją w przypadku modeli sprzedaży oprogramowania. Stał się on możliwy ze względu na rozwój technologii a zmieniające się potrzeby biznesowe oraz redukowanie kosztów wymusiły taki model zakupu usługi. Usług typu SaaS nie należy się obawiać jednak zdawać sobie sprawę z ich zalet, wad oraz zagrożeń wynikających z ich użytkowania. Ten model prawdopodobnie będzie się popularyzował ze względu na potrzeby klientów i brak chęci posiadania własnych zasobów potrzebnych do utrzymania oprogramowania lub jego wytwarzania.