什麼是多環境建置
多環境的建置常見於專案開發實務中,意即將專案部署在許多的環境。
而軟體開發上所謂的環境,就是專案所運行的地方,就是 code 跑在什麼地方,我們將自己寫好的服務所部署運行的地方,就稱為環境。
開發人員如果是自己做 side project 時,通常會將專案部署到一台 VM 上,然後開通防火牆讓外面連得到。實務上產品開發則會將專案部署到許多環境,常見的有以下四種
- Dev
- Testing
- Staging
- Production
(別強求這四個英文字的中文翻譯,通常都是直接用這四個英文溝通XD)
為何需要多環境建置
因為要確保產品到使用者手上時的品質是穩定且優良的。
試想開發的過程中,高度專注了一段時間寫 code,不過回頭來看才發現有些情境沒有考慮到,或是其實有許多 bug 存在,但不會在剛寫完後立刻浮現出來,即便有寫了測試,還是有漏網之魚。
各個環境被賦予的任務
從過去的經驗來看,四個環境所代表的意義與任務如下
環境 | 任務 |
---|---|
Dev | 此環境中的服務並不穩定,工程師開發完後會直接部署上來,做一些簡易的邏輯確認,主要提供開發人員使用。 |
Testing | 提供測試人員進行各種案例測試,包含了 Edge case 的情況,即便出現不符合業務流程的資料出現,也在預期當中。 |
Staging | 同樣也是提供測試人員進行測試,不過此處的資料需要以完全模擬實際形況來產出,力求重現使用者在操作上的體驗。 |
Production | 提供給實際用戶的環境,也就是外部使用者唯一會接觸到的環境。 |
後記
透過多環經的建置,讓產品和服務經過一定程度的檢測,給用戶更好的體驗,各個環境的設定和 code 必須保持一致,如此一來,如果在 Production 的環境出現了預期外的狀況,也能夠在 Testing 這樣的內部環境迅速重現,解決 bug。