.. _introduction: Introduction ============ This guide details the operation of a View Server and all of its components. View Server (VS) is a Docker-based software and all of its components are distributed and executed in the context of Docker images, containers, and Helm charts. Basic knowledge of Docker and either Docker Swarm or Helm and Kubernetes is a prerequisite. Components ---------- .. figure:: images/architecture.* :alt: View Server Architecture *View Server Architecture* Individual components of VS are distributed as Docker images, which can be instantiated and run in their intended role. Some images are hosted on `docker hub `_, the official and default repository for Docker images. Other images reside on an `EOX hosted registry `_. Images from the official registry are only identified via their name, whereas images from the EOX registry conventionally use the full URL, including the domain name. VS software brings together all the components in their latest versions in the default `vs-deployment` helm chart which can be found in `EOX public charts repository `_ or when needed to be cloned locally from `EOX Gitlab repository `_. VS consists of the following service components (with their respective Docker image in parentheses): - Web Client (`registry.gitlab.eox.at/vs/vs/client `_) - Cache (`registry.gitlab.eox.at/vs/vs/cache `_) - Renderer (`registry.gitlab.eox.at/vs/vs/core `_) - Registrar (`registry.gitlab.eox.at/vs/vs/core `_) - Seeder (`registry.gitlab.eox.at/vs/vs/seeder `_) - Preprocessor v2 (`registry.gitlab.eox.at/vs/preprocessor `_) - Preprocessor with Mapchete (`registry.gitlab.eox.at/vs/vs/preprocessor `_) - Ingestor (`registry.gitlab.eox.at/vs/ingestor `_) - Harvester (`registry.gitlab.eox.at/vs/vs/harvester `_) - Scheduler (`registry.gitlab.eox.at/vs/vs/scheduler `_) - Database (`postgis/postgis `_) - Queue Manager (`redis `_) Additional services deployed with View Server in different contexts are: - Reverse proxy (`traefik `_) - Log collector (`registry.gitlab.eox.at/esa/prism/fluentd `_) - Kibana (`kibana `_) - Elasticsearch (`elasticsearch `_) - Shibboleth SP3 (`registry.gitlab.eox.at/esa/prism/shibauth `_) - only in PRISM - SFTP (`registry.gitlab.eox.at/esa/prism/sftp `_) - only in PRISM - Dem-App (`registry.gitlab.eox.at/esa/prism/dem-app `_) - only for DEM collections in PRISM - Terrain-server (`geodata/cesium-terrain-server `_) - only for DEM collections in PRISM These components are expected to be managed together in a Docker Swarm via Docker Compose configuration files and in Kubernetes as Helm releases with configuration Values. Initialization and Setup ------------------------ The section :ref:`operating_k8s` describes how to customize the configuration file `values.yaml` and deploy VS on Kubernetes. The section :ref:`initswarm` describes additional steps necessary to deploy a Docker Swarm stack using the configuration file `values.yaml`. You can choose not to read through the setup and configuration and rather focus on a cookbook of steps for creating a complete configuration for a single data collection in section :ref:`creating_new_collections` To search for concrete management/operations task after having already setup a running instance, no matter the platform, please continue directly to a condensed chapter listing the individual commands: :ref:`operation_management`. Migration Guide --------------- View Server adheres to `Semantic Versioning `_ in format MAJOR.MINOR.PATCH and upgrading it by a PATCH version increase (bugfixes) is possible without special considerations by usual deployment upgrade methods (depends if on Docker Swarm or Kubernetes). For instructions regarding MAJOR or MINOR version increase, please refer to the `View Server breaking changes `_ and any extra project specific Migration guides.