責任範囲と役割分担
GenerativeXのインフラ構築では、インフラチームとアプリ開発チームで明確に責任を分けています。このページでは、それぞれのチームが何を担当するのか、何を担当しないのかを明確に説明します。
重要なポイント
インフラチームは環境(サーバー、データベース、ネットワークなど)をセットアップしますが、アプリケーションのバグやコードの問題は対応しません。
アプリケーションが動かない、エラーが出る、機能が正しく動作しないなどの問題は、アプリ開発チームが対応します。
責任範囲の概要
インフラチームが担当すること
環境のセットアップと維持
-
Azureリソースの作成・管理
- サーバー(Container Apps)の作成
- データベース(MySQL)の作成
- ネットワークの設定
- ストレージの設定
- セキュリティ設定
-
CI/CDパイプラインの初期セットアップ
- GitHub Actionsのワークフロー設定
- デプロイの仕組みの構築
-
環境変数の自動設定
- データベース接続情報の自動設定
- インフラ関連の設定値の自動設定
-
環境の引き渡し
- アプリ開発チームに必要な情報の提供
- 使い方の説明
インフラチームが担当しないこと
アプリケーションの開発・運用・トラブルシューティング
- ❌ アプリケーションコードの開発
- ❌ アプリケーションのバグ修正
- ❌ アプリケーションの機能追加・変更
- ❌ アプリケーションのエラー対応
- ❌ アプリケーションのパフォーマンス改善(コードレベル)
- ❌ アプリケーションのログ確認・デバッグ
例:以下のような問題はアプリ開発チームが対応します
- 「ログインできない」→ アプリケーションの認証ロジックの問題
- 「データが正しく表示されない」→ アプリケーションのデータ取得・表示ロジックの問題
- 「ボタンを押しても反応しない」→ アプリケーションのフロントエンドの問題
- 「APIがエラーを返す」→ アプリケーションのAPI実装の問題
- 「処理が遅い」→ アプリケーションのコードやクエリの問題
アプリ開発チームが担当すること
アプリケーションの開発・運用・トラブルシューティング
-
アプリケーションコードの開発
- フロントエンドの実装
- バックエンドの実装
- 機能の追加・変更
-
環境変数の設定
- アプリケーション固有の設定値(APIキー、シークレットなど)
- 外部サービスとの連携設定
-
デプロイ
- GitHub Actionsを使ったデプロイの実行
- Dockerイメージのビルドとプッシュ
-
アプリケーションのトラブルシューティング
- アプリケーションのバグ修正
- エラーの調査と対応
- パフォーマンスの改善
アプリ開発チームが担当しないこと
インフラの設定・変更
- ❌ Azureリソースの作成・削除
- ❌ サーバーのCPU/メモリの変更
- ❌ データベースの設定変更
- ❌ ネットワーク設定の変更
- ❌ Terraformの実行
例:以下のような問題はインフラチームに相談してください
- 「サーバーが起動しない」→ インフラの設定の問題
- 「データベースに接続できない」→ ネットワーク設定の問題
- 「デプロイが失敗する」→ CI/CDの設定の問題
- 「サーバーのリソースが足りない」→ CPU/メモリの設定の問題
トラブルシューティング時の判断基準
インフラチームに相談する場合
以下のような症状が出た場合は、インフラチームに相談してください:
-
環境そのものが動いていない
- サーバーが起動していない
- データベースに接続できない
- ネットワークが通じない
- デプロイが全くできない
-
インフラの設定変更が必要
- CPU/メモリを増やしたい
- データベースのサイズを変更したい
- 新しいリソース(Redis、Storageなど)を追加したい
- カスタムドメインを設定したい
-
CI/CDの設定に問題がある
- GitHub Actionsが実行されない
- デプロイワークフローが失敗する
- 環境変数が設定されない
アプリ開発チームが対応する場合
以下のような症状が出た場合は、アプリ開発チームが対応します:
-
アプリケーションが動いているが、動作がおかしい
- ログインできない
- データが正しく表示されない
- ボタンを押しても反応しない
- APIがエラーを返す
- 処理が遅い
-
アプリケーションのコードに問題がある
- バグがある
- 機能が正しく動作しない
- エラーメッセージが表示される
-
アプリケーションのログを確認する必要がある
- エラーの原因を調査する
- デバッグが必要
ワークフロー
1. 初期環境構築(インフラチーム)
- アプリ開発チームから環境の依頼を受ける
- Azureリソース(サーバー、データベースなど)を作成
- CI/CDパイプラインをセットアップ
- アプリ開発チームに引き渡し
- 必要な情報(接続情報など)を提供
- 使い方を説明
この時点で、環境は使える状態になっていますが、アプリケーションはまだデプロイされていません。
2. アプリケーション開発とデプロイ(アプリ開発チーム)
- インフラチームから引き渡された情報を確認
- アプリケーションコードを開発
- 環境変数を設定(必要に応じて)
- GitHub Actionsでデプロイを実行
- アプリケーションが正しく動作することを確認
アプリケーションの開発・デプロイ・動作確認は、すべてアプリ開発チームが担当します。
3. 運用中の対応
インフラチームが対応する場合
- サーバーがダウンした
- データベースに接続できない
- ネットワークの問題
- インフラ設定の変更が必要
アプリ開発チームが対応する場合
- アプリケーションのバグ
- 機能が正しく動作しない
- エラーが発生する
- パフォーマンスの問題(コードレベル)
よくある質問
Q1: アプリケーションが動かないのですが、インフラチームに相談すべきですか?
A: まず、以下の点を確認してください:
- サーバーは起動していますか? → Azure Portalで確認できる
- データベースに接続できますか? → 接続エラーが出ているか確認
- デプロイは成功していますか? → GitHub Actionsのログを確認
サーバーが起動していて、デプロイも成功しているのにアプリケーションが動かない場合は、アプリケーションのコードに問題がある可能性が高いです。アプリ開発チームが対応します。
Q2: エラーメッセージが出ているのですが、誰に相談すればいいですか?
A: エラーメッセージの内容によって判断してください:
- 「サーバーに接続できません」「データベースに接続できません」 → インフラチームに相談
- 「認証に失敗しました」「データが見つかりません」「処理に失敗しました」 → アプリ開発チームが対応
Q3: パフォーマンスが悪いのですが、誰に相談すればいいですか?
A: 原因によって判断してください:
- サーバーのリソース(CPU/メモリ)が足りない → インフラチームに相談(リソースを増やす)
- アプリケーションのコードやデータベースクエリが遅い → アプリ開発チームが対応(コードの最適化)
Q4: インフラチームはアプリケーションのログを見てくれますか?
A: 基本的には見ません。 インフラチームは環境(サーバー、データベース、ネットワーク)が正しく動作しているかを確認します。アプリケーションのログは、アプリ開発チームが確認して、バグやエラーの原因を調査します。
ただし、サーバーが起動していない、デプロイが失敗するなどのインフラレベルの問題がある場合は、インフラチームがログを確認することがあります。
Q5: 環境変数が設定されていないのですが、誰に相談すればいいですか?
A: 環境変数の種類によって判断してください:
- データベース接続情報、インフラ関連の設定 → インフラチームが自動設定するため、設定されていない場合はインフラチームに相談
- アプリケーション固有の設定(APIキー、シークレットなど) → アプリ開発チームが設定するため、アプリ開発チームが対応
まとめ
インフラチームの責任
✅ 環境のセットアップと維持
- Azureリソースの作成・管理
- CI/CDパイプラインの初期セットアップ
- 環境変数の自動設定
❌ アプリケーションの開発・運用・トラブルシューティング
- アプリケーションコードの開発
- アプリケーションのバグ修正
- アプリケーションのエラー対応
アプリ開発チームの責任
✅ アプリケーションの開発・運用・トラブルシューティング
- アプリケーションコードの開発
- 環境変数の設定
- デプロイの実行
- アプリケーションのバグ修正・エラー対応
❌ インフラの設定・変更
- Azureリソースの作成・削除
- サーバーの設定変更
- Terraformの実行
判断基準
インフラチームに相談: 環境そのものが動いていない、インフラの設定変更が必要
アプリ開発チームが対応: アプリケーションが動いているが動作がおかしい、アプリケーションのコードに問題がある
関連ドキュメント
- 環境変数ガイド - 環境変数の詳細な管理方法
- インフラ設定ガイド -
infra.config.ymlの設定方法とCI/CDの使い方 - TerraformとCI/CDの統合 - 技術的な責任分界点の詳細