Datascience interactive platform with Python, R and Julia online IDE.
Przygotowane rozwiązanie
PLON jest rozwijaną i utrzymywaną przez Nas webową platformą pozwalającą na przeprowadzanie obliczeń numerycznych.
Pozwala na stworzenie środowiska obliczeniowego w kilka sekund, bez zakupu serwerów, licencji, instalacji i konfiguracji oprogramowania. Zaawansowany edytor kodu dostępny przez przeglądarkę oraz interaktywna konsola pozwalają na pisanie kodu w popularnych językach obliczeniowych: Octave, Python, R, Julia. Prócz możliwości edycji kodu stworzyliśmy mechanizm tworzenie maszyn w zależności od potrzeb użytkownika, na których te obliczenia mogą zostać przeprowadzone.
Aktualnie w fazie beta testów, jeżeli chcesz uzyskać dostęp wejdź na PLON Datascience Platfrom
Wyzwania
Platforma PLON Datascience jest skalowalnym systemem rozproszonym. Rozwijając tę aplikację internetową skupiliśmy się na skalowalności i dostępności aplikacji dla tysięcy użytkowników. Jeżeli uzmysłowimy sobie, że w każdej sekundzie użytkownicy w czasie rzeczywistym piszą kod, uruchamiają obliczenia i generują gigabajty danych to dopiero możemy sobie wyobrazić skalę przedsięwzięcia. Z dumą możemy oznajmić, że zadanie obsłużenia takiego ruchu wykonaliśmy wzorowo.
Kluczowym aspektem portalu PLON było wykorzystanie i połączenie szeregu opensource’owych technologii ze sobą. Począwszy od szybkiego i niezawodnego mechanizmu obsługi komunikatów pomiędzy przeglądarką użytkownika, a głównym kontrolerem aplikacji przy wykorzystaniu serwera RabbitMQ. Pozwolił on nam na skalowalną komunikację opartą o system kolejkowy. Stworzenie zaplecza bazodanowego w oparciu o bazę MongoDB pozwalającego na składowanie ogromnych ilości danych (logi, poszczególne wersje projektów, historia wyników itp) przy zachowaniu szybkości i niezawodności.
Przy aplikacjach internetowych przechowujących wynki pracy umysłowej innych osób, istotnym aspektem jest bezpieczeństow i ochrona danych. W tym celu zbudowaliśmy klaster wydajnych wirtualnych maszyn w oparciu o technologię Docker , pozwoliło to na bezpieczną izolację użytkowników. Wszelkie dane, wyniki, projekty, czy obliczenia są odseparowane od siebie i wykonywane na oddzielnych maszynach wirtualnych w przygotowanej przez nas chmurze obliczeniowej. Zapewnia to bezpieczeństwo systemu oraz jego skalowalność.
Podsumowanie
Głównym wymaganiem dla systemu informatycznego PLON było zapewnienie skalowalności, bezpieczeństwa i możliwość przyjęcia dużego ruchu związanego z komunikacją użytkowników z ich maszynami w czasie rzeczywistym. Udało się to osiągnąć dzięki wyskalowanym i rozproszonym serwerom bazodanowym MongoDB, serwerom RabbitMQ oraz własnej chmurze opartej na Docker.
Wykorzystane technologie
Głównymi założeniami PLON’a są interaktywność oraz możliwość zarządzania zasobami wedle potrzeb, chcąc wypełnić te założenia posłużyliśmy się technologiami:
- Meteor.js – komunikacja z przeglądarką w czasie rzeczywistym
- Docker – pozwala na stworzenie izolowanego i bezpiecznego środowiska do uruchamiania projektów
- OpenStack – własna chmura obliczeniowa, tworzenie i edycja zasobów
- RabbitMQ – rozproszone środowisko do przesyłania komunikatów
- Python – piękny i przyjemny język programowania
- MongoDB – skalowalna nierelacyjna baza danych