- 云原生架構進階實戰(zhàn)
- 王玉平編著
- 1062字
- 2020-09-18 17:43:53
1.3 云原生基礎架構
云原生基礎架構是隱藏在抽象背后的由軟件管理并由API進行控制的基礎架構,它的目標是運行應用系統。這也就興起了一種新的管理模式——通過這些特性以可擴展、高效的方式進行基礎設施管理。有用的抽象是具有重要意義的,它可以讓開發(fā)者專注于自己的業(yè)務而無須了解底層、實現底層,更可以避免重復實現底層。
由軟件來管理基礎架構是與云的一個關鍵區(qū)別。軟件控制的基礎架構使得基礎架構能夠擴展,也就實現了資源彈性處理、資源置備和資源可維護。這種軟件管理基礎架構的模式不僅影響了基礎架構的管理和運行,也影響了在其上運行的應用系統,從系統架構到系統開發(fā)、部署、運維都有了重大變化。
云原生基礎架構不僅僅是在公有云上運行基礎架構,也不是在容器中運行應用程序,所以公有云和容器化不是云原生基礎架構的代名詞。但是云原生基礎架構可以借助容器化技術和公有云技術去實現。公有云僅僅是IaaS層的實現,一般的公有云還是要借助人力去申請、分配。而云原生基礎架構則是用程序代碼自動去申請。容器僅僅是應用程序的一種打包方式,這并不意味著這些應用程序具備自治功能。即使應用程序是通過持續(xù)集成和持續(xù)交付等DevOps流水線自動構建和部署的,也并不一定就是云原生基礎架構。
Kubernetes也不能簡單地稱為云原生基礎架構。Kubernetes的容器編排技術為云原生基礎架構提供了必要的平臺支撐功能。是否是云原生基礎架構的關鍵在于是否使用自動化處理的方式。例如在Kubernetes中手工分配物理卷,就不能稱為云原生基礎架構,因為物理卷不是自動分配的。而如果使用動態(tài)卷,依靠卷聲明來分配容量,進而分配使用該卷的容器,則滿足了云原生基礎架構的要求。
云原生應用對基礎架構的基本要求有:
● 運行時間和隔離。
● 資源分配和調度。
● 環(huán)境隔離。
● 服務發(fā)現。
● 狀態(tài)管理。
● 監(jiān)測和日志記錄。
● 度量聚合。
● 調試和追蹤。
云應用程序肯定會依賴一個或多個服務來提供業(yè)務價值。提供一種讓服務在每個環(huán)境的基礎上找到彼此的方法是基礎架構的責任。有些應用的服務發(fā)現需要調用API來實現,而有些應用則通過DNS或者網絡代理透明地發(fā)現。具體的實現方式不重要,重要的是使用服務發(fā)現服務。云原生應用程序和基礎架構協作以發(fā)現其相關依賴服務。例如Prometheus抓取監(jiān)控信息的動作主要在配置文件中描述,但是如果Prometheus監(jiān)控的目標是動態(tài)的,則需要部署人員每次去修改Prometheus配置文件,這是非常麻煩的,而且人工操作易出錯。為此,Prometheus實現了一種服務發(fā)現方式,主動感知系統監(jiān)控目標的變化,自動添加、刪除和更新服務。以下是一個Kubernetes上的服務允許Prometheus自動發(fā)現的代碼,其中的prometheus.io/scrape:"true"就是為了讓Prometheus感知到該服務。該服務暴露了HTTP協議訪問,端口為8080,端點為/metrics。

- Cloud Analytics with Microsoft Azure
- Multimedia Programming with Pure Data
- Pig Design Patterns
- Lightning Fast Animation in Element 3D
- LAMP網站開發(fā)黃金組合Linux+Apache+MySQL+PHP
- PVCBOT機器人控制技術入門
- 深度學習與目標檢測
- Machine Learning Algorithms(Second Edition)
- Visual Studio 2010 (C#) Windows數據庫項目開發(fā)
- 步步驚“芯”
- MongoDB 4 Quick Start Guide
- C#編程兵書
- Access 2007數據庫入門與實例應用金典
- 7天精通Photoshop CS5平面視覺設計
- 軟件需求十步走