Fusion Microservices
Overview
The table below lists the Fusion microservices deployed by the Helm chart.
Fusion is a complex distributed application composed of many stateful and stateless services designed to support demanding search-oriented workloads at high scale. |
Microservice | Protocol | Deployment or StatefulSet | Node Pool Assignment | Autoscaling Supported | Description |
---|---|---|---|---|---|
|
REST/HTTP |
Deployment |
|
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Exposes endpoints for admin tasks, such as creating applications and running jobs. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves static Web assets for the admin UI. |
|
HTTP |
Deployment |
|
Yes (CPU or custom metric). |
Orchestrates parallel jobs on Kubernetes. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Stores logs and prior Argo workflow runs. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves static Web assets for the login form. |
|
REST/HTTP |
StatefulSet |
|
Yes (CPU or custom metric). |
REST service for supporting non-RPC connector plugins. |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Routes REST API requests to classic-rest-service and connectors-rpc. |
|
gRPC |
Deployment |
|
Yes (CPU or custom metric). |
gRPC service for managing SDK-based connector plugins. |
|
HTTP/TCP |
Deployment |
|
Yes (CPU or custom metric). |
Deployment for each connector plugin type. Note: There is a base deployment, |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves static Web assets for the DevOps UI. |
|
REST/HTTP |
Deployment |
|
Yes (CPU or custom metric). |
Processes indexing requests. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves the App Insights UI |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Configures and launches the Spark driver pod for running Spark jobs |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Performs admin tasks for creating and running Spark jobs. |
|
HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Jupyter notebook for ad hoc analytics and visualization. |
|
HTTP |
StatefulSet |
|
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Collects logs from the other microservices and either indexes into system_logs or ships them to an external service like Elastic |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Dense Vector Search Engine for ML models active. |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Handles metadata for Milvus service active. |
|
REST/HTTP and gRPC |
Deployment |
|
Yes (CPU or custom metric). |
Exposes gRPC endpoints for generating predictions from ML models. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves static Web assets for the Predictive Merchandiser app. |
|
HTTP |
Deployment |
|
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Performs authentication, authorization, and traffic routing. |
|
HTTP |
StatefulSet |
|
At least 3 nodes in high availability.. You need to run 3 or 5 to keep quorum. |
Write Ahead Log (WAL) used for persistent message storage. |
|
HTTP and TCP |
Deployment |
|
At least 3 nodes in high availability. |
Contains REST API for managing administration and dispatcher for handling all message transfers. |
|
REST/HTTP |
Deployment |
|
Yes (CPU or custom metric). |
Processes query requests. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves static Web assets for the Rules UI. |
|
Web |
Deployment |
|
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Load balancing and proxy for Seldon Core deployments. |
|
REST/GRPC |
Deployment |
|
Yes (CPU or custom metric). |
Serves models built in any model building framework. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Maintains Seldon Core deployments for ML model serving active. |
|
HTTP |
StatefulSet |
At least 3 nodes in |
Yes (CPU or custom metric). |
Search engine. |
|
n/a |
single pod per job |
|
One per job. |
Launched by the job-launcher to run a Spark job |
|
n/a |
one or more pods launched by the Spark driver for executing job tasks |
|
Depends on job configuration. Controlled by the |
Executes tasks for a Spark job |
|
REST/HTTP and JDBC |
Deployment |
|
Not required. One pod is enough for most clusters. |
Performs admin tasks for creating and managing SQL catalog assets. Exposes a JDBC endpoint for the SQL service. |
|
Web |
Deployment |
|
Not required. One pod is enough for most clusters. |
Retrieves and renders Predictive Merchandiser templates. |
|
HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Is responsible for text extraction using Tika Server Parser |
|
REST/HTTP |
Deployment |
|
Not required. One pod is enough for most clusters. |
Serves App Studio-based Web apps. |
|
TCP |
StatefulSet |
|
No. You need to run 1, 3, or 5 ZooKeeper pods to keep quorum. Do not use HPA for scaling ZooKeeper. |
Stores centralized configuration and performs distributed coordination tasks. |
Ports used by Fusion
Below you will find the list of pod ports for intra-cluster communications.
Service | Port |
---|---|
|
8080 |
|
6764 |
|
8080 |
|
9000 |
|
9020 |
|
8080 |
|
53 |
|
8765 |
|
8765 |
|
8888 |
|
8080 |
|
8083 |
|
8081 |
|
443 |
|
8086 |
|
8877 |
|
3000 |
|
3306 |
|
8080 |
|
8080, 8443, 6650, 6651, 9527 |
|
8787 |
|
9010 |
|
8771, 8772 |
|
8080 |
|
8983, 9983 |
|
8983 |
|
5250 |
|
5250 |
|
8780 |
|
2181, 2888, 3888, 2281, 9141 |
Transport Layer Security (TLS)
Fusion microservices can be configured to use Transport Layer Security (TLS).
When enabled, Fusion generates a TLS certificate for each pod when the pod starts. This allows Fusion to use the Kubernetes endpoints API to reach each pod by its IP address and perform load balancing, circuit breaking, and retries in the Fusion microservices.