Technical Blog: R-Studio on the cloud

Technical Blog: R-Studio on the cloud
February 8, 2017 Karen Mecoles

As part of the Science Clouds project, we identified R-Studio as a tool used by researchers that was widely used among many different science domains. We saw this as an opportunity to leverage the new Application Catalog service available on the NeCTAR Research Cloud to make it easy for users to build their own R-Studio environment.

See the NeCTAR R-Studio application guide if you’d like to give R-Studio a spin for yourself on the NeCTAR Research Cloud.

The NeCTAR Application Catalog is powered by the Murano OpenStack project and is a new addition to the services offered by the NeCTAR Research Cloud. It allows users to quickly deploy pre-packaged applications onto a virtual machine that they have full access to. This gives them the ability to get started quickly with applications sitting on powerful compute resources in the cloud and also allows infinite customisability to install any extra software or make changes to their environment.

To deliver this solution, we built a Murano package around a pre-prepared image using a few key pieces of technology.

The image is built using a combination of Packer and Ansible. In our case, Packer boots an existing generic Ubuntu 16.04 image that includes the Murano agent.

rstudio1Once the base image has booted, Packer starts the Ansible software provisioning tool to deploy the rest of the required software, using a series of Ansible roles.

The resulting image includes R, R-Studio IDE, R-Studio server (web based R-Studio IDE), loads of pre-defined R modules. We also throw in X2Go and the XFCE desktop environment for remote desktop access, which is often required for some visualisations.

The image is compressed and uploaded to the NeCTAR Research Cloud. The scripts used for this process are available from the packer-rstudio project on GitHub.

Having all the software we need baked into an image is great, but there’s a few nice benefits to wrapping this up into a Murano package. A huge bonus with a Murano package is that we get visibility of the application that we wouldn’t have, compared to just an image. We’re able to provide the user with an icon and a description that users can search for and discover.

Murano leverages the OpenStack orchestration tool, Heat, to perform the provisioning, so we’re able to tie NeCTAR cloud resources together in a seamless way.

In the R-Studio Murano package, we provide the user an opportunity to provide an existing NeCTAR Research Cloud Volume ID, which then gets prepared and mounted within the R-Studio environment, so the user data is safely stored.

We also prompt for a username and password to protect the R-Studio web service, so we don’t have to store any credentials within the image or require the user to use SSH to get started, which is a big plus for security.

R-Studio

The code for the Murano package can be found on the Murano R-Studio GitHub project, and it’s a great place to start if you’re interested in building Murano packages.

See the NeCTAR R-Studio application guide if you’d like to give R-Studio a spin for yourself on the NeCTAR Research Cloud.

Author: Andy Botting.