1.6 實現云原生模式
云原生基礎架構由應用程序來維護,而云原生應用則由基礎架構來維護,兩者密不可分。這就要求基礎架構和應用程序設計必須是簡單的。如果一個應用程序比較復雜,則應該采用微服務模式,將復雜功能拆分為細微的服務,然后通過集成這些細微服務來組裝成一個應用系統。但由微服務構成的如此復雜的系統,勢必無法通過人工管理,應該采用自動化管理,這也是云原生應用的一個基本特征。
在傳統單體應用中,企業所用開發語言是單一的,例如Java體系或者.Net體系,但是在眾多微服務進行開發時,語言限定得到了解放。負責某一個微服務的開發人員擅長使用.Net語言,負責另外一個微服務的開發人員擅長Node.js,這就出現了多元化。云原生應用并不限定語言,它只對諸如彈性、服務發現、配置、日志記錄、健康檢查和度量檢查等模式有要求。針對兩種不同情況,目前常用的做法主要有兩類。
(1)單一語言情況下,可以通過導入標準庫的形式在程序代碼中聲明云原生特征。例如Java語言系的Spring Cloud,可以通過類聲明來實現配置、服務發現、熔斷機制等功能。
(2)多語言情況下,則可以通過伴生(sidecar)模式來解決。該模式將實現各種功能的微服務應用通過容器化部屬捆綁在一起。常見例子如Envoy proxy為服務增加彈性和指標,Registrator通過外部服務發現服務,Configuration監視配置更改并通知服務進程重新加載。Health endpoint提供用于檢查應用程序健康狀況的HTTP端點。這些都簡化了云原生架構的開發難度并提高了組件復用率。
在云原生架構下,應用的生命周期也是由軟件來進行控制的,普通用戶無須關心應用的生命周期。應用程序的集成、測試和部署應該是自動化、自助式的,按照DevOps文化來進行。
推薦閱讀
- Oracle SOA Governance 11g Implementation
- 大數據項目管理:從規劃到實現
- Java實用組件集
- R Machine Learning By Example
- 自動檢測與轉換技術
- 城市道路交通主動控制技術
- Maya 2012從入門到精通
- 機器人創新實訓教程
- Windows環境下32位匯編語言程序設計
- Android游戲開發案例與關鍵技術
- PVCBOT機器人控制技術入門
- 樂高創意機器人教程(中級 上冊 10~16歲) (青少年iCAN+創新創意實踐指導叢書)
- 項目實踐精解:C#核心技術應用開發
- Microsoft System Center Data Protection Manager Cookbook
- ROS Robotics By Example(Second Edition)