Brak rozwiązań dających możliwość kontrolowania kluczowych – pozatechnicznych – aspektów funkcjonowania systemów opartych na chmurze radykalnie obniża praktyczną wartość tego modelu w dużych organizacjach. O jakie mechanizmy monitoringu warto wiec zadbać?
Na wstępie postarajmy się odpowiedzieć na pytanie: wokół jakiego rodzaju korzyści koncentrują się oczekiwania i nadzieje względem modelu cloud computing? Odpowiedź nie jest jednoznaczna, ponieważ zależy ona silnie od tego, co rozumiemy pod pojęciem chmury obliczeniowej. W ujęciu Infrastructure-as-a-Service (IaaS), czy Platform-as-a-Service (PaaS) oczekiwane korzyści są dość oczywiste – jest to szybkość dostępu do mocy obliczeniowej oraz jej malejący koszt. W przypadku SaaS mamy natomiast do czynienia z uwolnieniem modeli biznesowych oraz udostępnienia nowego rodzaju usług dla rynku. Przykładem jest choćby Office 365, który oferowany jest w hybrydowym modelu aplikacji oraz aplikacji instalowanych lokalnie, a z drugiej strony mamy dostęp online do usługi oraz swobodną wymianę plików.
Rynek dość surowo weryfikuje koncepcję chmury PaaS czy IaaS, co wynika z faktu, że szybki dostęp do infrastruktury to zaledwie wycinek zagadnień z jakim mierzy się duża informatyka. Organizacje dopiero zaczynają uczyć się jak automatyzować budowanie całych środowisk, od sprzętu, poprzez dane, aż do aplikacji, co – w efekcie - otworzy drogę do efektywnego korzystania z właściwości chmury jako takiej. Nieco inaczej ma się wykorzystanie oprogramowania w modelu SaaS, gdzie poza kwestiami bezpieczeństwa, bariera wejścia nie jest duża. Z tego modelu świetnie korzysta już sektor małych i średnich przedsiębiorstw. Przykładem jest tutaj nasza firma, która choć posiada własny sprzęt, to jednak wszystkie istotne biznesowo usługi takie jak: poczta, CRM, zasoby plikowe czy księgowość, wykorzystuje w formie kupionych na rynku usług SaaS.
Rozważając chmurę warto myśleć o niej w dwóch wymiarach: modelu wdrożenia (prywatna, publiczna, hybrydowa) oraz przyszłych jej zastosowań. Należy zastanowić się czy będzie ona zamkniętą częścią środowisk produkcyjnych, czy ma zapewniać moc obliczeniową niezbędną podczas pików obciążenia, czy też będzie wykorzystywana wyłącznie na potrzeby środowisk testowych. W każdym z tych scenariuszy rola mechanizmów monitoringu będzie nieco inna.
INNE OCZEKIWANIA W RÓŻNYCH MODELACH
W przypadku samodzielnie funkcjonujących środowisk produkcyjnych w chmurze publicznej kluczowe jest zapewnienie ich sprawnego i ciągłego funkcjonowania, ze szczególnym wskazaniem optyki użytkownika systemu, a co za tym idzie – zagadnień monitoringu aplikacyjnego, infrastrukturalnego i sieciowego. Tutaj bardzo istotne jest wskazanie w punkt istoty każdego występującego problemu, a także możliwość przekazania informacji zgodnie z wymaganiami bezpieczeństwa, zasadami czy regulatora.
Z kolei w przypadku chmury hybrydowej i środowisk produkcyjnych istotne są nie tylko kwestie wskazane wyżej, ale także zdolność zunifikowanego dostarczenia informacji nt. systemu - zarówno z jego części funkcjonującej w ramach prywatnej chmury czy centrum danych oraz części funkcjonującej w chmurze publicznej.
Jeśli chodzi o środowiska nieprodukcyjne, to wymagania względem monitoringu będą nieco inne. W ich przypadku monitoring jest bowiem związany głównie z perspektywą zarządzania wydajnością oraz optymalizacji aplikacji pod kątem wdrożenia produkcyjnego. Jeśli mowa tutaj o środowiskach programistycznych czy też testowych, monitoring związany jest z perspektywą zarządzaniem wydajnością i przygotowaniem systemu do wdrożenia produkcyjnego. W takim przypadku prócz diagnostyki „w punkt” wymagane jest wsparcie przez narzędzie komunikacji między zespołami: programistów, testerów i operacji, włączając w to możliwość pracy offline. Dodatkowymi pożądanymi elementami będą także funkcjonalności związane z wykryciem mikroregresji czy zmiany dystrybucji wykorzystywanego API.
Poza tym, biorąc pod uwagę fakt, że chmura zwykle pociąga za sobą dynamiczną i szybką budowę środowisk, istotna staje się konieczność szybkiej rozbudowy monitoringu. Jest zatem konieczne, żeby narzędzie monitoringu pozwalało na zautomatyzowanie takich operacji.
DLACZEGO CHMURA ZAWODZI
Wróćmy na chwilę do źródeł negatywnej oceny modeli PaaS i IaaS w dużych organizacjach IT. Negatywna ocena chmury wynika dziś z następujących czynników:
Obawa o bezpieczeństwo danych, dostęp do usług oraz problemy z audytem i nadzorem;
W przypadku środowiska PaaS proces tworzenia warstwy aplikacyjnej jest skomplikowany i errorogenny, najczęściej ręczny, co dyskwalifikuje wykorzystanie chmury jako takiej;
Generalnie organizacje nie mają opracowanej strategii anonimizacji danych, która obejmuje wszelkie aspekty od ustawienia reguł maskowania, poprzez ich logowanie, po logowanie procesu maskowania oraz dystrybucji danych, a także jest niezbędna w kontekście wykorzystania chmury na potrzeby testów;
Zasadniczo brak jest możliwości dostarczenia kopii danych do chmury przy zachowaniu niskich kosztów. Trudno wyobrazić sobie w jaki sposób dostarczyć do chmury środowisko odwzorowujące np. trzy rodzaje baz danych różnych producentów, z pełnymi i odpowiednio zamaskowanymi kopiami danych;
Zwyczajowy monitoring chmury skupiony jest na monitoringu infrastruktury, dostarczanym przez dostawcę środowiska cloud. Niestety zwykle takie rozwiązanie nie niesie za sobą istotnej wartości informacyjnej dla właściciela, opartego na chmurze, systemu biznesowego. Jego interesuje bowiem jakość usługi dla użytkownika końcowego, rodzaj doświadczenia z pracy z systemem oraz informacje biznesowe, które w powiązaniu z monitoringiem technicznym dają jasną odpowiedź czy IT dostarcza dobrej jakości systemy, które generują przychód dla organizacji.
Wszystkie te wymagania są niespełnialne, gdy myślimy o dużej ilości szybko tworzonych środowisk IT. Na to nakłada się też naturalna niechęć do wykorzystywania kolejnego interfejsu służącego budowaniu takich środowisk, zwłaszcza, jeśli w organizacji funkcjonują już inne rozwiązania typu PaaS lub IaaS.
MONITORING JAKO UŁATWIENIE WE WDRAŻANIU CHMURY
Aby chmura stała się realnie użyteczna, musi stać się częścią całościowego, przemyślanego planu budowy środowisk nieprodukcyjnych, których cena jednostkowa musi być racjonalna. Jest to istotne zwłaszcza w obliczu rosnącego zapotrzebowania na ilość środowisk obliczeniowych w większości dużych organizacji. Warto zwrócić uwagę, że taka jest charakterystyka rozwiązań typu SaaS – tworzą one zamkniętą, racjonalną cenowo całość. PaaS i IaaS nie posiadają takich cech – są zaledwie cząstkowym rozwiązaniem większego problemu i zgodnie z teorią ograniczeń, niestety nie rozwiązują jedynego i chyba największego wąskiego gardła w całym procesie, który de facto sprowadza się do automatycznego budowania środowisk i wdrażania nowych wydań w trybie ciągłym.
Aby rozwiązać ten problem dostawca platformy cloud powinien, we współpracy z klientem, zapewnić narzędzia wspierające:
- Zautomatyzowany proces budowania środowisk obliczeniowych, wbudowane w platformę chmurową, a także zintegrowane lub identyczne względem rozwiązań wykorzystywanych lokalnie przez danego klienta;
- Zautomatyzowane budowanie aplikacji, orkiestrację komponentów i – co najważniejsze – zapewniające możliwość cofnięcia wykonanej operacji, w przypadku, gdy wdrożone rozwiązanie nie funkcjonuje zgodnie z oczekiwaniami;
- Dostarczenie danych do chmury, a także ich maskowanie. Standardowo dostarczenie dużego wolumenu danych, przykładowo kopii danych produkcyjnych, odpowiednio zanonimizowanych jest bardzo trudne i kosztowne czasowo. W przypadku rosnącej potrzeby ilości środowisk sytuacja pozornie staje się nierozwiązalna – bo jak zbudować i dostarczyć kilkanaście, czy kilkadziesiąt kopii danych o wielkości 10TB każda do chmury, i w jakim cyklu odświeżać te środowiska?
- Tworzenie chmurowego repozytorium artefaktów, które pozwoli zdefiniować polityki i zarządzać ryzykiem związanym z ogromną ilością bibliotek i frameworków używanych we współczesnym procesie tworzenia oprogramowania.
Monitoring środowisk chmurowych musi przy tym wykraczać poza standardowe podejście typu: dostępność maszyny, poziom wykorzystania CPU, pamięci czy storage, gdyż tego typu informacja jest istotna tylko i wyłącznie dla infrastruktury IT. W przypadku środowisk chmurowych istotna jest perspektywa użytkownika końcowego oraz perspektywa transakcji biznesowej, która pozwala powiązać podróż klienta z jakością systemu i jego funkcjonalnością.