Table of Contents

Deployment

To deploy a Neos application in production, you need a containerized environnement such as Docker.

Warning

Deployment is currently only maintained for use in a Kubernetes cluster using Helm. The kubernetes cluster must use INGRESS Nginx as its ingress controller. The kubernetes cluster must have Dapr deployed.

Getting started

To get started with Neos deployment, you can follow the deployment guide to deploy a Neos application in a Kubernetes cluster using Helm.

Architecture

Components

Neos ecosystem consist of several components working together to provides all the functionalities of the framework.

Gateway

The gateway is the main entry point for every HTTP request coming from the outside (Web browser, API call, ...).

This component is responsible of :

The gateway needs a Redis instance as its distributed cache for handshake requests.

Reporting

This is the reporting server, handling neos report generation / viewer using Stimulsoft. See this article for more details.

Tenant Management

Tenant Management is a Neos cluster for tenant administration of a Kubernetes namespace. See this article for more details.

License Management

License Management is a Neos cluster handling licensing. See this article for more details.

Task Scheduler

Task Scheduler is a Neos cluster that you can use to manage tasks, schedule jobs, and ensure that tasks are executed at the right time. See this article for more details.

Neos AI

Neos AI is a Neos cluster that you can use to monitor the artificial intelligence agents. See this article for more details.

Support Center

Support Center is a Neos cluster that you can use to view errors reported by users.

Neos cluster

In a kubernetes namespace, you can deploy several Neos clusters. A Neos cluster can run the following components.

Frontend

This is a webserver serving all the frontend application (Html, Javascript, CSS, ...) to the client. See this article for more details.

Backend

This is a webserver handling most of the API calls made from the client or other clusters. See this article for more details.

Task runner

This is a webserver handling background server methods. See this article for more details.

Redis

Redis is a key-value database that Neos ecosystem use for :

  • distributed cache for gateway handshake requests
  • dapr workflow actor for orchestrating Neos background tasks (see this article)
  • distributed cache for SignalR notification hub
  • SignalR backplane for notification hub replicas (see SignalR with a Redis backplane)
  • dapr state store (see this article)

RabbitMQ

RabbitMQ is a message broker which is used by Neos for pub/sub communication (see this article).

Tracing

Inter cluster communication traces can be sent external tools (see this article).

Thus, it will potentially create the following kubernetes pods :

Open telemetry collector

This pod is responsible to collect Dapr traces and send them to the external tracing server (ex: Application Insights) with the right format.

Zipkin

This pod is a Zipkin client server that can be used to see inter cluster communication traces on a web interface (see this article).