開發環境 Dev Stg Prod

單細胞
2 min readJul 28, 2019

--

今天來講述一下程式開發時所對應到的不同環境,一般在定義上會將程式分成Dev、Stg與Prod三個環境,而開發團隊再對應自己的需要來切分或合併,所以在實際的應用上仍需以開發團隊的定義為主,這是需要額外注意的。

今天所講的三個環境,其實正對應了軟體開發的三個階段,現在我們就以三個階段來一一描述並解釋三個環境的用途。

一、撰寫時期

此階段為工程師收到需求後開始撰寫,等程式初步寫完之後由工程師自己測試(或工程師之間互相測試),由於是工程師初步的內部測試,程式通常也是Bug最多,最不穩定的時期,而此時所部屬的環境,我們就稱為開發環境,也就是Dev環境(Development)

二、測試時期

當工程師結束自己測試之後,會將已經相對穩定且正確的程式放到另一個環境,準備讓測試部門(QA)進行測試,這個環境我們就稱為測試環境( staging),縮寫就是Stg環境。測試部門可能會再發Bug通知給開發工程師,工程師統一在Dev除錯完畢之後,再將修正後的程式放到Stg環境。如果沒問題的話,這版程式就會放在這邊等待正式上線。

三、正式上線

當測試部門已經確認過程式沒有明顯Bug且運行穩定之後,程式就會在Stg環境中等待正式上線。等正式上線的時間一到,工程師就會將Stg上的版本完整搬移到真正開放使用者使用的環境,我們稱這個環境為正式環境(production),縮寫為Prod或Pro。

配置的硬體

通常在這三個環境中所配置的硬體規格是會有所差別的,由低到高順序為Dev -> Stg -> Prod。會這樣的安排是因為開發環境(dev)存在的目的只是讓工程師做初步的測試,所以並不需要太好的硬體規格。而Stg則比較不一定,如果在測試環境中必須包含了壓力測試等承受力測試,就會盡量將硬體規格拉高到跟正式環境一樣,這樣才能反映出當軟體正式上線時可以承受多少流量。反之若也只是測試軟體Bug或流程,可能也就不需要太高的硬體規格了。

結論

環境的切分,可以有效的防止不正確或尚未測試的程式碼進入正式環境而導致問題發生,在測試時也可以使用各種不同的測試資料來測試軟體,避免測試資料流入正式環境導致資料庫混亂,一般來說,只要是有一定規模的軟體開發都會建議有這三種的環境配置。當然也有些開發團隊會再以這三層繼續擴增來適應團隊開發,這就要看自己團隊的需求囉。

--

--

單細胞

菜鳥工程師,想把一些對寫程式的人來說簡單,對外人來說不簡單的概念用簡單的例子寫出來。順便幫自己來點程式小筆記。