在 Azure 上裝載應用程式
這是一系列 7 篇文章中的第三部分,可協助開發人員開始使用 Azure。
- 第 1 部分: 適用於開發人員的 Azure 概觀
- 第 2 部分: 適用於開發人員的重要 Azure 服務
- 第3部分: 在 Azure 上裝載應用程式
- 第 4 部分: 將您的應用程式連線至 Azure 服務
- 第 5 部分:如何? 在 Azure 中建立和管理資源?
- 第 6 部分: 建置 Azure 應用程式的重要概念
- 第 7 部分: 如何計費?
Azure 會根據需求提供各種不同的方式來裝載應用程式。 本文會建議符合需求的服務。 這不是禁止的。 您可以混合和比對服務,以符合您的需求。 大部分的生產環境會使用服務的組合來符合其商務和組織需求。
您選擇的服務通常會歸結為兩個考慮:
- 您偏好簡單或控制嗎?
- 您偏好雲端原生 (亦即容器) 或 Azure 原生 (量身打造的工具和整合)
下列影片說明第一個考慮:簡單與控制:
簡單與控制
Azure 裝載服務有兩個考慮:
- 簡單與控制
- 簡單的裝載平臺需要較少的組態和管理,但對基礎結構的控制較少。
- 更複雜的裝載平臺需要更多組態和管理,但可提供對基礎結構的更多控制。
- 雲端原生與 Azure 原生
- 您可以使用容器和 Dapr 等開放原始碼技術,將雲端原生視為雲端可攜式。 您建置的應用程式可以部署到任何雲端提供者。
- Azure 原生是 Azure 特有的,其投資是 Azure 特定的工具和技術來管理該基礎結構。 雖然這些服務包含容器工作負載,但它們也包含 Azure 專屬的程式代碼優先、低程式代碼和基礎結構工具,重點是在 Azure 服務之間連線和整合。
簡化的裝載
簡化的裝載 解決方案完全由 Azure 管理。 您必須負責程式代碼和環境設定等功能。 Azure 會管理基礎運行時間和基礎結構,包括更新和修補程式。 簡化的裝載是 Azure 原生方法。
- Logic Apps:建立和執行自動化工作流程,幾乎沒有程序代碼。
- Power Automate:當您需要自動化商務程式和工作流程時,請使用 。
- Azure 靜態 Web Apps:部署產生的靜態 Web 應用程式,例如 Blazor 和 React。
- Azure Functions Apps:無伺服器程式代碼或容器裝載。
平衡裝載
平衡 的裝載解決方案會平衡簡單起見的需求與控制需求。 您必須負責程式代碼和環境設定等功能。 Azure 會管理基礎運行時間和基礎結構,包括更新和修補程式。 您也可以將自己的容器帶入服務。 平衡裝載同時為 Azure 原生和雲端原生。
- Azure App 服務:完整服務Web裝載,包括語言運行時間、容器和自動化工作負載。
- Azure Container Apps:無伺服器容器裝載。
- Azure Spring Apps:將 Spring Boot 應用程式遷移至 Azure 雲端。
受控裝載
受控裝載 解決方案可讓您完全掌控基礎結構。 您必須負責更新和修補程式,以及您的程式代碼、資產和環境設定。 受控主機是雲端原生方法。
- Azure 虛擬機器:完全控制 VM。
- Azure Kubernetes Service:完全控制 Kubernetes 叢集。
原始程式碼裝載
對於想要開始 新開發的 Azure 新手開發人員,請使用下列圖表來尋找建議的裝載解決方案。
沒有程式代碼或低程序代碼
Azure 支援 無程式代碼解決方案是其 Azure-Cloud 方法的一部分。
- Logic Apps:使用具有預先建置作業的可視化設計工具,為您的企業和企業對企業案例開發工作流程。
- Power Automate ,例如 Power Apps:當您需要在 Microsoft 365 組織中自動化商務程式和工作流程時,請使用 。
程式代碼與容器
低程式代碼 裝載解決方案的設計可讓您攜帶程式代碼功能,而不需要管理應用程式基礎結構。
- Azure Static Web Apps:部署產生的靜態 Web 應用程式。
- Azure Functions:以支援的語言部署程式碼函式,而不需要管理應用程式基礎結構。
程式代碼優先 裝載解決方案是設計來裝載程式代碼。 您可以將程式代碼直接部署至裝載解決方案。
- Azure App 服務:完整服務Web裝載。
- Azure Spring Apps:Spring Boot 應用程式。
容器優先 裝載解決方案是設計來裝載容器。 服務提供容器特定的組態選項和功能。 您負責容器內所使用的計算。 主機容器從受控控件移至完全責任的服務,因此您只承擔所需的容器管理量。
Kubernetes 中心 協調流程裝載包括:
服務 | 焦點 | 使用 |
---|---|---|
Azure Kubernetes Service | 雲端原生 | 搭配使用組態檔和外部成品的宣告式方法,用於 Kubernetes 叢集。 |
Azure Service Fabric | Azure 原生 | 使用命令式方法,跨機器叢集部署微服務。 它提供程式設計模型,可讓開發人員撰寫描述系統所需狀態的程序代碼,而 Service Fabric 運行時間會負責讓系統符合該狀態。 |
預先設定的 容器裝載表示已為您預先設定協調流程選項。 您在容器或容器叢集之間通訊的能力可能需要額外的服務,例如 Dapr。
服務 | 使用 |
---|---|
Azure App Service | 完整服務 Web 裝載 |
Azure Spring Apps | Spring Boot 應用程式 |
Azure 容器應用程式 | 無伺服器容器裝載 |
Azure 容器執行個體 | 簡單、單一容器裝載 |
Azure 提供容器登錄來儲存和管理容器映像,或者您可以使用第三方容器登錄。
服務 | 使用 |
---|---|
Azure Container Registry | 當您建置和裝載自己的容器映射時,可使用原始程式碼認可和基底映射更新來觸發。 |
無伺服器
無 伺服器裝載解決方案的設計目的是要執行無狀態程序代碼,其中包含使用量型定價層,在不使用時會調整為零。
服務 | 使用 |
---|---|
Azure 容器應用程式 | 容器裝載。 |
Azure Functions | 程序代碼或容器裝載。 |
微服務
微服務裝載 解決方案的設計目的是執行小型獨立服務,這些服務會共同運作,以組成較大的應用程式。 微服務通常會部署為容器。
服務 | 使用 |
---|---|
Azure 容器應用程式 | 用於無伺服器容器化微服務。 |
Azure Functions | 用於無伺服器程式代碼或容器化微服務。 |
雲端邊緣
Cloud edge 是一個詞彙,用來指出雲端服務是否為使用者(用戶端)或應用程式(伺服器)帶來好處。
用戶端計算
用戶端計算 是在遠離 Azure 雲端的用戶端上執行的計算。 用戶端計算通常用於用戶端轉譯和客戶端處理,例如瀏覽器型或行動應用程式。
服務 | 使用 |
---|---|
Azure 靜態 Web 應用程式 | 用於使用用戶端轉譯的靜態 Web 應用程式,例如 React、Angular、Svelte、Vue 和 Blazor。 |
用戶端可用性
服務 | 使用 |
---|---|
Azure Front Door | 適用於所有因特網對應應用程式,為您的靜態和動態資產提供全域快取且安全的網路,包括 DDoS 保護、端對端 TLS 加密、應用程式防火牆和地理篩選。 |
伺服器計算
伺服器計算 資產是伺服器在提供給用戶端之前所處理的檔案。 動態資產是使用後端伺服器計算所開發,選擇性地與其他 Azure 服務整合。
服務 | 使用 |
---|---|
Azure App Service | 將此服務用於一般 Web 裝載。 這支援一組廣泛的功能 API 端點、完整堆疊應用程式和背景工作。 此服務隨附許多程式設計語言運行時間,以及從容器提供您自己的堆疊、語言或工作負載的能力。 |
Azure Functions | 使用此服務,針對來自 Azure 服務的 HTTP 端點或事件型觸發程式,以支援的語言提供您自己的程式碼。 |
Azure Spring Apps | 使用 來部署 Spring Boot 應用程式,而不需要變更程式代碼。 |
Azure 容器應用程式 | 用來在無伺服器平台上裝載受控微服務和容器化應用程式。 |
Azure 容器執行個體 | 針對不需要容器協調流程的簡單容器案例,請使用此選項。 |
Azure Kubernetes Service | 當您需要 Kubernetes 叢集時,請使用此服務。 管理叢集的控制平面會為您建立並免費提供。 |
伺服器端點管理
伺服器端點管理 是透過閘道管理伺服器端點及其計算的能力。 此閘道提供版本設定、快取、轉換、API 原則和監視等功能。
服務 | 使用 |
---|---|
Azure API 管理 | 當您將 REST、OpenAPI 和 GraphQL API 與 API 閘道產品化時,請使用此服務,包括配額和速率限制、驗證和授權、轉換和快取回應。 |
Azure 應用程式閘道 | 用於 區域負載平衡 (OSI 第 7 層)。 它可用來根據 URL 路徑或主機標頭來路由傳送流量,並支援 SSL 卸除、以 Cookie 為基礎的會話親和性,以及 Web 應用程式防火牆 (WAF) 功能。 |
Azure Front Door | 用於 全域負載平衡 (OSI 第 7 層),為您的靜態和動態資產提供全域快取且安全的網路,包括 DDoS 保護、端對端 TLS 加密、應用程式防火牆和地理篩選。 |
Azure 流量管理員 | 用於將 DNS (OSI 第 7 層) 的流量分散到整個全球 Azure 區域的公用面向應用程式。 流量管理員會使用 DNS,根據流量路由方法,將用戶端要求導向適當的服務端點。 它支援各種流量路由方法,例如優先順序、效能和地理路由。 它很適合用來管理多個區域或數據中心的流量。 |
自動化計算
自動化計算 是由事件自動化,例如計時排程或其他 Azure 服務,通常用於背景處理、批處理或長時間執行的進程。
服務 | 使用 |
---|---|
Power Automate | 當您需要自動化商務程式和工作流程時,請使用 。 |
Azure Functions | 當您需要根據排程執行程式碼,或回應其他 Azure 服務中的事件時,請使用 。 |
容器服務(Azure 容器執行個體、Azure Kubernetes Service、Azure Container Apps) | 用於標準可自動化工作負載 |
Azure Batch | 當您需要高效能自動化時, 請使用 。 |
混合式雲端
混合式雲端是一種運算環境,會將公司的內部部署私人雲端服務和第三方公用雲端連線到單一、彈性的基礎結構,以執行組織的應用程式和工作負載。
服務 | 使用 |
---|---|
Azure Arc | 當需要管理整個環境時,請使用雲端和內部部署資源,包括安全性、治理、清查和管理。 |
如果您不需要維護自己的基礎結構,您可以使用 Azure Stack HCI 在內部部署執行虛擬機。
高效能運算
高效能運算 (HPC) 是使用平行處理,以有效率、可靠且快速的方式執行進階應用程式程式。 此詞彙特別適用於在 Teraflop 以上運作或每秒 10^12 浮點運算的系統。
服務 | 使用 |
---|---|
Azure Batch | Azure Batch 可以建立和管理計算節點 (虛擬機器) 的集區、安裝所要執行的應用程式,以及排程要在節點上執行的作業。 開發人員可以將 Batch 當作平台服務使用,以建置需要大規模執行的 SaaS 應用程式或用戶端應用程式。 |
Azure BareMetal 實例 | 當您需要在具有作業系統、記憶體和網路根層級存取的非虛擬環境中執行時,請使用 。 |
Azure Quantum 工作區 | 當您需要開發和實驗量子演算法時,請使用 。 |
Microsoft Genomics | 用於符合 ISO 認證的 HIPAA 相容基因處理。 |
深入瞭解 Azure 上的高效能運算。
事件型計算
事件型計算 是由事件所觸發的計算,例如計時排程或其他 Azure 服務。 事件型計算通常用於背景處理、批處理或長時間執行的進程。
服務 | 使用 |
---|---|
Power Virtual Agents | 當您需要使用無程式代碼介面建立聊天機器人時,請使用 。 |
Azure Functions | 當您需要根據排程執行程式碼,或回應其他 Azure 服務中的事件時,請使用 。 |
Azure 服務匯流排 傳訊 | 當您需要分離應用程式和服務時, 請使用 。 |
CI/CD 計算
CI/CD 計算 是用來建置和部署應用程式的計算。
Service | 描述 |
---|---|
Azure DevOps | 使用 Azure DevOps 與 Azure 雲端緊密整合,包括裝載代理程式的驗證和授權,以建置和部署您的應用程式。 |
GitHub 動作 | 使用 GitHub Actions 來建置及部署 GitHub 存放庫應用程式。 使用 Azure CLI 在動作中安全地存取 Azure。 |
Azure 虛擬機器 | 如果您使用另一個 CI/CD 系統,您可以使用 Azure 虛擬機器 來裝載 CI/CD 系統。 |