※ 這時候,會將多個服務放在同一台虛擬機
為了節省成本,我們從實體機中切出「虛擬機」,同時讓一台「虛擬機」裡面運行多個專案或服務,但因為資金不足所以「虛擬機」也無法開太多台,只好選擇加大「虛擬機」規格(例如:CPU、Memory、Disk等),但是這樣的情況往往在虛擬機異常時,上面所運行的服務與專案,全數受到影響。
※ 將多個服務放在同一台虛擬機,同時有備援機器
為了避免第一個案例的發生,有人改採用另外一種架構「不只有一台虛擬機提供服務,並且每台虛擬機都有各自的備援機器」,當線上服務的機器異常時,可以在短時間切換至「備援機」,以減少因機器異常而導致的影響,甚至透過橫向擴充的方式,實現連線LoadBalance,降低「虛擬機」的Loading。
(一個服務放一台虛擬機,且同時也具有備援機器)
在第二個例子,如果機器Loading突然衝高,而且沒有完善的Log監控的話,在問題查找時,其實很難知道是哪一個服務發生異常,導致機器資源被占用;也可能同時間多個服務有突發狀況,造成機器Loading衝高,就算「備援機」已經被拉上線,仍無法減輕機器負擔,服務仍呈現不正常的行為,因此產生了一個新興的架構:「微服務時代」,將服務隔離,盡量讓服務不互相影響,並且一個服務就放一台虛擬機,而且同時擁有備援機器。