1. 程式人生 > 程式設計 >【譯】在Azure上開發雲原生應用——工具與技巧

【譯】在Azure上開發雲原生應用——工具與技巧

原文連結

每天都有越來越多的企業遷移到雲上,雲原生應用的開發需求急速增加。雲原生應用能夠提供傳統應用所沒有的優勢,包括自動資源配置,自動伸縮,高可用性。這些應用可以為企業和開發者提供絕對競爭優勢。

在這篇文章中,你將瞭解到在Azure上開發雲原生應用的一些資源以及技巧。

在Azure上開發雲原生應用的工具

Azure包含了一系列內建的工具與服務,完整的列表請檢視微軟的Azure開發指南

開發

Azure有兩個開發和生成雲原生應用的工具:Visual Studio以及Azure App Service。

VS是一個整合開發環境,可以針對雲或內部叢集,開發,除錯,部署並監管程式。

可以選擇免費社群版本或兩個付費版本——專業版和企業版。VS是平臺無關的,可以直接與Azure服務整合,允許你直接部署到Azure。

Azure App Service是一個訂閱式的平臺即服務(PaaS)允許為Web及手機生成應用。它提供了對雲架構的完全控制,可以在容器或直接以程式碼形式部署應用。

App Service包含了一些預生成的應用,可以作為建立應用的基礎。支援流行的框架和語言,包括.NET,Java,Python,PHP,Node.js以及Ruby。

儲存

有多種儲存選項可以選擇,可以從任意標準的儲存服務中存取資料,包括磁碟,檔案,訊息佇列,表以及二進位制物件。也可以將你的應用連線到資料庫服務。

Azure為結構化的,半結構化的以及關係型的資料提供了按需付費的資料庫服務。資料庫服務包含內建的安全與效能調優功能,還包括自動的資料備份。

資料庫的選擇包括:

  • CosmosDB——針對非結構化或半結構化的資料,低延遲,高可用性與可伸縮性。
  • MariaDB——針對關係型資料。高可用性,彈性伸縮,適用於手機及Web應用。
  • PostgreSQL——針對關係型資料。可伸縮,支援地理位置和豐富的索引。
  • MySQL——針對關係型資料庫。高可用性,彈性伸縮,適用於手機及Web應用。

還可以使用SAP HANA。SPA HANA是面向列的,關係型資料管理系統。

可以使用SAP做一些分析,包括預測分析,空間資料處理,文字搜尋,圖資料處理,以及流分析。也可以將SAP作為應用伺服器建立並執行應用程式。

部署

在Azure上部署原生應用既可以是容器形式也可以是無伺服器的形式。可以使用

Azure Kubernetes Service (AKS)或 Azure Container Instances (ACI)執行並管理容器化應用。使用Azure Functions執行無伺服器應用。

AKS是免費的,利用Kubernetes部署並管理容器。這個服務執行在虛擬機器器上,由你負責配置,管理,當然還有續費。它含有一個整合的持續整合/持續交付(CI/CD)管道。VS Code中也可以整合AKS。

ACI是一個託管容器的服務。不需要開通虛擬機器器就能執行你的容器。服務的收費模式基於你的容器運行了多久,以及你使用了什麼計算資源。ACI通常用於彈性地管理來自AKS的瀏覽,執行事件驅動的應用,或資料處理工作。

Azure Functions用於無伺服器的形式,你的程式基於HTTP請求,Azure服務事件或預定義好的計劃執行。在Functions中,你的程式通過API與Azure和第三方服務通訊。Functions支援.NET,JavaScript和Java。

在Azure中開發的技巧

使用自動伸縮

自動伸縮能夠動態分配資源,僅使用你需要的資源。這能讓執行應用的開銷最小化。要獲得最好的效能和成本效益,請將你的應用設計成可以水平伸縮的。應用通常不需要更強大的處理器,只是需要一種分配負載的方式。

開發應用時,不要將你的程式碼與具體的例項繫結。否則會限制可用性與擴充套件性。如果在某個時刻你需要一個更大的流量值,你可以建一個計劃任務來自動實現,這個任務在你需要流量增長時啟動更多例項。

關注安全

由於使用了獨立的服務,雲原生應用會比傳統應用更加安全。但這並不意味著預設就是安全的。滲透測試很重要。要確保記錄你的應用程式的活動並監控流量。這些資料可以幫助你識別威脅。

如果你需要排查問題,記住在完成以後將遠端除錯關閉。遠端除錯可能會被利用來修改你的應用程式程式碼。使用HTTPS,HTTPS可以確保傳輸安全。

利用Azure資源

微軟有許多資源可以幫助開發雲原生應用,包括Azure最佳實踐

微軟為Azure和微軟的其他產品提供實踐實驗室,視訊課程和虛擬課程,開發者內容包括建立釋出應用,建立自動化工作流,Python機器學習。可以通過這個平臺獲得微軟認證。

Azure DevOps Labs也是一個選擇,含有許多微課程。DevOps Labs致力於幫你學習如何使用Azure以及如何選擇第三方服務。包含如何在PHP中建立CI/CD管道,以及在VS Code中推送請求等。