Data Science, JavaScript, Python, Web Apps

Datascience interactive platform with Python, R and Julia online IDE.

Our solution

PLON is a web platform, developed and maintained by us, enabling numerical calculations.

It allows the user to create a computing environment in seconds without having to purchase servers, licenses, software installation and configuration. Advanced code editor available through the browser and interactive console allow the user to write the code in popular computational languages: Octave, Python, R, Julia. In addition to the code editing ability, we invented a mechanism to create machines according to user needs, on which these calculations can be made.

Currently in beta testing phase, if you want to access it, go to PLON Datascience Platform.

Challenges

PLON Datascience platform is a scalable and distributed system. By developing this web application, we focused on the scalability and availability of the application for thousands of users. If we realise that every second, users in real-time write the code, run calculations and generate data gigabytes, then we can imagine the scale of the venture. We are proud to announce that the task of handling such traffic has been performed exemplary.

The key aspect of the PLON portal was the use and integration of a number of open source technologies. Starting with the fast and reliable message handling mechanism between the user browser and the main application controller using the RabbitMQ server. It allowed us a scalable communication based on the queue system. Creating a database backend based on the MongoDB database that allows to store large amount of data (logs, different project versions, results history, etc.) while maintaining speed and reliability.

Security and data protection are important aspects for web applications that store the results of other people’s intellectual work. For this purpose, we built a cluster of efficient virtual machines based on Docker technology, allowing for secure isolation of users. All data, results, projects or calculations are separated from each other and performed on separate virtual machines in our cloud computing. This ensures system security and scalability.

 

Summary

The main requirement for the PLON IT system was to provide scalability, security and ability to receive high traffic related to communication of the users with their machines in real time. This was possible thanks to the scaled and distributed MongoDB database servers, RabbitMQ servers and our own Docker-based cloud.

Technologies we used

The main assumptions of PLON are interactivity and ability to manage resources according to needs. In order to fulfil these assumptions we used following technologies:

  • Meteor.js – real-time communication with the browser
  • Docker – allows to create an isolated and secure environment to run projects
  • OpenStack – our computing cloud, creating and editing resources
  • RabbitMQ – distributed environment to send messages
  • Python – beautiful and pleasant programming language
  • MongoDB – scalable non-relational database

PLON in action