# Architecture de Concourse

## Architecture de Concourse

{{#include ../../banners/hacktricks-training.md}}

[**Données pertinentes de la documentation de Concourse :**](https://concourse-ci.org/internals.html)

### Architecture

![](<../../images/image (187).png>)

#### ATC : interface web et planificateur de builds

L'ATC est le cœur de Concourse. Il exécute le **web UI et l'API** et est responsable de toute la **planification** des pipelines. Il **se connecte à PostgreSQL**, qu'il utilise pour stocker les données des pipelines (y compris les journaux de construction).

La responsabilité du [checker](https://concourse-ci.org/checker.html) est de vérifier en continu les nouvelles versions des ressources. Le [scheduler](https://concourse-ci.org/scheduler.html) est responsable de la planification des builds pour un job et le [build tracker](https://concourse-ci.org/build-tracker.html) est responsable de l'exécution de tout build planifié. Le [garbage collector](https://concourse-ci.org/garbage-collector.html) est le mécanisme de nettoyage pour supprimer tout objet inutilisé ou obsolète, tel que des conteneurs et des volumes.

#### TSA : enregistrement des workers et transfert

La TSA est un **serveur SSH sur mesure** qui est utilisé uniquement pour **enregistrer** en toute sécurité les [**workers**](https://concourse-ci.org/internals.html#architecture-worker) avec l'[ATC](https://concourse-ci.org/internals.html#component-atc).

La TSA écoute par **défaut sur le port `2222`**, et est généralement colocée avec l'[ATC](https://concourse-ci.org/internals.html#component-atc) et se trouve derrière un équilibreur de charge.

La **TSA implémente CLI sur la connexion SSH,** prenant en charge [**ces commandes**](https://concourse-ci.org/internals.html#component-tsa).

#### Workers

Pour exécuter des tâches, Concourse doit avoir des workers. Ces workers **s'enregistrent** via la [TSA](https://concourse-ci.org/internals.html#component-tsa) et exécutent les services [**Garden**](https://github.com/cloudfoundry-incubator/garden) et [**Baggageclaim**](https://github.com/concourse/baggageclaim).

- **Garden** : C'est l'**API de gestion des conteneurs**, généralement exécutée sur le **port 7777** via **HTTP**.
- **Baggageclaim** : C'est l'**API de gestion des volumes**, généralement exécutée sur le **port 7788** via **HTTP**.

## Références

- [https://concourse-ci.org/internals.html](https://concourse-ci.org/internals.html)

{{#include ../../banners/hacktricks-training.md}}
