Life ConnectLife Connect
Table of contents
Architecture
Services
Swagger Docs
GitHub
Table of contents
Architecture
Services
Swagger Docs
GitHub
  • Backend (Java / Spring Boot)

    • adb (parent Maven + proxy)
    • adb-persons
    • adb-parts
    • adb-contracts
    • adb-accounting
    • adb-files
    • adb-utilities
    • adb-aggregates
    • adb-views
    • adb-reports
  • Frontend

    • adb-ui
    • adb-web
  • Infrastructure & Outillage

    • adb-charts
    • adb-infrastructure
    • adb-tests-artillery
    • adb-doc
  • Services externes (hors monorepo)

    • adb-tickets (externe)
    • adb-notes (déprécié)
    • adb-graph (externe, statut incomplet)

adb-charts

Rôle

Repository Helm + Terraform qui orchestre le déploiement de l'ensemble de la plateforme sur Kubernetes. Multi-cloud (AKS Azure principal, AWS secondaire) et multi-environnement (dev / int / staging / preprod / prod).

C'est ici que sont définis :

  • Le déploiement Kubernetes de chaque microservice (Deployments, Services, ConfigMaps, Secrets).
  • Les routes Ingress (Traefik / Nginx) qui exposent l'API publique.
  • La collecte de logs vers Elasticsearch (Filebeat).
  • Le provisioning Neo4j via Terraform.
  • La gestion des certificats TLS.

Stack

ÉlémentValeur
Helmv3
Terraform(versions par module)
KubernetesAKS (Azure) primaire, AWS EKS secondaire
LoggingFilebeat → Elasticsearch / ELK
IngressTraefik (ingress-route/) ou Nginx selon env
Stockage logsElasticsearch managé

Structure

adb-charts/
├── charts/
│   ├── services/                 Services métier (dev/int/staging)
│   │   └── templates/
│   │       ├── adb-accounting.yaml
│   │       ├── adb-aggregates.yaml
│   │       ├── adb-contracts.yaml
│   │       ├── adb-files.yaml
│   │       ├── adb-parts.yaml
│   │       ├── adb-persons.yaml
│   │       ├── adb-reports.yaml
│   │       ├── adb-tickets.yaml
│   │       ├── adb-ui.yaml
│   │       ├── adb-utilities.yaml
│   │       └── adb-views.yaml
│   ├── services_prod/            Variante prod
│   ├── security/                 UAA legacy + scopes OAuth
│   ├── filebeat/                 Logs → ELK
│   ├── ingress-route/            Routes Traefik (nginx-ingress.yaml)
│   └── cert/                     Certificats TLS
├── terraform/                    Neo4j + autre infra
├── scripts/                      Scripts Cypher pour Neo4j
└── mq.md                         Doc RabbitMQ pour adb-graph

Services déployés

11 services via charts/services/templates/ :

ServicePrésent dans le monorepo
adb-accounting✓
adb-aggregates✓
adb-contracts✓
adb-files✓
adb-parts✓
adb-persons✓
adb-reports✓
adb-tickets✗ (dépôt externe)
adb-ui✓
adb-utilities✓
adb-views✓

Notamment absents des charts (mais présents dans certains FQDN) : adb-notes (déprécié), adb-graph (incomplet), adb-notifications.

Architecture du déploiement

flowchart TB
    subgraph K8s[Cluster Kubernetes]
        subgraph Ingress[Traefik / Nginx]
            R1[/persons → adb-persons]
            R2[/contracts → adb-contracts]
            R3[/parts → adb-parts]
            R4[/accounting → adb-accounting]
            Retc[...]
        end

        subgraph Services
            P[adb-persons Pod]
            C[adb-contracts Pod]
            Pa[adb-parts Pod]
            A[adb-accounting Pod]
            Etc[... 8 autres pods]
        end

        Filebeat[Filebeat DaemonSet]
    end

    Mongo[(MongoDB Atlas<br/>externe)]
    S3[(AWS S3<br/>externe)]
    SQS[AWS SQS/SNS<br/>externe]
    KC[Keycloak]
    ELK[Elasticsearch]

    Internet[Internet] --> Ingress
    R1 --> P
    R2 --> C
    R3 --> Pa
    R4 --> A

    P --> Mongo
    C --> Mongo
    Pa --> Mongo
    A --> Mongo

    A --> S3
    C --> S3

    P -.events.-> SQS
    C -.events.-> SQS

    P --> KC
    C --> KC

    Filebeat --> ELK

    subgraph Neo4j[Neo4j cluster<br/>via Terraform]
        N[Neo4j]
    end

    Graph[adb-graph<br/>hors monorepo] --> N

Configuration multi-env

Chaque chart a des values-<env>.yaml :

  • values-dev.yaml
  • values-int.yaml
  • values-staging.yaml
  • values-preprod.yaml
  • values-prod.yaml

Variables principales par chart :

  • image.repository / image.tag
  • Resources (CPU, mémoire)
  • Replicas
  • Variables d'env (injectées depuis Secrets Kubernetes)
  • Health checks (liveness / readiness probes)
  • Service ports

Routes Ingress

charts/ingress-route/templates/nginx-ingress.yaml route :

  • /persons → adb-persons
  • /parts → adb-parts
  • /contracts → adb-contracts
  • /accounting → adb-accounting
  • /files → adb-files
  • /utilities → adb-utilities
  • /aggregates → adb-aggregates
  • /view → adb-views
  • /reports → adb-reports
  • /tickets → adb-tickets
  • /notes → adb-tickets (redirection — adb-notes déprécié)
  • /ui → adb-ui

Logging

charts/filebeat/ déploie un DaemonSet Filebeat qui collecte les stdout/stderr de tous les pods et les forwarde vers Elasticsearch. Pattern de logs JSON (Logstash Logback) parsé automatiquement.

Terraform

terraform/ contient les ressources non-Helm :

  • Cluster Neo4j (utilisé par adb-graph).
  • Possibles autres ressources Azure / AWS (à confirmer au cas par cas).

Scripts Cypher associés : scripts/cypher_r4.cypher.

Documentation

  • terraform.md — guide Terraform
  • mq.md — config RabbitMQ pour adb-graph (exchanges, queues, DLX)

Liens

  • Code : adb-charts/
  • Charts services : adb-charts/charts/services/templates/
  • Ingress : adb-charts/charts/ingress-route/templates/nginx-ingress.yaml
  • Doc RabbitMQ : adb-charts/mq.md
Edit this page
Last Updated:
Contributors: gregory
Next
adb-infrastructure