軟體開發實務 - 多環境建置(multiple environments)

什麼是多環境建置

多環境的建置常見於專案開發實務中,意即將專案部署在許多的環境。

而軟體開發上所謂的環境,就是專案所運行的地方,就是 code 跑在什麼地方,我們將自己寫好的服務所部署運行的地方,就稱為環境。

開發人員如果是自己做 side project 時,通常會將專案部署到一台 VM 上,然後開通防火牆讓外面連得到。實務上產品開發則會將專案部署到許多環境,常見的有以下四種

  • Dev
  • Testing
  • Staging
  • Production

(別強求這四個英文字的中文翻譯,通常都是直接用這四個英文溝通XD)

為何需要多環境建置

因為要確保產品到使用者手上時的品質是穩定且優良的。

試想開發的過程中,高度專注了一段時間寫 code,不過回頭來看才發現有些情境沒有考慮到,或是其實有許多 bug 存在,但不會在剛寫完後立刻浮現出來,即便有寫了測試,還是有漏網之魚。

各個環境被賦予的任務

從過去的經驗來看,四個環境所代表的意義與任務如下

環境 任務
Dev 此環境中的服務並不穩定,工程師開發完後會直接部署上來,做一些簡易的邏輯確認,主要提供開發人員使用。
Testing 提供測試人員進行各種案例測試,包含了 Edge case 的情況,即便出現不符合業務流程的資料出現,也在預期當中。
Staging 同樣也是提供測試人員進行測試,不過此處的資料需要以完全模擬實際形況來產出,力求重現使用者在操作上的體驗。
Production 提供給實際用戶的環境,也就是外部使用者唯一會接觸到的環境。

後記

透過多環經的建置,讓產品和服務經過一定程度的檢測,給用戶更好的體驗,各個環境的設定和 code 必須保持一致,如此一來,如果在 Production 的環境出現了預期外的狀況,也能夠在 Testing 這樣的內部環境迅速重現,解決 bug。

Tags:
# software