Skip to main content

Workspaces

Gen3 workspaces are secure data analysis environments in the cloud that can access data from one or more data resources, including Gen3 Data Commons. Workspaces are often fully integrated with a specific data commons, and coming soon are workspaces as stand-alone analysis environments with a user pay model.

Gen3 Workspaces utilize the Gen3 Framework Services for user authentication and authorization and for retrieving data objects and metadata from data resources, like Gen3 Data Commons.

By default Gen3 Workspaces include Jupyter notebooks and RStudio but can be configured to host virtually any application, including analysis workflows, data processing pipelines, or data visualization apps.

Architecture

Hatchery

Hatchery is a critical component of the Gen3 Workspace architecture. It serves as the resource management layer responsible for creating, managing, and scaling the underlying infrastructure for Gen3 Workspaces. This includes provisioning containers, and other computing resources as needed to support the workloads of users within the workspace.

Key functions of the Hatchery:

  • Resource Provisioning: Hatchery dynamically allocates computational resources based on user requests.

  • Resource Isolation: Hatchery enforces resource isolation to prevent resource contention among users. It ensures that each user's workspace operates in an isolated environment, safeguarding data integrity and security.

  • Infrastructure Management: It manages the underlying infrastructure, including virtual machines, containers, and storage, handling tasks such as provisioning, monitoring, and maintenance.

Ambassador

Ambassador uses Envoy as a proxy and load balancer within the Gen3 Workspaces environment. It facilitates communication between the various components within a workspace, including applications, data resources, and external services.

Each user is assigned a kubernetes service that is updated using annotation by hatchery to proxy traffic to the correct pod.

Example overview when pods are created in the same kubernetes cluster: Alt text