> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Kaeyros Analytics : plateforme mutualisée en Afrique

> Kaeyros Analytics mutualise un cluster Kubernetes pour des projets en Afrique de l'Ouest et en Europe. Découvrez les domaines applicatifs et le modèle technique.

Kaeyros Analytics est une plateforme technique mutualisée qui héberge et opère des applications pour des clients situés en Afrique de l'Ouest et centrale, ainsi que pour des projets européens. Cette page vous présente ce que fait l'entreprise, comment elle structure son modèle technique autour d'un seul cluster Kubernetes, et les ordres de grandeur de cette infrastructure.

## Ce que fait l'entreprise

Kaeyros Analytics couvre plusieurs familles de métiers. Chaque domaine regroupe des produits ou des projets distincts, hébergés sur la même plateforme.

> **Distribution et grande consommation**
>
> Applications pour les secteurs de la boisson et de l'agroalimentaire. Clients et projets : AB InBev, Bavaria, UCB, SABC, Heineken, Arla, Afrobit.

> **Santé**
>
> Solutions pour la prise de rendez-vous médicale, la gynécologie et les laboratoires. Projets : Booking Hospital, Gyno360, Biolab.

> **RH et pointage**
>
> Outils de gestion des ressources humaines, de suivi du temps et de la présence.

> **SEMA**
>
> Architecture microservices dédiée à ce projet spécifique.

> **Produits internes**
>
> Plateformes et outils développés en interne : OIM, K-Shap, EVA, EZE, Kuandaa.

> **Sites web**
>
> Présence en ligne pour des marques et projets : Woodtech, Séchoir Cam, et d'autres sites.

## Le modèle technique

Kaeyros Analytics repose sur un seul cluster Kubernetes RKE2 hébergé à Helsinki. Tous les produits et tous les clients partagent cette même infrastructure. L'isolation entre projets se fait par namespace Kubernetes. Chaque namespace contient les ressources dédiées à un environnement ou à un client.

Les équipes utilisent des charts Helm communs pour déployer les applications. Cela garantit une cohérence dans la manière dont les services sont packagés, configurés et mis à jour. Le socle partagé inclut les composants suivants :

* ArgoCD et Argo Rollouts pour le déploiement continu et les stratégies de canary
* cert-manager pour la gestion automatique des certificats TLS
* Longhorn pour le stockage bloc répliqué
* external-secrets pour l'intégration des secrets externes
* Rancher pour l'interface de gestion du cluster

> [!NOTE]
>
> Une modification du socle partagé (par exemple une mise à jour de Traefik, de cert-manager ou d'ArgoCD) affecte l'ensemble des applications et de tous les clients. Planifiez ces changements avec soin.

Le trafic entrant suit ce chemin : Cloudflare gère les 18 zones DNS, le TLS et le WAF, puis les load balancers Hetzner répartissent le trafic vers Traefik (ingress controller), qui route vers les services internes. Les applications accèdent ensuite aux bases PostgreSQL gérées par l'opérateur Zalando.

## Les ordres de grandeur

> **11**
>
> Serveurs Hetzner, dont 2 load balancers dédiés.

> **4**
>
> Nœuds Kubernetes en production (3 masters + 1 worker).

> **100**
>
> Namespaces Kubernetes isolant les projets et les environnements.

> **\~326**
>
> Applications ArgoCD déployées sur la plateforme.

> **331**
>
> Fichiers de valeurs Helm (`values`) configurant les déploiements.

> **\~95**
>
> Bases PostgreSQL gérées par l'opérateur Zalando.

> **28**
>
> Traitements planifiés exécutés dans le namespace `crons`.

> **18**
>
> Zones DNS gérées via Cloudflare.

> **45**
>
> Conteneurs de services internes sur la machine dédiée (GitLab, Vault, Passbolt, Odoo, Airflow, supervision).

Ces chiffres illustrent l'échelle de la plateforme : un seul cluster mutualisé supporte une centaine de namespaces, plusieurs centaines d'applications, et une dizaine de serveurs physiques.

## Schéma d'ensemble

```mermaid theme={null}
flowchart TB
    subgraph Internet["Internet"]
        Users["Utilisateurs finaux<br/>Clients, RH, Santé, Distribution"]
    end

    subgraph Cloudflare["Cloudflare (18 zones DNS)"]
        DNS["DNS + TLS bordure + WAF"]
    end

    subgraph Hetzner["Hetzner (11 serveurs)"]
        LB["2 Load Balancers"]
        Cluster["Cluster Kubernetes RKE2<br/>(4 nœuds : 3 masters + 1 worker)"]
        Dedicated["Machine dédiée services internes"]
    end

    subgraph Kubernetes["Cluster Kubernetes"]
        Traefik["Traefik Ingress Controller"]
        subgraph Namespaces["~100 namespaces"]
            Apps["~326 Applications ArgoCD"]
            PG["~95 bases PostgreSQL<br/>(opérateur Zalando)"]
            Crons["28 traitements planifiés<br/>(namespace crons)"]
        end
        Socle["Socle partagé : ArgoCD, Rollouts,<br/>cert-manager, Longhorn,<br/>external-secrets, Rancher"]
    end

    subgraph Internals["Services internes (45 conteneurs)"]
        GitLab["GitLab"]
        Vault["Vault"]
        Passbolt["Passbolt"]
        Odoo["Odoo"]
        Airflow["Airflow"]
        Monitoring["Supervision"]
    end

    Users --> DNS
    DNS --> LB
    LB --> Traefik
    Traefik --> Apps
    Apps --> PG
    Apps --> Crons
    Cluster --> Socle
    Dedicated --> Internals
```

## Besoin d'aide ?

Pour toute question sur la plateforme, les déploiements ou l'infrastructure, contactez l'équipe DevOps : [devops@kaeyros-analytics.com](mailto:devops@kaeyros-analytics.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.