随着企業追尋容器架構帶來的優勢,來自谷歌、Docker、CoreOS、Mesosphere和Joyent之類的容器生态系統通過采用者和貢獻者的工作繼續發展壯大。跨行業組織都将容器用于提高基礎設施成本效率和應用程式的可移植性、可伸縮性和靈活性。可觀測性是容器部署成功的關鍵,因為它具有可控性。如果使用者能夠很好地觀察系統的内部結構,就可以平等地控制系統的輸出。

什麼是可觀測性(Observability)?
可觀測性是衡量一個系統内部狀态如何從外部輸出的知識中推斷出來的一個度量,這是一個源于控制系統理論的概念。目前,對于可觀測性而言,有不同的觀點。傳統的IT專業人士認為度量和記錄足夠使用,但是也有IT專業人士認為,名額過于複雜容易因過度分析而癱瘓。同時,DevOps工程師将可觀測性與追蹤微服務相關聯。
這些觀點中孰對孰錯無從得知,有這麼多的可觀測性的觀點,找到共同點本身存在極大的挑戰。應用程式堆棧的發展速度、種類和容量都非常大,是以需要三折(度量、日志和跟蹤)組合建構可行的可觀測性協定。
此外,很多組織和IT專業人士仍然難以了解容器技術,以及如何将容器架構應用于其企業應用程式的組合。了解容器,同時在應用程式堆棧中實作可觀測性可能是一項艱巨的任務。
容器基礎
首先,一個容器包含整個Runtime(運作時)環境,一個應用程式,它的依賴關系、庫和其他二進制檔案以及運作所需的配置檔案都捆綁到一個輕量級、短期使用而設計的包中。正确實施時,容器可以實作更靈活和便捷的軟體開發環境。
容器模型并不是一個長期的環境,相反,容器的設計是為了與微服務配對,以便完成一些工作然後繼續發展。考慮到這一點,我們接下來将會讨論容器和微服務的優勢。
首先,容器的啟動速度更快,占用的記憶體也少,進而使資料中心資源占用空間小于傳統虛拟化。這一點非常重要,這是容器能夠為開發團隊提供高效流程,縮短開發和品質保證測試周期的關鍵。通過使用容器,開發人員可以編寫并快速在并行容器環境中測試代碼,以了解每個代碼如何執行并決定最佳代碼。容器的存在是短暫的,這意味着它們可以在最少的配置和設定下終止、更換和建立。
其次,通過容器多個團隊成員之間可以進行更多的協作參與項目。對于在自己虛拟環境中工作的多個團隊成員以及他們的代碼版本,應用程式的版本控制和一緻性可能會有問題。另一方面,容器在部署鏡像時需要保證一緻性,将其與像GitHub這樣的平台相結合,可以快速打包和部署容器鏡像。快速啟動應用程式的鏡像的功能将使得同一開發團隊的不同成員在不同但一緻的鏡像環境中測試和重做代碼行,最終可以實作更加無縫的同步和內建。
容器生态系統的可觀測性
容器旨在通過規範配置和應用程式傳遞的一緻性來提高可伸縮性和靈活性,是以自動化和編排成為衡量容器項目是否成功的關鍵。利用容器來實作資源自動化或應用程式的使用,以便運作、提供服務,或者服務投入生産環境之前運作和測試服務,并在網絡規模上實作。組織需要協調工作量,以利用所有開發團隊成員之間的協作提高效率。
在網絡規模下優化、自動化和保護容器需要可觀測性以控制結果,這是以靈活的方式進行大規模故障排除和修複的最有效的方式。為了确定如何最佳地将可觀測性和容器技術內建到現有環境中,IT專業人員需要全面的監控,以在整個IT環境和應用程式堆棧腫麼提供單一的點。
容器為組織提供了實作數字化轉型的靈活性、可用性和可擴充性。為了大規模控制容器,從業者需要将可觀測性整合到他們的容器計劃中,否則他們将會面臨失敗。
本文參與 騰訊雲自媒體分享計劃,歡迎熱愛寫作的你一起參與!
本文章分享自微信公衆号
SDNLAB
原始發表時間:2018-01-23
如有侵權,請聯系 [email protected] 删除。