ArcGIS Notebook Server is a complete data science platform integrated with the ArcGIS Enterprise portal.
Introduced at 10.7, ArcGIS Notebook Server is a server role in the ArcGIS Enterprise platform that hosts and runs ArcGIS Notebooks. Using the Python programming language, you can perform spatial analysis, craft data science and machine learning workflows, manage GIS data and content, and automate ArcGIS Enterprise administrative tasks.
ArcGIS Notebooks provide an integrated web interface in ArcGIS to create, share, and run data science, data management, and administrative scripts. As a notebook author, you have access to ArcGIS Server and its analytical engines, ArcGIS geospatial analysis libraries, and open-source analytical, statistical, and machine learning libraries.
With notebooks, you can perform analysis, automate workflows, and immediately visualize data and analysis results in a geographic context. Notebooks are an efficient, modern environment that combine code, real-time visualizations and maps, and data tools.
ArcGIS Notebooks include Esri's Python resources: the ArcGIS API for Python and ArcPy. Python is a part of the ArcGIS platform, and ArcGIS Notebooks bring Python scripting directly to your ArcGIS Enterprise portal. The API allows you to incorporate dynamic maps and geospatial data tools into your notebooks.
When ArcGIS Notebook Server site is federated with an ArcGIS Enterprise portal where other specialized ArcGIS Server roles are federated, you can use those analysis tools in your notebooks. For example, in a deployment that includes an ArcGIS GeoAnalytics Server site, the notebook editor will include GeoAnalytics Tools that can be added to notebooks; in a deployment that includes an ArcGIS Image Server site designated for raster analytics, the notebook editor will include raster tools.
How ArcGIS Notebook Server works
ArcGIS Notebook Server is installed on a server operating system, and is configured and federated with an ArcGIS Enterprise portal. As with other ArcGIS Server roles, a Web Adaptor can be deployed in front of the ArcGIS Notebook Server software.
ArcGIS Notebook Server uses containers - virtualized operating systems - to isolate each notebook author's environment. Containers allow each author to use a subset of your server resources without their work or resource use interfering with others.
These containers are allocated and maintained by Docker, a third-party software component. Before installing ArcGIS Notebook Server, you must install a specific edition of Docker, and once ArcGIS Notebook Server is installed, you must configure it to work with Docker.
The Docker and ArcGIS Notebook Server topic provides an overview of Docker, explains how it's used with ArcGIS Notebook Server, and contains information about available Docker editions.
ArcGIS Notebook Server allocates one container per runtime to each notebook author in the site. Only they can work in the container, and the computing resources they use when running notebooks do not affect other authors' containers.
When a portal member with corresponding privileges opens their first ArcGIS Notebook, a container is launched on the ArcGIS Notebook Server site. This session between the notebook and the container is ongoing through the duration of the notebook.
Starting at 10.7.1, ArcGIS Notebook Server can join multiple machines together in a site. Machines in such configurations are configured to be identical, and each machine can run ArcGIS Notebooks.
Notebook runtimes and container images
When a container is first launched, it's basically empty. The system libraries, tools, and configurations the container needs to function are provided through a container image file. The container image is applied to the container as part of the launch process.
If you've deployed cloud software, you're probably familiar with machine images, which provide blank virtual machines with the code, tools, and settings they need to function. Container images function the same way for the blank virtual OS of the container.
Esri provides two container images for ArcGIS Notebook Server. Included in each container image is a notebook runtime, which makes Python resources available in ArcGIS Notebooks. Each runtime packages a list of these libraries and dependencies, including a specific version of each Python library.
The two ArcGIS Notebook Server runtimes, Standard (which includes ArcGIS API for Python and other Python modules) and Advanced (which also includes ArcPy), are available in notebooks as part of their corresponding container image.
Depending on your license, you will either receive just the Standard container image, or both the Standard and Advanced container image.
On Windows machines, the containers in an ArcGIS Notebook Server site are managed within a Linux emulator called MobyLinuxVM, which is contained within the Hyper-V environment. Accordingly, the Hyper-V role must be installed on the machine. This requirement is included in the ArcGIS Notebook Server system requirements.
When a container is launched, one of the two container images you received from Esri is applied to the container. The runtime and image applied depends on the notebook author's privileges in the portal:
- Authors who have only been granted the Create and Edit Notebooks privilege will have their container loaded with the Standard container image. All notebooks they open will use the Standard runtime.
- Authors who have also been granted the Advanced Notebooks privilege will have their container loaded with the Advanced container image. The default notebook runtime for their notebooks is the Advanced runtime. However, they have the option to specify an individual notebook's runtime, and can use either the Standard or the Advanced runtime in their notebooks.
ArcGIS Notebook Server and ArcGIS Server
ArcGIS Notebook Server has functions and an architecture unique to ArcGIS Server roles. The differences between ArcGIS Notebook Server and other ArcGIS Server roles are as follows:
- Other ArcGIS Server roles primarily host services—to draw maps, perform analysis, run geoprocessing tasks, and so on. ArcGIS Notebook Server primarily hosts ArcGIS Notebooks.
- ArcGIS Notebook Server uses containers to isolate notebook authors' environments. The processing resources that each author uses within their container do not affect the resources used by other authors in their own containers.
- ArcGIS Notebook Server uses Docker software for container allocation. You must have Docker installed and configured on your machine prior to installing ArcGIS Notebook Server. This installation guide provides steps and recommendations for setting up Docker on your machine.
- ArcGIS Notebook Server has its own installer, which you obtain from the My Esri website. Other ArcGIS Server roles use the ArcGIS Server installer but are assigned a particular role during the authorization process.
- ArcGIS Notebook Server does not have an ArcGIS Server Manager application or a REST API Services Directory. It has the ArcGIS Notebook Server Administrator Directory, which is accessible at https://notebookserver.yourdomain.com:11443/arcgis/admin. All administrative tasks can be performed in this directory, either manually in a browser or through programmatic requests.
Once ArcGIS Notebook Server is federated with your portal, a notebook can be created in the same way as a layer or web app from the portal website. ArcGIS Notebooks use identity-based security in your portal, and administrators have control over who can create, share, edit, and view a notebook.