Continuum Analytics: Documentation

# Installation Instructions

Anaconda Enterprise Notebook (AEN) is a Python data analysis environment from Continuum Analytics. Accessed through a browser, Anaconda Enterprise Notebooks is a ready-to-use, powerful, fully-configured Python analytics environment. We believe that programmers, scientists, and analysts should spend their time analyzing data, not working to set up a system. Data should be shareable, and analysis should be repeatable. Reproducibility should extend beyond just code to include the runtime environment, configuration, and input data.

This installation guide walks through the steps needed to install a basic Anaconda Enterprise Notebook system comprised of the front-end server, gateway and compute machines.

If you have any questions about the instructions, please contact your sales representative or Priority Support team, if applicable, for additional assistance.

## System overview

Anaconda Enterprise Notebooks is designed to run on a single box or as a distributed system with multiple boxes. There are three primary components that need to be deployed and configured:

- Server: the entry point to Anaconda Enterprise Notebooks, managing users and projects
- Gateway: a proxy service to handle URL and port mapping to ancillary services.
- Compute Node: each compute node in the Anaconda Enterprise Notebooks system requires a Compute Launcher service to mediate access to the Server and Gateway

Since Anaconda Enterprise Notebooks is web-based, it uses the standard HTTP port 80 or HTTPS port 443.

Organizationally, each Anaconda Enterprise Notebooks installation has exactly one Server instance. One or more Data Centers can be associated with the Server. One or more Compute Nodes can be associated with each Data Center.

The Anaconda Enterprise Notebooks (AEN) platform consists of three main service groups: AEN Server, AEN Gateway, and AEN Compute, below referred to simply as Server, Gateway, and Compute nodes respectively. Each Anaconda Enterprise Notebooks deployment will have only one Server, but possibly multiple Gateways, and then every host that can run Anaconda Enterprise Notebooks processes will require the Compute Launcher service to be running on it.

For example, a Anaconda Enterprise Notebooks deployment with 2 Gateways, where one Gateway had a cluster of 20 physical computers, and the second Gateway had 30 virtual machines would have the following complement of services installed and running:

    1  AEN Server instance
    2  AEN Gateway instances
    50 AEN Compute instances (20 + 30)

Anaconda Enterprise Notebooks users interact with the system predominantly through Projects. Projects are associated with a set of Compute Nodes (and therefore with one particular Gateway), and have a Team of users who can access the Project, including one Owner, which is the user that created the Project. A Project also includes a set of conda environments and Apps that are available to all the members of the Team.

## Installers

The Anaconda Enterprise Notebooks installers are available only to paid customers. If you are interested in a demonstration of Anaconda Enterprise Notebooks, please contact us.

## Components

### Server

The Server component is responsible for login, accounts, admin, project creation and management and interfacing with the database. Server is the main entry point for all users. It handles setting up projects and ensuring users are sent to the correct Gateway for a given Project.

Anaconda Enterprise Notebooks uses MongoDB for its internal data persistency. This is typically run on the same host as the Server but can also be deployed on a separate host.

The Server uses nginx for handling the user-facing web interface. nginx acts as a request proxy. The actual Server web-process runs on a high numbered port listening only on `localhost`, and nginx forwards requests there. The nginx server is also responsible for static content.

### Gateway

The Gateway provides a single access point to a set of Compute Nodes, and acts as a proxy service to manage authorization and mapping of URLs and ports to services that are running on Compute Nodes, thus providing a consistent uniform interface for the user.

### Compute node

Compute Nodes are where Apps (such as Jupyter Notebook and Workbench) actually run. These are also the hosts that a user would see in a terminal session or if they used SSH to access the node. It is where all user-visible programs run. Each Project is associated with one or more Compute Nodes, and these in turn are part of a single Gateway.

## Distributed install

In a distributed install the Server and Gateway run on separate hosts.

## Single-box install

Both the Server and the Gateway need separate external ports since they are independent services that are running on the same host in the single-box installation.

Both port 80 and port 8089 must be open on the firewall for a single-box install

The Compute service receives connections only from the Gateway and the Server, and typically runs on port 80 or port 443.

- Installation Runbook
  - Overview
  - Components
  - Table of Contents
  - Installation Requirements
  - Installation Preparation
  - AEN Server
  - AEN Gateway
  - AEN Compute
  - Optional Configuration
  - Optional Configuration: SELinux Enforcing Mode
  - Wrapping Up
- Installation customization
  - Installation customization
- Uninstall
  - Server
  - Gateway
  - Compute Node
- Updating Anaconda Enterprise Notebooks
  - Summary
  - Pre-Flight Check
  - AEN Server
  - AEN Gateway
  - AEN Compute
- Configuration
  - LDAP
  - OpenLDAP
  - Active Directory
  - SSL/TLS configuration
  - Test configuration with Flask LDAP Check
- SSL
  - Configure SSL on the Server
  - Configure SSL on the Gateway
  - SSL on Compute Nodes
  - Security Reminder
  - Strict Transport Security Header
  - Using private root CA or self-signed certs
- SSO
- Release History
  - v4.0.0 June 30, 2016
  - v0.10.0 February 2, 2016
  - v0.9.1 October 19, 2015
  - v0.8.0 August 21, 2015
  - v0.7.0 June 12, 2015
  - v0.6.3 March 27, 2015