oktawave

Oktawave: Dlaczego zdecydowaliśmy się stworzyć nowy panel administracyjny?

9 minut czytania
Komentarze

Jak informowaliśmy Was miesiąc temu, Android.com.pl rozpoczął współpracę z Oktawave – dostawcą polskiej, bezpiecznej chmury obliczeniowej dla biznesu. Międzyczasie firma ta wdrożyła zupełnie nowy panel administracyjny, który w naszej subiektywnej opinii jest rewelacyjny. Ze względu na to, że wielu z Was, naszych czytelników pracuje w branży IT, możecie być ciekawi jak taki proces wygląda od kuchni. Poprosiliśmy więc Dariusza Nawojczyka, CMO Oktawave, aby zdradził nam kulisy wdrożenia nowego systemu. Zapraszamy do lektury!

Panel administracyjny jest jednym z pierwszych elementów, który widzi nasz nowy użytkownik. Wydaje się naturalne, że chcemy, by ten moment był wyjątkowy, a doświadczenie jak najlepsze. Panel to również miejsce, w którym nasi użytkownicy spędzają najwięcej czasu, a więc musi on łączyć w sposób wyjątkowy dwa konteksty: użytkowy i estetyczny.

Pierwsza wersja naszego oryginalnego panelu administracyjnego to początki prac koncepcyjnych nad polską chmurą obliczeniową Oktawave. Był to rok 2010, popularny serwis nasza-klasa zmienia nazwę na nk.pl, Google kończy wsparcie dla Gears, które ma być zastąpione przez HTML5, a Mark Zuckerberg zostaje człowiekiem roku magazynu Time. Do komercyjnego startu Oktawave jeszcze dwa lata. Kiedy robimy pierwsze testy z użytkownikami, okazuje się, że nie mogą przejść w nim najprostszych scenariuszy.

Zaczynamy testy beta, bierze w nich udział ponad 1500 użytkowników, którzy przesyłają nam wiele uwag. Zaciskamy zęby i w trzy miesiące przepisujemy panel. W końcówce roku 2012 startujemy komercyjnie z wersją, która w badaniach użyteczności osiąga ocenę 4,17 / 5. Czujemy satysfakcję.

Nasz obecny panel pochodzi więc z przełomu lat 2012 i 2013. Pozwolił nam na udostępnienie automatyzacji procesu uruchamiania i zarządzania infrastrukturą IT tysiącom użytkowników – według nas spełnił swoją rolę, umożliwiając wielu firmom wejście w świat cloud computingu. Przez lata jego funkcjonowania zbieraliśmy również od klientów komentarze i uwagi dotyczące usprawnień i poprawek. Większość wprowadzaliśmy na bieżąco, inne były wizjami fundamentalnie zmieniającymi istotę panelu i musiały poczekać.

W Oktawave wiemy, że dętkę można łatać tylko określoną liczbę razy, dlatego zamiast poprawionej funkcjonalności naszego wysłużonego panelu administracyjnego, w ręce klientów oddajemy dziś zupełnie nowy, zbudowany od podstaw. Oto, co nam przyświecało, gdy go tworzyliśmy.

Robocza nazwa nowego panelu to NAP (ang. New Admin Panel).

Panel zawsze pod ręką

Potrzeby administratorów odnośnie interfejsu panelu administracyjnego i jego możliwości zmieniały się w czasie. Jedną z rzeczy, która naturalnie wyewoluowała, jest wersja mobilna. Dzisiaj administrator oczekuje, że zarówno na desktopie, jak i na urządzeniu mobilnym – i nie istotne czy będzie to tablet czy smartfon, uzyska dostęp do maszyn, którymi zarządza.

W wypadku starej wersji naszego panelu – ponieważ powstał on w czasach, kiedy smartfony dopiero zaczynały podbijać rynek (Android właśnie zmieniał nazwę kodową z Froyo na Gingerbread) – dodanie takiej funkcjonalności było prawie niemożliwe.

Wraz z nową wersją panelu dajemy użytkownikom długo wyczekiwaną wersję mobilną, która działa tak samo dobrze, niezależnie czy jest to iPhone czy tablet z Androidem. Interfejs sam dostosuje się do wielkości ekranu, więc wielkość czy rozdzielczość ekranu również nie grają tutaj dużej roli.

Serce systemu

Nowy panel jest aplikacją typu SPA (Single Page Application), napisaną w architekturze aplikacji z kodem po stronie klienta (client side application). NAP w całości ładuje się do przeglądarki i korzysta z API Oktawave do komunikacji z usługą. Językiem nowego panelu jest JavaScript ES7 w akompaniamencie wielu innych technologii, z których wymienić warto: Sass, Websocket, HighCharts, Brunch, Babel czy Jasmine.

Przeniesienie aplikacji do przeglądarki wzmocniło separację od API. Dzięki temu mamy jasny podział zakresu i odpowiedzialności aplikacji oraz API Oktawave jako backendu usługowego. Mniejsza liczba zapytań do serwera (serwer zajmuje się tylko procesowaniem danych) powoduje, że użytkownik zyskuje szybko działającą aplikację, reagującą na jego akcje niemal natychmiast. Tak otwarta architektura pozwala integrować w panelu administratora usługi z wielu API.

Co więcej, rozwój panelu jest procesem niezależnym od rozwoju API (oczywiście do pewnego stopnia) – dzięki temu cykl wprowadzania usprawnień do samego panelu może być znacząco skrócony. W poprzedniej architekturze panel administratora był aplikacją serwerową skonfigurowaną w ścisłym powiązaniu z API v1. Jakakolwiek zmiana w jednym z tych modułów wymagała wdrożenia obu systemów. Teraz po rozdzieleniu jest nam łatwiej rozwijać te dwa systemy niezależnie. To oznacza przede wszystkim tyle, że użytkownik Oktawave szybciej będzie dostawał nowe funkcje.

Aplikacje typu SPA potrzebują właściwie działającego mechanizmu uwierzytelniania. API musi rozpoznać nie tylko, w czyim imieniu aplikacja wywołuje zasoby, ale również to, skąd aplikacja pochodzi i czy jest to zaufane źródło. Do tego zastosowaliśmy standard OAuth 2 wzmocniony protokołem OpenID Connect.

Cała usługa w naszej architekturze nazywa się Oktawave Identity Service (OIS) i pełni rolę centralnego systemu uwierzytelniania dla wszystkich klientów API. W dużym skrócie: kiedy próbujecie się zalogować do nowego panelu, aplikacja poprosi usługę OIS o sprawdzenie waszej tożsamości. W tym celu zostaniecie przekierowani na ekran logowania, po sprawdzeniu danych OIS przekaże dane zalogowanego użytkownika do panelu administratora.

OIS udostępnia logowanie do serwisu z użyciem dodatkowego urządzenia (2FA). W chwili obecnej można skonfigurować sprawdzanie za pomocą usługi Google Authenticator. Wystarczy wejść do ustawień konta i wybrać odpowiednią opcję w menu.

Raportowanie zrobione dobrze

Oktawave przechowuje bardzo szczegółowe statystyki działania oferowanych usług. Aktywność każdej wirtualnej instancji, dysku, karty sieciowej, etc. jest przetwarzana w sposób ciągły w systemie, który nazwaliśmy pieszczotliwie Mamut. System ten przede wszystkim zapewnia dostęp do danych statystycznych w czasie zbliżonym do rzeczywistego. Dodatkowo Mamut wspiera system billingowy w naliczeniach opłat dla klientów.

System ten generuje gigantyczną ilość danych. Naszym zamiarem było udostępnienie ich użytkownikom w wygodnej i zrozumiałej formie. Największym wyzwaniem było umożliwienie błyskawicznego dostępu do całej, szczegółowej historii zużycia zasobów chmury i kosztów jej utrzymania, dlatego postanowiliśmy stworzyć od podstaw nowy system raportowania.

W nowym panelu raportowanie odbywa się w czasie rzeczywistym, administratorzy mogą na żywo przeglądać nie tylko statystyki procesora czy RAM-u, ale również cały aspekt bilingowy wykupionej usługi w postaci przejrzystych, dynamicznych, elastycznych i interaktywnych wykresów. Dzięki nim klienci mogą szybko ocenić ogólny stan swojego konta i wszystkich usług, np. sprawdzić tempo narastania kosztów w bieżącym miesiącu rozliczeniowym.

Każdy wykres może udostępniać nawet do kilkudziesięciu tysięcy pomiarów miesięcznie. Wystarczy jeden ruch kółkiem myszy lub przesunięcie widoku kursorem, aby od ogólnego widoku przejść do najdrobniejszych szczegółów – pojedynczych odczytów zużycia maszyny i poszczególnych naliczeń opłat.

Cała historia jest dostępna w czasie rzeczywistym. Nie trzeba niczego przeładowywać. Nie trzeba czekać na wygenerowanie nowego raportu, jak to miało miejsce w poprzedniej wersji panelu. Można płynnie przechodzić do dowolnego przedziału czasowego i jednym kliknięciem pobrać plik z widocznymi na ekranie statystykami, by zaimportować je np. do Excela.

Wygląd ma znaczenie

Już na etapie planowania nowych funkcjonalności myśleliśmy nad usprawnienie UI i UX, tak aby klienci byli w stanie szybciej i łatwiej uzyskiwać efekty, na których im zależy. Jeśli w starym panelu trzeba było wykonać pięć akcji, aby coś zrobić, to teraz trzeba kliknąć tylko trzy razy. Wszystko po to, aby dostarczyć klientom produkt, który najzwyczajniej w świecie usprawni ich pracę.

Redesign miał na celu sprawienie, aby każda interakcja w panelu była pozytywnym doświadczeniem dla użytkownika. Wierzymy, że dzięki zmianie architektury informacji tak, aby panel był bardziej user-friendly oraz wygodniejszy w użyciu, to się udało.

Chcieliśmy też, aby nowy interfejs użytkownika zachęcał swoim wyglądem do zgłębienia jego możliwości, tak aby nie wymagał czytania dokumentacji, sprawdzania poradników itp. Zależało nam na tym, aby administrator od pierwszego kontaktu, wiedział gdzie ma kliknąć, co wybrać, aby zrealizować swoje potrzeby względem naszej platformy.

Nowe API

Rzecz, którą z perspektywy czasu śmiało możemy nazwać kulą u nogi, było stare API. Podczas jednego ze spotkań zadaliśmy sobie pytanie, czy sami chcielibyśmy z niego korzystać i zgodnie odpowiedzieliśmy: nie.

Głównym minusem starego API było jego skomplikowanie. Choć bazowało na sprawdzonych wzorcach (technologia SOAP, czyli Simple Object Access Protocol), to wielu klientów miało problemy z integracją swoich usług z naszym API.

Nowe API miało być intuicyjne, szybsze, prostsze dla użytkownika końcowego, dobrze udokumentowane i dawać lepszą kontrolę nad wykupionymi usługami.

Styl architektury oprogramowania, który stoi za nowym API, to REST (Representational State Transfer), co z pewnością docenią admini, bo dobrze wiedzą, że oznacza to prostotę we wdrażaniu. Zakładamy, że w wielu przypadkach nie będzie konieczności sprawdzania bardziej rozbudowanych tutoriali – wystarczy rzut oka na załączoną dokumentację.

Chcemy, aby klienci i użytkownicy uczyli się i korzystali z API Oktawave jak najczęściej. Wierzymy, że to jest jedna z ważniejszych przewag architektury chmury obliczeniowej jako takiej. W nowym panelu administratora udostępniliśmy specjalny moduł API z pełną dokumentacją. Każdy może po zalogowaniu szybko znaleźć funkcję w API pozwalającą wykonać daną operację wprost z przeglądarki lub terminala.

NAP jest dla nas ważny

Nad NAP-em pracowaliśmy w systemie “wszystkie ręce na pokład”, co dosłownie oznacza, że wszystkie działy naszej firmy, od sales, przez PR i marketing, po dział supportu premium miały swój wkład w powstanie nowego panelu. NAP to wiele nieprzespanych nocy, ale dzisiaj wiemy, że było warto, bo wspólnym wysiłkiem udało się nam stworzyć coś fajnego, coś co ułatwi pracę wielu administratorom.

Praktycznie we wszystkich działach pojawiały się pomysły, które przekraczały możliwości starej platformy, a w nowej są dostępne, dlatego w Oktawave nikt za starym panelem płakać nie będzie i wierzymy, że nasi użytkownicy podzielą ten entuzjazm.

Przekonajcie się sami jak dobry i intuicyjny jest nowy panel administracyjny. Aby to zrobić wystarczy darmowy plan o nazwie Freetier, o którym więcej można się dowiedzieć na stronie Oktawave.

Dariusz Nawojczyk, CMO Oktawave

Motyw