官术网_书友最值得收藏!

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。

主站蜘蛛池模板: 武汉市| 乳源| 富顺县| 隆林| 佳木斯市| 平塘县| 漠河县| 高安市| 梅州市| 宾川县| 房产| 磐安县| 宣威市| 民勤县| 沁源县| 晋江市| 安国市| 都江堰市| 会东县| 碌曲县| 岐山县| 县级市| 平远县| 雅安市| 聊城市| 锡林郭勒盟| 岳阳县| 阿巴嘎旗| 鄱阳县| 安康市| 略阳县| 稻城县| 芜湖县| 沁源县| 绥宁县| 平谷区| 淮北市| 淮南市| 琼中| 北辰区| 冀州市|