Czym jest chmura?

Pojęcie chmury jest w tej chwili tak powszechne i odmieniane przez wszystkie przypadki, że warto zapytać, co tak naprawdę się pod nim kryje i jak to możliwe, że występuje w praktycznie każdym kontekście. Na początek dokonamy prostego podziału modeli usług w chmurze. Jako główne typy można wskazać: SaaS, PaaS i IaaS.

Software as a Service daje możliwość korzystania z programów użytkownikom końcowym – kupuje się po prostu dostęp do określonej funkcjonalności aplikacji (typowy przykład to Office 365, a w przypadku rozwiązań SAP rodzina produktów funkcjonująca pod szyldem Success Factors). Platform as a Service umożliwia zarządzanie aplikacjami i tworzenie oprogramowania. Innymi słowy dostajemy do dyspozycji miejsce z technologią oraz z zapewnionymi warunkami technicznymi, typu pamięć, przepustowość, liczba kont itp. Infrastructure as a Service zapewnia dostęp do zasobów sprzętowych, takich jak odpowiednio pojemne dyski, wystarczająca ilość pamięci itd.

Za sprawą chmury dostęp do usług realizowany jest przez Internet, dzięki czemu praca możliwa jest praktycznie z każdego miejsca na Ziemi. Konsekwencją wykorzystania tej klasy rozwiązań jest zmniejszenie kosztów sprzętu informatycznego, jak również brak potrzeby dbania o serwis, aktualizacje oprogramowania czy backupy. Z czasem, gdy biznes będzie się rozrastał, można łatwo dostosować usługi do zmieniających się wymagań, np. zwiększyć miejsce na serwerze, wykupić większe możliwości obliczeniowe, bardziej zaawansowane oprogramowanie. Zyskujemy możliwość szybszego reagowania na zmiany zachodzące w przedsiębiorstwie. Kontrakty na rozwiązania „as a service”, zwykle zawierane w oparciu o SLA, zapewniają wysoki poziom dostępności rozwiązań.

SAP HANA Cloud Platform

Nowe rozwiązania i narzędzia firmy SAP, które pojawiły się na rynku, wskazują jednoznaczny kierunek rozwoju na najbliższe lata. SAP stawia na aplikacje pisane pod przeglądarki internetowe, a więc dzisiaj najpowszechniej stosowany interfejs użytkownika końcowego. Obok gotowych rozwiązań, takich jak m.in. SuccessFactors (w obszarze zarządzania kapitałem ludzkim) czy SAP Cloud for Customers (do zarządzania relacjami z klientami), firma SAP przygotowała możliwość tworzenia aplikacji osadzonych w chmurze. Służy do tego narzędzie HANA Cloud Platform.

Do aplikacji w chmurze użytkownik ma dostęp przez Internet za sprawą szyfrowanego protokołu https. Aplikacja napisana w języku Java działa w chmurze na wirtualnej maszynie (JVM). Aplikacje można pisać w Java SE 6 i 7 i osadzać na serwerze Apache Tomcat 7. Dzięki profilowi webowemu Java EE 6 Web Profile można w łatwy sposób tworzyć aplikacje sieciowe. W skład profilu wchodzi szereg specyfikacji, m.in. Java Servlet 3.0, JavaServer Pages (JSP) 2.2, Expression Language (EL) 2.2, Standard Tag Library for JavaServer Pages (JSTL) 1.2, JavaServer Faces (JSF) 2.0, Enterprise JavaBeans (EJB) 3.1 Lite, Java Transaction API (JTA) 1.1, Java Persistence API (JPA) 2.0 itd.

Co warte podkreślenia, programowanie na platformie HANA Cloud Platform nie jest ograniczone wyłącznie do Javy – można wykorzystać znany już wcześniej mechanizm UI5 wraz z serwisami OData, komunikujący się z docelowym systemem (obojętnie czy dotychczasową instancją on-premise, czy np. z SuccessFactors). Docelowo plany rozwojowe obejmują możliwość uruchamiania aplikacji PHP czy Ruby, co sprawia, że HANA Cloud Platform stanie się platformą o największym zakresie możliwych do wykorzystania technologii.

Konsekwencje wydają się oczywiste – łatwiej rozwijać i utrzymywać firmowe oprogramowanie w ramach jednej rodziny technologii niż utrzymywać dedykowany zespół do każdej z nich osobno.

SAP HANA Cloud Account

Z tworzeniem aplikacji i osadzaniem ich w chmurze nierozerwalnie związane jest pojęcie konta w chmurze (cloud account). Umożliwia ono m.in. osadzanie aplikacji w chmurze. Kontem zarządza się za pomocą kokpitu, gdzie można przeglądać logi, monitorować działanie aplikacji, np. jej dostępność czy wykorzystanie przez nią zasobów, można zarządzać autoryzacją użytkowników i dokonywać konfiguracji konta na potrzeby np. połączenia z bazą danych czy integracji z innymi programami. Z pojęciem konta związanych jest kilka podstawowych pojęć. Zasoby określają, jaką ilość pamięci, ile przestrzeni dyskowej można wykorzystać w ramach konkretnego konta w chmurze na potrzeby aplikacji, które są z tym kontem powiązane. Dla konta określa się użytkowników, którzy będą mieli możliwość autoryzacji i dostęp do zasobów aplikacji w chmurze. Utworzona i osadzona w chmurze aplikacja musi być przypisana do konkretnego konta.

Aplikacje, które wpływają na tworzenie nowych danych, ich analizę czy przetwarzanie, przechowują dane w ścisłym powiązaniu z kontem, np. dane przechowywane w bazie danych, które są związane z aplikacją, są również ściśle powiązane z kontem, na którym ta aplikacja działa. Ostatnim ważnym aspektem jest konfiguracja, która również jest ściśle powiązana w kontem. Wszelkie ustawienia i preferencje, które zostały określone dla konta w chmurze, są zapamiętywane i mają bezpośredni wpływ na aplikację tylko w ramach konkretnego konta w chmurze. Konto w chmurze jest powiązane z centrum danych w chmurze (działa w ramach data center) i jest w pełni izolowane.

Środowisko deweloperskie i jego konfiguracja

Usługa PaaS (w interesującym nas wypadku nazywana po prostu HANA Cloud Platform) pozwala na tworzenie, rozszerzanie i zarządzanie aplikacjami w chmurze. Rozpoczęcie pracy z SAP HANA Cloud Platform od strony dewelopera wymaga pewnego przygotowania narzędzi, które pozwolą tworzyć aplikacje w wybranej spośród dostępnych technologii, aktualnie są to Java, SAP HANA XS, UI5 (HTML5).

Jeśli chcemy tworzyć aplikacje w języku Java na SAP HANA Cloud Platform, w pierwszej kolejności należy zainstalować oprogramowanie Java na komputerze dewelopera. Następnie zakładamy konto w chmurze, żeby mieć dostęp do testowego konta w chmurze.

W dalszej kolejności instalujemy na komputerze developera IDE rekomendowane przez SAP, czyli Eclipse for Java EE Developers, w wersji np. Mars (wersja Luna również jest wspierana). W dalszej kolejności rekomendowane jest pobranie Java EE 6 Web Profile SDK z przykładowymi aplikacjami, które w początkowym etapie nauki sprawią, że nie będziemy wyważać otwartych drzwi. Po poprawnym zainstalowaniu kolejnego narzędzia SAP HCP Tools for Eclipse i ponownym uruchomieniu programu Eclipse na ekranie startowym pojawi się sekcja SAP HANA Cloud Platform. Umożliwia ona osadzanie utworzonych aplikacji w chmurze dzięki definiowaniu połączenia z serwerem SAP HANA Cloud Platform.

Warto też wspomnieć o narzędziu Cloud Connector, które umożliwia nawiązywanie bezpiecznego połączenia SSL tworzonych aplikacji z systemami SAP on-premise, tworząc tunel do przesyłania danych korzystający z protokołu HTTPS.

Artur Górnik, Regional Presales Expert, SAP HANA Cloud Platform, SAP

SAP HANA Cloud Platform – koszty licencji
Łatwość i otwartość tworzenia aplikacji to ważna sprawa, ale równie ważna jest kwestia licencji, a więc kosztów użytkowania platformy typu Cloud dla klienta. Odchodzą koszty utrzymania całej infrastruktury sprzętowo-programowej we własnej serwerowni, ale oczywiste jest, że koszty te musi ponieść dostawca rozwiązania. Pytanie więc, w jaki sposób znajduje to odzwierciedlenie w cenniku dla klienta.
W odniesieniu do SAP HANA Cloud Platform zastosowanie mają dwa proste modele licencjonowania: per użytkownik albo per system. W każdym z tych modeli znaczenie ma poziom zaawansowania. I tak w przypadku licencji per użytkownik wersja Base Edition zaczyna się od 1 euro, a wersja Enterprise Edition to zaledwie 10 euro (obydwie ceny w katalogu dotyczą użytkownika/miesiąc).
Nowością w cenniku jest charakterystyczne dla rozwiązań Cloud odejście od typowego liczenia per użytkownik i podejście do wyceny zestopniowanych  parametrów platformy. Przykładowo Base Edition dla systemu HANA o parametrach 32 GB RAM, dodatkowej  przestrzeni dyskowej 320 GB oraz przepustowości 512 GB (tylko out, bo in, czyli pobranie danych z systemów źródłowych, jest nielimitowane) kosztuje katalogowo 1250 euro/miesiąc. Parametry te pozwalają na przygotowanie już całkiem sporego zakresu rozwiązań aplikacyjnych.
Oczywiście gdyby tego wszystkiego było za mało lub zabrakło pożądanych wartości w ściśle określonych parametrach systemu, dostępny jest również model  a la carte, w którym można złożyć w zasadzie dowolną instancję HCP o pożądanych parametrach użytkowych.
Artur Górnik, Regional Presales Expert, SAP HANA Cloud Platform, SAP

Pierwsze kroki w osadzaniu aplikacji w chmurze

Osadzanie testowej aplikacji w chmurze najłatwiej rozpocząć od wczytania projektu Hello World, który można znaleźć w pobranym Java EE 6 Web Profile SDK. Znajdziemy tam kilka przykładowych programów zawierających najczęściej wykorzystywane funkcjonalności. Po zaimportowaniu projektu hello-world do Eclipse program możemy edytować, wprowadzając zmiany w pliku HelloWorldServlet.java.

Programiści Java znający środowisko Eclipse w tym momencie powinni się czuć jak ryba w wodzie. Po dokonaniu i zapisaniu zmian należy opublikować skompilowaną i zaktualizowaną wersję aplikacji na serwerze w chmurze. Aplikację można w łatwy sposób debuggować, przełączając perspektywę w Eclipse z Java EE na Debug i ustawiając break-pointy w odpowiednich miejscach.

W celu osadzenia aplikacji w chmurze należy najpierw skonfigurować połączenie z chmurą w opcjach Preferences > Server w menu Eclipse, wprowadzając nazwę hosta, wskazując lokalny katalog SDK oraz wprowadzając nazwę naszego konta i użytkownika w chmurze. Następnie należy w Eclipse, w zakładce Servers z menu obszaru kontekstowego wybrać opcję New > Server, następnie wybrać SAP HANA Cloud Platform. W kolejnym oknie procesu wprowadzamy nazwę, pod którą aplikacja będzie istniała na serwerze, a w kolejnym kroku należy się zautoryzować wprowadzając hasło do konta w chmurze.

To, czy aplikacja działa już na serwerze w chmurze, można zweryfikować, wpisując odpowiedni adres URL w przeglądarce internetowej. Można też zalogować się na swoje konto w chmurze przez kokpit i w zakładce Java Applications sprawdzić status aplikacji. Z tego poziomu można też wyłączyć lub włączyć aplikację, gdy jest taka potrzeba.

To już w zasadzie wszystko. A zatem kilka opcji konfiguracyjnych do rozpoznania, do tego świadomość cyklu życia aplikacji i programista jednej z dostępnych na HCP technologii może już przygotowywać pełnoprawną aplikację na HANA Cloud Platform.

Kto zyskuje i kto… nie traci?

Nieco na marginesie, ale powyżej pojawiło się również ważne pytanie, kto może zostać deweloperem HCP? Odpowiedź jest bardzo prosta: praktycznie każdy. To znacząca różnica w stosunku do dotychczasowych systemów on-premise, które najpierw należało zainstalować i zwykle skonfigurować, żeby uzyskać środowisko do potencjalnego rozwoju programowania. W rozwiązaniu Cloud ten wymóg zostaje całkowicie zniesiony.

Oczywiście jeśli chcemy uzyskać źródło danych bezpośrednio w którymś z systemów produkcyjnych, to musi on istnieć, ale nic nie stoi na przeszkodzie, by tworzyć aplikacje z własnym modelem danych bądź prototypy gotowe do zaprezentowania biznesowi, przedstawiające pełen interfejs użytkownika i przepływ wykonywanych w aplikacjach działań. Idąc dalej, działy IT mogą się przygotowywać do planowanych upgrade’ów i wdrożeń z dużym wyprzedzeniem, zapewniając płynne przejście aplikacji, które już teraz mogą być tworzone np. w UI5, tak by było możliwe ich przepięcie do chmury w przyszłości.

Użytkownik w centrum uwagi

SAP HANA Cloud Platform i aplikacje budowane w oparciu o chmurę, m.in. też te bazujące na UI5, będą w najbliższym czasie zdobywały rynek w środowisku SAP. Firma SAP otwarcie przyznaje, że nowa generacja aplikacji ma za zadanie zyskać sympatię użytkowników poprzez przejrzystość, intuicyjność i prostotę użycia. Dużą wagę przykłada się do hasła User Experience (UX), które wyraża się w tym, że deweloper podczas tworzenia aplikacji w centralnym punkcie stawia użytkownika, jego potrzeby, wymagania, a nawet pozytywne odczucia. Dzięki temu użytkownicy łatwiej identyfikują się z narzędziami, z których korzystają.

Aplikacje mają skupiać się na konkretnym działaniu, inaczej niż było dotychczas w systemach on-premise, gdzie często w jednej rozbudowanej transakcji swoje zadania realizowało wiele osób, z różnych obszarów firmy, a liczba pól i opcji na ekranie odstraszała użytkownika, sprawiając, że realizacja prostego procesu biznesowego wymagała tworzenia skomplikowanych instrukcji.