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
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