In order to fully benefit from cloud computing, services are designed following the “multi-tenant” architectural model which is aimed at maximizing resource sharing among users. However, multi-tenancy introduces challenges of security, performance isolation, scaling and customization. RStudio server is an open source Integrated Development Environment (IDE) accessible over a web browser for R programming language. The purpose of this thesis is to develop an open source multi-user distributed system on Hopsworks, a data intensive and AI platform, following the multi-tenant model, that provides RStudio as Software as a Service (SaaS). Our goal is to promote collaboration among users when using RStudio and the learning and teaching of R by enabling users easily have access to same computational environments and resources while eliminating installation and maintenance tasks. Hopsworks introduces project-based multi-tenancy where users within a project share project resources (e.g datasets, programs and services) for collaboration which introduces one more challenge of sharing project resources in RStudio server instances. To achieve our purpose and goal we therefore needed to solve the following problems: performance isolation, security, project resources sharing, scaling and customization. Our proposed model is on demand single user RStudio server instances per project. Our system is built around Docker and Kubernetes to solve the problems of performance isolation, security and scaling. We introduce HopsFS-mount, that allows securely mounting HopsFS via FUSE to solve the project resources (datasets and programs) sharing problem. We integrate our system with Apache Spark which can scale and handle Big Data processing workloads. Also we provide a UI where users can provide custom configuration and have full control of their own RStudio server instances. Our system was tested on a GCP cluster with four worker nodes each with 30GB of RAM allocated to them. The tests on this cluster showed that 44 RStudio servers, each with 2GB of RAM, can be run concurrently. Our system can scale out to potentially support hundreds of concurrently running RStudio servers by adding more resources (CPUs and RAM) to the cluster or system. / För att dra full nytta av molntjänster är vissa applikationer designade för multitenans som syftar till att maximera resursdelning mellan användare. Dock introducerar multitenans utmaningar i hänsyn till resursdelning, säkerhet, prestandaisolering, anpassning och skalning. RStudio-server är en öppen källkod Integrerad utvecklingsmiljö (IDE) tillgänglig över en webbläsare för programmeringsspråket R. Syftet med denna avhandling är att utveckla ett distribuerat system med öppen källkod för flera användare på Hopsworks, en data krävande AI-plattform, efter multitenans-modellen, som tillhandahåller RStudio som Software as a Service (SaaS). Vårt mål är att främja samarbete mellan användare vid användning av RStudio, inlärning och undervisning av R genom att göra det enkelt för användare att ha tillgång till samma beräknings miljöer och resurser samtidigt som installation och underhållsarbete elimineras. Hopsworks introducerar projektbaserad multitenans där användare inom ett projekt delar projektresurser (t.ex. datamängder, program och tjänster) för samarbete som introducerar ytterligare en utmaning att dela projektresurser i RStudio server instanser. För att uppnå vårt syfte och mål behövde vi därför lösa följande problem: prestandaisolering, säkerhet, projekt resursdelning, skalning och anpassning. Vår föreslagna modell är på bergäran en-användares RStudio-serverinstanser per projekt. Vårt system är byggt kring Docker och Kubernetes för att lösa problemen med prestanda isolering, säkerhet och skalning. Vi introducerar HopsFS-mount, som gör det möjligt att säkert montera HopsFS via FUSE för att lösa resurs (datamängder och program) delning problemet. Vi integrerar vårt system med Apache Spark som kan skala och hantera Big Data bearbetning belastningar. Vi tillhandahåller också ett användargränssnitt där användare kan tillhandahålla anpassad konfiguration och ha full kontroll över sina egna RStudio-serverinstanser. Vårt system testades på ett GCP-kluster med fyra arbets noder, varje node hade 30 GB RAM. Testerna på detta kluster visade att 44 RStudio-servrar, var och en med 2 GB RAM, kan köras samtidigt. Vårt system kan även skala ut för att potentiellt stödja hundratals RStudio-servrar som samtidigt körs genom att lägga till fler resurser (CPU:er och RAM) i klustret eller systemet.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-305291 |
Date | January 2021 |
Creators | Chikafa, Gibson |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2021:727 |
Page generated in 0.0021 seconds