對於生產應用程序,您需要建立一個清晰的開發工作流程,特別是如果您有多個人在開發您的應用程序。開發工作流程通常涉及設置和管理多個環境。
Firebase 對開發人員工作流程和組成環境提供不同級別的支持。熟悉此頁面上的開發人員工作流程條款和假設後,請查看我們關於設置 Firebase 項目和您的應用的一般最佳做法和一般安全指南。
關於環境
在軟件開發中,環境是運行應用程序實例或應用程序系統所需的所有硬件和軟件。
一系列環境為開發和測試軟件提供了隔離,而不會影響用戶。如下圖所示,高級環境被認為是pre-production或production ,您可以根據需要擁有盡可能多的預生產環境。該圖還描述了與每種環境類型相關的常見做法和功能。
通過這些環境將功能或發布推進到生產的過程稱為部署管道。
環境類型
環境由運行和支持應用程序所需的底層基礎設施、其代碼和數據組成。展開以下每個術語以查看一些常見環境的描述,包括有關每種環境類型中使用的數據類型的提示。
每個開發人員都需要一個開發環境——一個安全、隔離的地方來測試正在構建的更改。理想情況下,您團隊中的每個開發人員都可以訪問自己的開發環境。此外,如果開發環境是本地實例,開發人員可以更快地迭代。
開發環境中的數據以通常類似於生產數據的數據為種子,但絕不應包含任何真實用戶的數據。它還可能包含過去導致錯誤的數據,例如非常長的字符串。
如果您有自動化測試,則需要一個運行這些測試的環境,並且每次啟動測試環境時都需要重置數據。
如果您有 QA 工程師,他們可能需要一個他們都使用的環境,或者他們可能需要單獨的環境來測試新的候選版本。
測試和 QA 環境中的數據包含通常代表生產數據的質量數據,以及代表極端情況的數據和過去導致錯誤的數據示例。
對於發佈在生產中如何工作的實際測試,您需要一個盡可能模仿生產基礎設施的暫存環境。如果您需要單獨測試特定的集成,通常會有多個暫存實例。
以下是 staging 和 prod 之間的常見區別:
暫存可能缺少一些可能導致副作用的功能或集成。例如,暫存可能設置為不發送電子郵件。
分期可能有匿名數據;數據可以是假的,但應該是真實的。因為登台是一個安全地調試問題的地方,所以您可以讓團隊更廣泛地訪問登台數據而不是生產數據。因此,為了保護用戶隱私,您不應在 staging 中使用實際的用戶數據。
對於您維護的每個應用程序,您都需要一個生產環境。這是您的用戶與之交互的實例。
與您可以更改、刪除和/或重新創建數據的其他環境不同,生產環境中的數據非常重要;丟失或更改您的產品數據將直接影響您的用戶。
在 Firebase 控制台中,我們建議將與您的生產環境關聯的 Firebase 項目標記為“生產”環境類型。此標籤可以幫助提醒您和您的隊友任何更改都可能影響您關聯的生產應用程序及其數據。
下一步
查看我們設置 Firebase 項目的一般最佳做法。本指南迴答有關 Firebase 項目層次結構、如何註冊您的應用變體和多租戶的問題。
查看不同環境的一般安全準則。您要確保每個環境及其數據都是安全的。