本番アプリの場合、特にアプリで複数の人が作業している場合は、明確な開発ワークフローを設定する必要があります。開発ワークフローには通常、複数の環境のセットアップと管理が含まれます。
Firebaseは、開発者のワークフローと構成環境に対してさまざまなレベルのサポートを提供しています。このページのデベロッパーワークフローの用語と前提条件を理解したら、Firebaseプロジェクトとアプリを設定するための一般的なベストプラクティスと一般的なセキュリティガイドラインを確認してください。
環境について
ソフトウェア開発では、環境とは、アプリケーションのインスタンスまたはアプリケーションのシステムを実行するために必要なすべてのハードウェアとソフトウェアです。
一連の環境は、ユーザーに影響を与えることなく、ソフトウェアの開発とテストを分離します。次の図に示すように、高レベルの環境は実動前または実動のいずれかと見なされ、必要な数の実動前環境を持つことができます。この図は、各タイプの環境に関連する一般的な方法と機能についても説明しています。
これらの環境を介して機能またはリリースを本番環境に進めるプロセスは、デプロイメントパイプラインと呼ばれます。
環境の種類
環境は、アプリケーション、そのコード、およびそのデータを実行およびサポートするために必要な基盤となるインフラストラクチャで構成されています。次の各用語を展開して、各環境タイプで使用されるデータのタイプに関するヒントなど、いくつかの一般的な環境の説明を確認してください。
すべての開発者は、開発環境を必要としています。これは、変更が構築されているときに変更をテストするための安全で隔離された場所です。理想的には、チームのすべての開発者が独自の開発環境にアクセスできます。また、開発環境がローカルインスタンスの場合、開発者ははるかに高速に反復できます。
開発環境のデータには、一般に本番データに似たデータがシードされていますが、実際のユーザーのデータが含まれていてはなりません。また、非常に長い文字列など、過去にバグを引き起こしたデータが含まれている場合もあります。
自動テストを使用している場合は、それらのテストを実行する環境が必要であり、テスト環境を起動するたびにデータをリセットする必要があります。
QAエンジニアがいる場合は、全員が使用する1つの環境が必要な場合もあれば、新しいリリース候補をテストするために個別の環境が必要な場合もあります。
テスト環境とQA環境のデータには、本番データを一般的に表す品質データと、過去にバグを引き起こしたコーナーケースやデータの例を表すデータがシードされています。
リリースが本番環境でどのように機能するかを現実的にテストするには、本番インフラストラクチャを可能な限り模倣するステージング環境が必要です。特定の統合を個別にテストする必要がある場合は、複数のステージングインスタンスがあるのが一般的です。
ステージングとprodの一般的な違いは次のとおりです。
ステージングには、副作用を引き起こす可能性のある一部の機能または統合が欠落している可能性があります。たとえば、ステージングは電子メールを送信しないように設定できます。
ステージングには匿名化されたデータが含まれる場合があります。データは偽物である可能性がありますが、現実的である必要があります。ステージングは問題を安全にデバッグする場所であるため、本番データよりも幅広いチームにステージングデータへのアクセスを許可する場合があります。したがって、ユーザーのプライバシーを保護するために、ステージングで実際のユーザーデータを使用しないでください。
保守するアプリケーションごとに、単一の実稼働環境が必要です。これは、ユーザーが対話するインスタンスです。
データを変更、削除、および/または再作成できる他の環境とは異なり、本番環境のデータは非常に重要です。製品データを紛失または変更すると、ユーザーに直接影響します。
Firebaseコンソールでは、本番環境に関連付けられているFirebaseプロジェクトを「本番」環境タイプとしてタグ付けすることをおすすめします。このタグは、変更が関連する本番アプリとそのデータに影響を与える可能性があることをあなたとチームメートに思い出させるのに役立ちます。
次のステップ
Firebaseプロジェクトを設定するための一般的なベストプラクティスを確認してください。このガイドでは、Firebaseプロジェクトの階層、アプリバリアントの登録方法、マルチテナンシーに関する質問に回答します。
さまざまな環境の一般的なセキュリティガイドラインを確認してください。各環境とそのデータが安全であることを確認する必要があります。
Firebaseの起動チェックリストを確認します。