為什么要針對不同的應用程序來提供監(jiān)控接口?這是因為監(jiān)控的目標是讓我們?nèi)媪私猱斍跋到y(tǒng)的健康狀態(tài)。我們一般監(jiān)控應用程序棧的許多方面。監(jiān)控服務器的CPU沒有過載,還有足夠的磁盤和內(nèi)存空間可用,基礎的應用服務器還在運行,等等。盡管通過這些,可能還不足以斷定服務運行正常。例如,可能由于某些原因,服務的數(shù)據(jù)庫配置錯誤。一個針對服務的健康檢查接口可以嘗試連接數(shù)據(jù)庫并在結果中返回連接的狀態(tài)。
當然,如果你所在的企業(yè)同意以通用結構來檢查返回值,那就再好不過了。這個結構也會因使用的監(jiān)控軟件類型而異。
總結
在本章,我們用DevOps和持續(xù)交付的視角了解了大量關于軟件架構的話題。
我們學習了關注點分離原則帶來的許多不同方面。我們也開始在企業(yè)內(nèi)部組件Matangle客戶數(shù)據(jù)庫的部署策略上工作。
我們深入到細節(jié)里,例如如何從庫里安裝軟件以及如何管理數(shù)據(jù)庫變更。我們還見識了高層次的主題諸如經(jīng)典的三層系統(tǒng)和更加時髦的微服務概念。
下一章我們將會講述如何管理源代碼和配置源代碼版本控制系統(tǒng)。