Feature Overview

The Labs Workbench is currently in beta testing. Documentation is subject to change.

This document refers to the Labs Workbench demonstration instance available at https://www.workbench.nationaldataservice.org.

Overview

What is NDS Labs Workbench?

Current version

Version 1.0.8 was deployed on February 12, 2017.

Features

  • Catalog of over 40 data management and analysis tools 
  • Support for user-defined applications, including the ability to import and export application specifications
  • Integrated file manager
  • Access to console and logs for every running application
  • Persistent per-account "home" directory accessible from every running container
  • Per-account resource constraints and quotas
  • Multi-node Kubernetes (v1.5) cluster hosted on NCSA Nebula (OpenStack) with support for:
    • Gluster shared filesystem
    • Monitoring (Nagios)
    • Backup (disaster recovery)
  • Optional account registration and approval workflow to support workshops
  • Allow admin user to shut down user services, in case of emergency
  • Cloud-based development environments for popular languages including C/C++, Go, Java, NodeJS, PHP, Python
  • Integrated Docker build/tag/push support for deploying new services
  • Remote access to TCP services via SSH tunneling

Demonstration videos

The following videos do not reflect the current state of the system

Registration and login

This brief video demonstrates the registration, approval, and login workflow.  

Key features:

  • Email verification
  • Registered accounts must be approved by NDS Labs staff.  
  • Each account is allocated resources limited by # of CPUs, memory, and storage.
  • Password recovery

Browse and manage applications

This video demonstrates basic browsing and running of applications in NDS Labs.

Key features:

  • Filter-based searching of application catalog
  • Applications are added with reasonable default configurations
  • Advanced configuration of each application component is possible
  • "Home" directory mounted on all containers allows users to copy and retain data
  • Integrated file manager with upload functionality

Create user-defined applications

This video demonstrates creating and running a user-defined application.

Key features:

  • Ability to add, edit, clone, and delete user specifications
  • Links to detailed information page on NDS wiki

Development environment - simple example

This video demonstrates a simple development scenario using a PHP development environment.

Key features:

  • Development environment with interactive debugging

Docker build/tag/push

A challenge of running services in a container based environment is allowing users to be able to build, run, and push new containers from within a running container.  This is achieved by using the "Docker-in-Docker" paradigm (https://hub.docker.com/_/docker/).

Key features:

  • Allow users to build, tag, and push Docker images

Development environment - remote access

While the Xpra or VNC-based interfaces are convenient, some developers will prefer to run local IDEs while accessing services running in NDS Labs.  In this video, we demonstrate using the Chisel SSL-over-HTTP tunneling service to connect a local PyCharm instance to an NDS Labs-hosted Clowder stack:

  • Local development
  • Remote access to TCP services via

Development environment - Clowder extractor development

This video demonstrates a more complex development scenario. In this example, an application-specific development environment has been provided for Clowder extractor development based on the PyCharms IDE. The PyCharms IDE is a desktop application, so it is exposed in NDS Labs using Xpra.

Key features:

  • Application-specific development container. This container has all of the dependencies required for pyClowder development.
  • Desktop IDE containerized via Xpra (X-forwarding)
  • Interactive Python debugging with running Clowder application stack