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

1.6 實現云原生模式

云原生基礎架構由應用程序來維護,而云原生應用則由基礎架構來維護,兩者密不可分。這就要求基礎架構和應用程序設計必須是簡單的。如果一個應用程序比較復雜,則應該采用微服務模式,將復雜功能拆分為細微的服務,然后通過集成這些細微服務來組裝成一個應用系統。但由微服務構成的如此復雜的系統,勢必無法通過人工管理,應該采用自動化管理,這也是云原生應用的一個基本特征。

在傳統單體應用中,企業所用開發語言是單一的,例如Java體系或者.Net體系,但是在眾多微服務進行開發時,語言限定得到了解放。負責某一個微服務的開發人員擅長使用.Net語言,負責另外一個微服務的開發人員擅長Node.js,這就出現了多元化。云原生應用并不限定語言,它只對諸如彈性、服務發現、配置、日志記錄、健康檢查和度量檢查等模式有要求。針對兩種不同情況,目前常用的做法主要有兩類。

(1)單一語言情況下,可以通過導入標準庫的形式在程序代碼中聲明云原生特征。例如Java語言系的Spring Cloud,可以通過類聲明來實現配置、服務發現、熔斷機制等功能。

(2)多語言情況下,則可以通過伴生(sidecar)模式來解決。該模式將實現各種功能的微服務應用通過容器化部屬捆綁在一起。常見例子如Envoy proxy為服務增加彈性和指標,Registrator通過外部服務發現服務,Configuration監視配置更改并通知服務進程重新加載。Health endpoint提供用于檢查應用程序健康狀況的HTTP端點。這些都簡化了云原生架構的開發難度并提高了組件復用率。

在云原生架構下,應用的生命周期也是由軟件來進行控制的,普通用戶無須關心應用的生命周期。應用程序的集成、測試和部署應該是自動化、自助式的,按照DevOps文化來進行。

主站蜘蛛池模板: 内黄县| 许昌市| 张掖市| 鲁甸县| 东光县| 清水河县| 新干县| 堆龙德庆县| 郑州市| 周至县| 荥经县| 深水埗区| 温州市| 商丘市| 白城市| 嘉禾县| 祁阳县| 沭阳县| 凉城县| 通渭县| 班玛县| 平利县| 邻水| 德阳市| 田林县| 沐川县| 襄樊市| 平阴县| 淳安县| 资溪县| 大港区| 永靖县| 惠来县| 普陀区| 淳化县| 巴彦县| 康乐县| 龙海市| 沧州市| 济源市| 安达市|