# Concourse Architecture

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

## Concourse Architecture

[**Concourse ドキュメントからの関連データ:**](https://concourse-ci.org/internals.html)

### Architecture

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

#### ATC: web UI & build scheduler

ATCはConcourseの中心です。**web UIとAPI**を実行し、すべてのパイプラインの**スケジューリング**を担当します。**PostgreSQL**に接続し、パイプラインデータ（ビルドログを含む）を保存します。

[checker](https://concourse-ci.org/checker.html)の責任は、新しいリソースのバージョンを継続的にチェックすることです。[scheduler](https://concourse-ci.org/scheduler.html)はジョブのビルドをスケジュールする責任があり、[build tracker](https://concourse-ci.org/build-tracker.html)はスケジュールされたビルドを実行する責任があります。[garbage collector](https://concourse-ci.org/garbage-collector.html)は、未使用または古くなったオブジェクト（コンテナやボリュームなど）を削除するためのクリーンアップメカニズムです。

#### TSA: worker registration & forwarding

TSAは**カスタムビルドのSSHサーバー**であり、[**workers**](https://concourse-ci.org/internals.html#architecture-worker)を[ATC](https://concourse-ci.org/internals.html#component-atc)に安全に**登録**するためだけに使用されます。

TSAは**デフォルトでポート`2222`**でリッスンし、通常は[ATC](https://concourse-ci.org/internals.html#component-atc)と同じ場所に配置され、ロードバランサーの背後にあります。

**TSAはSSH接続を介してCLIを実装し、**[**これらのコマンド**](https://concourse-ci.org/internals.html#component-tsa)をサポートします。

#### Workers

タスクを実行するために、Concourseはワーカーを持つ必要があります。これらのワーカーは[TSA](https://concourse-ci.org/internals.html#component-tsa)を介して**自分自身を登録**し、[**Garden**](https://github.com/cloudfoundry-incubator/garden)と[**Baggageclaim**](https://github.com/concourse/baggageclaim)のサービスを実行します。

- **Garden**: これは**Container Manage API**で、通常は**ポート7777**で**HTTP**を介して実行されます。
- **Baggageclaim**: これは**Volume Management API**で、通常は**ポート7788**で**HTTP**を介して実行されます。

## References

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

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