歡迎光臨
每天分享高質量文章

雲原生應用的10大關鍵屬性

雲原生是一個用於描述基於容器環境的術語。雲原生技術用於開發構建應用程式,這些應用程式使用容器打包並且將被部署為微服務,透過敏捷DevOps流程和持續交付工作流,在彈性基礎設施上進行管理。
運維團隊將手工管理傳統應用程式的基礎設施資源分配,而雲原生應用程式部署在抽象底層計算、儲存和網路原語的基礎設施上。處理這種新型應用程式的開發人員和運維人員不會直接與基礎設施提供者公開的應用程式程式設計介面(API)互動。相反,編排引擎根據DevOps團隊制定的策略自動處理資源分配。控制器和排程器是編製引擎的重要元件,它們處理資源分配和應用程式的生命週期。
像Kubernetes這樣的雲原生平臺暴露了一個扁平網路,該網路改寫在雲提供商的現有網路拓撲和原語上。類似地,通常抽象本地儲存層以暴露與容器整合的邏輯捲。運維人員可以分配開發人員和資源管理員訪問的儲存配額和網路策略。基礎架構的抽象不僅解決了跨雲環境的可移植性需求,還讓開發人員利用新興樣式來構建和部署應用程式。無論基於物理伺服器或虛擬機器,私有雲還是公共雲的底層基礎架構,業務流程管理器都將成為部署標的。
Kubernetes是當代執行雲原生應用程式的工作負載的理想平臺。它已經成為雲的事實上的作業系統,就像Linux是底層機器的作業系統一樣。只要開發人員遵循設計和開發軟體作為一組包含雲原生應用程式的微服務的最佳實踐,DevOps團隊就能夠在Kubernetes中打包和部署它們。以下是開發人員在設計雲原生應用程式時應牢記的雲原生應用程式的10個關鍵屬性。
  • 1、打包為輕量級容器:雲原生應用程式是打包為輕量級容器的獨立自治服務的集合。與虛擬機器不同,容器可以快速擴充套件和縮容。由於擴充套件單元轉移到容器,因此優化了基礎架構的利用率。

  • 2、使用最佳語言和框架開發:雲原生應用程式的每項服務都是使用最適合該功能的語言和框架開發的。雲原生應用程式是多語言的;服務使用各種語言、執行時和框架。例如,開發人員可以構建基於在Node.js中開發的WebSockets的實時流服務,同時選擇Python和Flask來公開API。開發微服務的細粒度方法使他們能夠為特定工作選擇最佳語言和框架。

  • 3、設計為松耦合的微服務:屬於同一應用程式的服務透過應用程式執行時相互發現。它們獨立於其他服務而存在。當正確整合時,彈性基礎架構和應用程式架構可以高效和高效能地進行擴充套件。

松耦合的服務允許開發人員獨立地處理每個服務。透過這種解耦,開發人員可以專註於每項服務的核心功能,以交付細粒度的功能。這種方法可以實現整個應用程式的有效生命週期管理,因為每個服務都是獨立維護的,並且擁有明確的所有權。
  • 4、以API為中心進行互動和協作:雲原生服務使用輕量級API,這些API基於表述性狀態轉移(REST)、Google的開源遠端過程呼叫(gRPC)或NATS等協議。REST被用作透過超文字傳輸協議(HTTP)公開API的基本共識。為了提高效能,gRPC通常用於服務之間的內部通訊。NATS具有釋出-訂閱功能,可在應用程式內實現非同步通訊。

  • 5、以無狀態和有狀態服務的清晰分離為架構基礎:持久可靠的服務遵循不同的樣式,以確保更高的可用性和彈性。無狀態服務獨立於有狀態服務。永續性成為一個必須越來越多地考慮因素,無狀態和一些人會爭論的微服務儲存環境的因素。

  • 6、與伺服器和作業系統依賴關係隔離:雲原生應用程式與任何特定作業系統或單個計算機沒有關聯。它們在更高的抽象級別上執行。唯一的例外是微服務需要某些功能,包括固態驅動器(SSD)和圖形處理單元(GPU),這些功能可能由一部分機器專門提供。

  • 7、部署在自服務、彈性、雲基礎架構上:雲原生應用程式部署在虛擬的、共享的和彈性的基礎架構上。它們可以與底層基礎架構保持一致,以動態增長和縮小-根據不同的負載調整自身。

  • 8、透過敏捷DevOps流程進行管理:雲原生應用程式的每項服務都經歷一個獨立的生命週期,它們透過敏捷的DevOps流程進行管理。多個持續整合/連續交付(CI/CD)流水線可以協同工作以部署和管理雲原生應用程式。

  • 9、自動化功能:雲原生應用程式可以高度自動化。它們與基礎設施即程式碼的概念相得益彰。實際上,僅需要一定程度的自動化來管理這些大型和複雜的應用程式。

  • 10、定義的、策略驅動的資源分配:最後,雲原生應用程式與透過一組策略定義的治理模型保持一致。它們遵循諸如中央處理單元(CPU)和儲存配額以及將資源分配給服務的網路策略等策略。例如,在企業方案中,中央IT可以定義策略以為每個部門分配資源。每個部門的開發人員和DevOps團隊都擁有對共享資源的完全訪問權和所有權。

原文連結:https://thenewstack.io/10-key-attributes-of-cloud-native-applications/

Kubernetes實戰培訓

Kubernetes應用實戰培訓將於2018年10月12日在深圳開課,3天時間帶你係統學習Kubernetes本次培訓包括:容器基礎、Docker基礎、Docker進階、Kubernetes架構及部署、Kubernetes常用物件、Kubernetes網路、儲存、服務發現、Kubernetes的排程和服務質量保證、監控和日誌、Helm、專案實踐等,點選下方圖片檢視詳情。

贊(0)

分享創造快樂