本番環境のアプリでは、特に複数のユーザーがアプリを扱っている場合は、明確な開発ワークフローを設定する必要があります。通常、開発ワークフローでは複数の環境を設定し、管理します。
Firebase では、デベロッパー ワークフローと構成環境に対するサポートレベルが異なります。このページで説明するデベロッパー ワークフローの用語と前提条件を理解したら、一般的なベスト プラクティスとセキュリティに関する一般的なガイドラインを確認して、Firebase プロジェクトとアプリを設定してください。
環境について
ソフトウェア開発において、環境とは、アプリケーションのインスタンスまたはアプリケーションのシステムを実行するために必要なすべてのハードウェアとソフトウェアを指します。
一連の環境を使用することで、ユーザーに影響を与えることなく、ソフトウェアの開発とテストを分離できます。下の図に示すように、大まかな環境は本番前環境または本番環境のいずれかと見なされ、本番前環境は必要な数だけ用意できます。この図には、各環境タイプに関連する一般的なプラクティスと機能も示されています。
このような環境を介して機能またはリリースを本番環境に移行するプロセスをデプロイ パイプラインと呼びます。
環境の種類
環境は、アプリケーション、コード、データを実行してサポートするために必要な、基盤となるインフラストラクチャから構成されます。以下の用語を開くと、いくつかの一般的な環境の説明を確認できます。各環境タイプで使用されるデータの種類に関するヒントなども確認できます。
開発環境(dev)
どのデベロッパーにも開発環境が必要です。開発環境は、ビルド中の変更をテストする安全で隔離された場所です。チームのすべてのデベロッパーが独自の開発環境にアクセスできるのが理想的です。また、開発環境がローカル インスタンスの場合、デベロッパーは開発サイクルを大幅に短縮できます。
通常、開発環境のデータには本番環境のデータに類似したデータがシードされますが、実際のユーザーのデータは含まれません。また、非常に長い文字列など、過去にバグの原因となったデータも含まれている場合があります。
テスト環境と QA 環境
自動テストを行う場合、このようなテストを実行する環境が必要になります。また、テスト環境を起動するたびに、データをリセットする必要があります。
QA エンジニアがいる場合、全員で使用する環境を 1 つ用意することもあれば、新しいリリース候補をテストするための環境を別途用意することもあります。
テスト環境と QA 環境のデータには、一般的に本番環境データを代表する品質のデータと、特殊ケースや過去にバグの原因となったデータの例がシードされます。
ステージング環境
本番環境での動作を確認するテストでは、本番環境のインフラストラクチャを可能な限り再現したステージング環境が必要です。特定の統合を個別にテストする必要がある場合は、複数のステージング インスタンスを使用するのが一般的です。
ステージング環境と本番環境の一般的な違いは次のとおりです。
ステージング環境では、悪影響の原因となる一部の機能や統合が取り除かれている場合があります。たとえば、ステージング環境からのメールの送信ができないように設定されている場合があります。
ステージング環境ではデータが匿名化されることがあります。データは架空であっても、現実的なものでなければなりません。ステージングは、問題を安全にデバッグするための場所のため、本番環境データよりも広い範囲のチームにステージング データへのアクセス権を付与できます。したがって、ユーザーのプライバシーを保護するため、ステージング時に実際のユーザーデータを使用してはなりません。
本番環境(prod)
維持するアプリケーションごとに 1 つの本番環境が必要です。これは、ユーザーが操作するインスタンスです。
データの変更、削除、再作成が可能な他の環境とは異なり、本番環境のデータは非常に重要です。本番環境データの消失や変更はユーザーに直接影響を及ぼす結果になります。
Firebase コンソールでは、本番環境に関連付けられている Firebase プロジェクトに「本番環境」環境タイプのタグを付けることをおすすめします。このタグを使用すると、変更が関連する本番環境アプリとそのデータに影響する可能性のあることを管理者や同僚に通知するのに役立ちます。
次のステップ