CircleCI Server コンテナのアーキテクチャ
On This Page
CircleCI Server version 2.x は、リリースのサポートが終了しています。 リリースがサポートされているバージョンへのアップグレードについては、お客様のアカウントチームにご相談ください。 |
このドキュメントでは、CircleCI Server がインストールされた Services マシン上で実行されるコンテナ化されたサービスの概要を説明します。 これにより、サービス運用の概要を理解し、サービス停止時のトラブルシューティングに役立てていただくことを目的としています。 下記の表に、補足事項と要点を記載します。
備考
-
ここに記載されているデータベース移行サービスは、起動時にのみ実行されるため、障害時の重大度は低くなっています。
移行サービスが起動時に停止している場合、接続先のサービスが動作しません。 -
Premium サポートをご利用の場合は、一部のサービスを外部化することができ (ここでは * を付けて示しています)、要件に合わせて管理できます。 外部化することで、データの安全性が高まり、システムに冗長性を持たせることができます。
キー
アイコン | 説明 |
---|---|
障害による本番環境への影響は小さく、データ損失や機能停止は発生しません。 | |
障害によって一部のジョブで問題が発生するおそれはありますが、データ損失は発生しません。 | |
障害によってデータ損失、ジョブ/ワークフローの破損、大規模な機能停止が発生するおそれがあります。 |
コンテナ、役割、障害モード、起動時の依存関係
コンテナ/イメージ | 役割 | 障害発生時の影響 | 障害の重大度 | スタートアップ時の依存関係 |
---|---|---|---|---|
| GraphQL API を提供します。 この API は、Web フロントエンドのレンダリング データを多く提供します。 | 多くの UI 要素 (例: コンテキスト) が完全に機能しなくなります。 |
| |
| 監査ログ イベントを blob ストレージに長期保存します。 | 一部のイベントが記録されなくなります。 |
| |
| 暗号化されたコンテキストを保存、提供します。 | コンテキストを使用するすべてのビルドが失敗するようになります。 |
| |
| `contexts-service`用に PostgreSQL の移行を実行します。 | 起動時にのみ実行されます。 |
| |
| スケジュールされたワークフローをトリガーします。 | スケジュールされたワークフローが実行されなくなります。 |
| |
| cron-service 用に PostgreSQL の移行を実行します。 | 起動時にのみ実行されます。 |
| |
| CircleCI のドメイン モデルに関する情報を保存、提供します。 | ワークフローを開始できなくなります。 一部の REST API 呼び出しが失敗し、CircleCI UI で |
| |
| `domain-service`用に PostgreSQL の移行を実行します。 | 起動時にのみ実行されます。 |
| |
| すべての SMTP アウトバウンド メールの送信に使用されるメール転送エージェント (MTA)です。 | メール通知が送付されません。 | なし | |
| ユーザー ID を保存します (LDAP)。 | LDAP 認証を使用している場合、すべてのログインに失敗し、REST API 呼び出しも失敗する場合があります。 | only if LDAP in use |
|
|
| 起動時にのみ実行されます。 |
| |
| CircleCI Server v2.x を AWS 外で実行する際に、S3 の代わりに使用されるファイルストレージサービスです。 サーバーが S3 を使用するように設定されている場合は使用されません。 ステップの出力ログ、アーティファクト、テスト結果、キャッシュ、ワークスペースを保存します。 | S3 を使用していない場合、ビルドは出力されず、一部の REST API 呼び出しが失敗する可能性があります。 | if not using S3 | なし |
| CircleCI Web アプリと www-api プロキシ です。 | UI と REST API が利用できなくなります。GitHub/GitHub Enterprise からジョブがトリガーされなくなります。 ビルドの実行はできますが、更新はされません。 |
| |
| Mongo のデータストアです。 | データ全体を損失するおそれがあります。 実行中のビルドがすべて失敗し、UI が機能しなくなります。 |
| |
| Nomad サーバーに統計情報を問い合わせ、StatsD に送信します。 | Nomad のメトリクスは失われますが、それ意外はすべて通常通りに動作します。 | なし | |
| ジョブの出力とステータスの更新を受け取り、MongoDB に書き込みます。 また、キャッシュとワークスペースにアクセスし、キャッシュ、ワークスペース、アーティファクト、テスト結果を保存するための API を実行中のジョブに提供します。 | 実行中のビルドがすべて失敗するか、安定せず一貫性のない状態になります。 ステップの出力、テスト結果、アーティファクトに関するデータ損失も発生します。 | なし | |
| CircleCI のアクセス権インターフェイスを提供します。 | ワークフローを開始できなくなります。 一部の REST API 呼び出しが失敗し、CircleCI UI で 500 エラーが発生する可能性があります。 |
| |
|
| 起動時にのみ実行されます。 |
| |
| ジョブをタスクに分割し、実行用に | Nomad にジョブが送信されなくなります。 run キューのサイズは増加しますが、著しいデータ損失が起こることはありません。 | なし | |
| 基本的な | データ全体を損失するおそれがあります。 実行中のビルドがすべて失敗し、UI が機能しなくなります。 | なし | |
| RabbitMQ サーバーを実行します。 CircleCI サービスのほとんどは、キューイングに RabbitMQ を使用しています。 | データ全体を損失するおそれがあります。 実行中のビルドがすべて失敗し、UI が機能しなくなります。 | なし | |
| Redis キー/バリューストア | 現在実行中のジョブ ステップの出力が失われます。 GitHub に対する API 呼び出しも失敗する可能性があります。 | なし | |
| タスクを実行するために | Nomad にジョブが送信されなくなります。 run キューのサイズは増加しますが、著しいデータ損失が起こることはありません。 | なし | |
| Mongo のバージョンアップ時に、任意の Mongo 変換/アップグレードスクリプトを実行するために使用します。 | 常時実行する必要はありません。 \ | なし | |
| Nomad プライマリ サービス | 2.0 のビルドジョブは実行されません。 | なし | |
| 他のコンテナが準備できているかどうかを確認するために Replicated から呼び出されます。 | 起動時のみ必要です。 起動時に利用できない場合、システムに障害が発生します。 | なし | |
| CircleCI 内の「Phone Home」エンドポイントにユーザー数を送信します。 | サーバー使用状況の統計を受け取らなくなりますが、動作には影響ありません。 | なし | |
|
| 1.0 Builder のライフサイクルは適切に管理されませんが、ジョブの実行は継続されます。 | なし | |
| CircleCI アプリにリアルタイム イベントを提供します。 | UI のリアルタイム更新が停止しますが、ハード リフレッシュは引き続き機能します。 | なし | |
| CircleCI ローカル サービスの書き込み先となる statsd 転送エージェントであり、外部メトリクス サービスに転送するように構成できます。 | メトリクスが動作しなくなりますが、ジョブの実行は継続されます。 | なし | |
| Service マシン上のすべてのコンテナのログのローテーションを管理します。 | 障害が長期間続くと、Services マシンのディスク容量が足りなくなり、他のサービスが停止します。 | なし | |
| テスト結果ファイルを解析してデータを保存します。 | ジョブのテストの失敗や時間に関するデータが生成されなくなります。 サービスが再起動するとバックフィルが行われます。 | なし | |
| HashiCorp 社の Vault (キー管理、セキュアなストレージ、その他の暗号化関連サービスを提供する暗号化サービス) のインスタンスです。 |
| なし | |
| 古い | このサービスを再起動するまで、古い vm-service インスタンスが破棄されなくなる可能性があります。 |
| |
|
|
|
| |
| 利用可能な |
|
| |
| `vm-service`のデータベース移行の実行に使用されます。 | 起動時にのみ実行されます。 | なし | |
| ワークフローに関する情報を調整、提供します。 | 新しいワークフローが開始されなくなります。 現在実行されているワークフローの一貫性が失われる可能性があります。 また、一部の REST API および GraphQL API のリクエストに失敗するようになります。 |
| |
| `workflows-conductor`用に PostgreSQL の移行を実行します。 | 起動時にのみ実行されます。 |
|
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.