How Does Saagie Work?
Saagie consists of numerous components that work together in stacks. Kafka manages communication between stacks and between components within stacks. Stacks use MongoDB for data storage.
The Global diagram per stack illustrates the stacks and how they work together. The criticality of each component is also represented. Stacks and criticality are described in the sections below.
Saagie Stacks and Components
Saagie has several stacks:
-
The Ingress stack exposes all other stacks.
-
The Authentication stack manages users, groups, and authorizations.
-
The Orchestration stack manages the execution of jobs, apps, and pipelines in Kubernetes.
-
The Datalake Governance stack describes and qualifies the data and data structure using Hadoop.
The Ingress stack exposes pods outside of Kubernetes.
The following pods are exposed through ingress-nginx-controller
:
-
admin-ui
-
authentication
-
conforama
-
datasetaccess
-
datasetaccess-ui
-
governance
-
login
-
profile
-
projects-and-jobs
-
projects-and-jobs-api
-
security
-
settings
-
technology-manager
-
traefik
If a request does not reach a pod listed above, ingress-nginx-defaultbackend
provides a fallback path.
The Authentication
stack is responsible for logins and the management of users and groups.
This stack is composed of both Saagie and third-party components:
Component | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Orchestration
stack is responsible for executing jobs, apps, and pipelines, as well as everything related to environment variables and Docker credentials. There are two API entry points that receive requests from Saagie users: projects-and-jobs-api
and conforama
.
Each platform has its own Kubernetes namespace containing a MinIO server. Each project also has a Kubernetes namespace containing a MinIO server and Argo. All executable elements, such as jobs, apps, and pipelines, are executed in the namespace of the corresponding project.
Due to the namespace system, projects are isolated from other projects, just as platforms are isolated from other platforms. Saagie components that are not in the project or platform namespaces are in the <installationId>
namespace. Where <installationId>
must be replaced with your installation ID. It must match the prefix you have determined for your DNS entry.
This stack is composed of several components with different roles and features:
Component | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Data lake governance
stack is an application used to manage, document, and qualify your data lake. It allows you to manage user domains, provenances, trust levels, and data status. The stack is connected to the data lake, enabling it to extract necessary information.
The Data lake governance
stack is composed of the following components:
Component | Description |
---|---|
|
|
|
|
|
|
|
|
Component | Description |
---|---|
|
|
|
|
Component Criticality
Each technical component used by Saagie has a level of criticality depending on its role. The impact varies when these components fail or are shut down.
Criticality Level | Color | Meaning |
---|---|---|
Minor |
Yellow |
Any Anomaly making it impossible for the customer to use one or more non-essential features of the solution. |
Major |
Orange |
Anomaly reducing the use of the solution by preventing the use of certain essential functions. |
Critical |
Red |
Anomaly making total use of the solution impossible. |
The tables below show the criticality level and impact on the platform of a failure for each component.
Component | Criticality | Impact |
---|---|---|
|
Critical |
No access to Saagie API. |
|
Minor |
No default error page. |
Component | Criticality | Impact |
---|---|---|
|
Critical |
Authentication stack is unusable, rendering Saagie unusable. |
|
Critical |
Authentication stack is unusable, rendering Saagie unusable. |
|
Critical |
Authentication stack is unusable, rendering Saagie unusable. |
|
Critical |
Authentication stack is unusable, rendering Saagie unusable. |
|
Critical |
Authentication stack is unusable, rendering Saagie unusable. |
|
Minor |
Cannot manage users and groups. |
|
Critical |
Cannot login to Saagie. |
|
Minor |
Cannot manage user profiles, such as jobs and email. |
Component | Criticality | Impact |
---|---|---|
|
Major |
Projects and jobs user interface is unavailable. |
|
Major |
Cannot create jobs, pipelines, and scheduled jobs. |
|
Major |
Impossible to create projects. |
|
Minor |
Impossible to create platforms. |
|
Minor |
Impossible to create, modify, or delete files on the MinIO platform. Doesn’t block usage by jobs and apps. |
|
Minor |
No consequence. |
Fluent Bit |
Minor |
No logs for jobs and apps. |
|
Minor |
Impossible to create, update, or delete Docker credentials. Doesn’t block usage by jobs and apps. |
|
Major |
Impossible to access app ports. |
Component | Criticality | Impact |
---|---|---|
|
Major |
Cannot access Governance. |
|
Major |
Cannot manage dataset access. |
|
Major |
Cannot manage dataset access or use governance properly. |
|
Major |
Cannot grant authorizations to the data lake. When |
Component | Criticality | Impact |
---|---|---|
|
Major |
Impossible to run jobs and apps in the corresponding projects. |
|
Major |
Impossible to run jobs and apps in the corresponding projects. |
|
Critical |
Numerous Saagie components cannot work, rendering Saagie unusable. |
|
Critical |
Numerous Saagie components cannot work, rendering Saagie unusable. |
|
Critical |
Numerous Saagie components cannot work, rendering Saagie unusable. |
|
Critical |
Numerous Saagie components cannot work, rendering Saagie unusable. |
|
Critical |
Saagie user interface is unusable. |
|
Minor |
Metrics are not collected. |