---
# System prepended metadata

title: '<font style="font-weight: 200;">Microsoft Azure</font>'
tags: [Azure, Microsoft, License]

---

<font style="font-weight: 200;">Microsoft Azure</font>
===
###### tags: `License` `Microsoft` `Azure`
> 文章擷取出處：[測驗 AZ-900: Microsoft Azure Fundamentals](https://docs.microsoft.com/zh-tw/learn/paths/az-900-describe-cloud-concepts/)
>[name=Microsoft]  [time=2021 04 17][color=#00754A]


第1部分：描述核心 Azure 概念
---
## 1-1：Azure 基礎簡介

雲端運算其為透過網際網路傳遞的運算服務，這些服務包括伺服器、儲存體、資料庫、網路、軟體、分析和情報。

雲端運算使用隨用隨付價格模型，透過網際網路傳遞計算服務。
* 降低營運成本。
* 更有效率地執行基礎結構。
* 隨業務需求變化調整規模。

DevOps，您即可建立「組建」及「版本」管線，為應用程式提供持續整合、傳遞和部署

---

## 1-2：討論 Azure 基礎概念
雲端運算優勢：高可用性、延展性、彈性、靈活度、地理位置散發、災害復原。

支付費用以使用量為基礎：
 (**CapEx資本支出**)預先在實體基礎結構上花費、**(OpEx營運費用**)服務或產品的花費。

雲端服務模型：
**IaaS 基礎結構即服務 、 PaaS 平台即服務 、 SaaS 軟體即服務。**

![](https://i.imgur.com/ey7ilKw.png =600x)
![](https://i.imgur.com/0IZWua2.png =600x)

無伺服器運算與：
PaaS 相似，雲端服務提供者可自動佈建、調整及管理執行程式碼所需的基礎結構。

雲端服務類型：
公用雲端 、 私人雲端 、 混合式雲端。

---


## 1-3：描述核心 Azure 架構元件
![](https://i.imgur.com/c03YejU.png =600x)


Azure 資源是透過 Azure 提供的可管理項目。 虛擬機器 (VM)、儲存體帳戶、Web 應用程式、資料庫與虛擬網路都是資源的範例。

訂用帳戶界限類型：
計費界限 、 存取控制界限。

訂用帳戶區分：
環境(訂用帳戶來設定個別環境以用於開發、測試及安全性)
組織結構 、 計費

![](https://i.imgur.com/dmLQ0T6.png =600x)


管理群組和訂用帳戶的階層
![](https://i.imgur.com/dSo6r3K.png =600x)


資源：透過 Azure 提供的可管理項目。 虛擬機器 (VM)、儲存體帳戶、Web 應用程式、資料庫與虛擬網路都是資源的範例。
資源群組：保存 Azure 解決方案相關資源的容器。 資源群組包含想要以群組形式管理的資源。

Azure 資源群組：邏輯群組、生命週期、授權、Azure Resource Manager。
![](https://i.imgur.com/1XGX2wh.png =600x)

**Azure 可用性區域**
可用性區域已設為「隔離界限」。 如果一個區域故障，另一個區域會繼續運作。 可用性區域會透過高速的私人光纖網路連線。

### 區域配對
單一區域內最少會有三個區域。 大型災害還是可能導致中斷，而足以影響兩個資料中心。 這就是為什麼 Azure 也會建立「區域組」的原因。

區域配對的其他優勢：
* 若發生廣泛的 Azure 中斷，則會優先處理每個配對中的一個區域，以確保至少會針對該區域配對中裝載的應用程式盡可能快速地還原其中一個區域。
* 計劃性 Azure 更新會以逐區域的方式推出到配對的區域，以將停機時間縮到最短並將應用程式中斷風險降到最低。
* 資料會繼續駐留在與其配對相同的地理位置內 (巴西南部除外)，以符合稅務和執法管轄區的要求。

### <font color="#00754A">App Service</font>
是以 HTTP 為基礎的服務，為可供建置及裝載多種類型的 Web 型解決方案，而不需要管理基礎結構。 例如，您可以用數種支援的程式設計語言來裝載 Web 應用程式、行動後端與 RESTful API。 以 .NET、.NET Core、JAVA、Ruby、Node.js、PHP 或 Python 開發的應用程式，可以在 Windows 和 Linux 架構的環境中，輕鬆地執行和調整規模。

### <font color="#00754A">Azure Marketplace </font>
是線上商店，其裝載經認證及最佳化可在 Azure 中執行的應用程式。

> #### 知識檢定
> * 管理群組會在訂用帳戶的範圍層級中，協助將 Azure 資源的階層排序轉換成集合。 可將不同的治理條件套用至每個管理群組 (包含 Azure 原則與 Azure 角色型存取控制)，以有效率地管理 Azure 訂用帳戶。 指派到管理群組內的所有訂用帳戶，都會自動繼承套用至管理群組的條件。
> * Azure 訂用帳戶是 Azure 服務的邏輯單元，其會連結到 Azure 帳戶。
> * 資源群組無法進行巢狀處理。
> * 訂用帳戶是一組繫結在一起的 Azure 服務，其可用於追蹤及計費。

---

第2部分：描述核心 Azure 服務
---
## 2-1：探索 Azure 資料庫與分析服務

### <font color="#00754A">Azure Cosmos DB</font>
每一家公司都有多組開發人員，其使用不同的資料庫服務與各種 API 來使用其資料。 長期計劃可能是最終將所有不同資料移動到通用的資料庫服務。 不過，現在您想要讓每個小組都能利用可使用現有技能的環境。 幸運的是，Azure Cosmos DB 可以協助您。
![](https://i.imgur.com/gOi6gvN.png)

具備彈性。 在最低層級，Azure Cosmos DB 會以「原子-記錄-序列」(ARS) 格式儲存資料。 接著，會將該資料抽象化並以 API 的形式，投影成您建立資料庫時所指定的 API。 選擇包括 SQL、MongoDB、Cassandra、Tables 與 Gremlin。 這種彈性表示，在您將公司的資料庫移轉至 Azure Cosmos DB 時，開發人員可繼續使用他們最熟悉的 API。

### <font color="#00754A">Azure SQL Database</font>
Azure SQL Database 是關聯式資料庫，以最新的 Microsoft SQL Server 資料庫引擎穩定版本為基礎。 SQL Database 是一種高效能、可靠、完全受控且安全的資料庫。 您可以使用所選擇的程式設計語言來建置資料導向的應用程式和網站，無需管理基礎結構。
![](https://i.imgur.com/wp7JEyz.png)
Azure SQL 資料庫是平台即服務 (PaaS) 資料庫引擎。 其會處理大部分的資料庫管理功能，例如升級、修補、備份和監視，無需使用者介入。 SQL Database 提供 99.99% 的可用性。 內建於 SQL Database 中的 PaaS 功能，可讓您專注在對企業至關重要的特定領域資料庫系統管理與最佳化活動。 SQL Database 是完全受控的服務，其具有內建的高可用性、備份與其他一般維護作業。 Microsoft 會負責 SQL 和作業系統程式碼的所有更新。 您不需要管理基礎結構。


### <font color="#00754A">Azure SQL 受控執行個體</font>
* 平台即服務 (PaaS) 資料庫引擎
* 可調整的雲端資料服務，提供最廣泛的 SQL Server 資料庫引擎相容性
* Azure SQL Database 與 Azure SQL 受控執行個體提供許多相同功能；不過，Azure SQL 受控執行個體提供數個 Azure SQL Database 可能未提供的選項。
![](https://i.imgur.com/cPeCpgs.png)


### <font color="#00754A">MySQL 的 Azure 資料庫</font>
Tailwind Traders 目前管理數個使用 LAMP 堆疊 (Linux、Apache、MySQL、PHP) 的網站內部部署。 作為規劃移轉策略的一部分，不同的 Tailwind Traders 小組已經在研究 Azure 提供的可用服務供應項目。 您已經了解 Azure App Service 的 Web Apps 功能會提供內建功能，來建立在執行 Apache 的 Linux 伺服器上使用 PHP 的 Web 應用程式。 您負責調查在移轉至 Azure 後，是否還能繼續符合 Web 開發小組的資料庫需求。


**Azure Database for MySQL 提供：**
* 內建高可用性但沒有任何額外成本。
* 可預測的效能，以及全包的隨用隨付定價。
* 視需要在幾秒內進行縮放。
* 保護待用及移動中敏感性資料的能力。
* 自動備份。
* 企業級安全性與合規性。

![](https://i.imgur.com/5q8j6qq.png)


### <font color="#00754A">PostgreSQL 的 Azure 資料庫</font>
**適用於 PostgreSQL 的 Azure 資料庫會提供下列優點：**

* 內建的高可用性 (相較於內部部署資源)。 無需額外的設定、複寫或成本，即可確保應用程式一律可供使用。
* 簡單且彈性的定價。 您可以根據所選定價層預測效能，其中，定價層的選擇包括軟體修補、自動備份、監視和安全性。
* 視需要在幾秒鐘內擴大或縮小。 您可以視需要獨立地調整計算或儲存體，以確保服務可做出相應調整來符合使用量。
* 最多 35 天的可調式自動化備份和時間點還原。
* 企業級安全性和合規性，可保護待用和移動中的敏感性資料。 此安全性涵蓋磁碟上的資料加密，以及用戶端和伺服器通訊間的 SSL 加密。


適用於 PostgreSQL 的 Azure 資料庫可使用兩個部署選項：**單一伺服器** 與 **超大規模 (Citus)**。

**單一伺服器** 部署選項可提供：
* 內建高可用性，無需任何額外成本 (99.99% SLA)。
* 可預測的效能，以及全包的隨用隨付定價。
* 在幾秒內就能完成的隨需垂直縮放。
* 監視和警示以評估您的伺服器。
* 企業級安全性與合規性。
* 保護待用及移動中敏感性資料的能力。
* 最多 35 天的自動備份和指定時間點還原。

單一伺服器部署選項提供三個定價層：「基本」、「一般用途」及「記憶體最佳化」。 

**超大規模資料庫 (Citus)**
超大規模 (Citus) 選項可透過使用分區化來水平調整多部電腦上的查詢。 其查詢引擎可平行處理從這些伺服器傳入的 SQL 查詢，以提升大型資料集的回應速度。 其可為需要更大規模和效能的應用程式提供服務，這些工作負載通常有逼近或已超過 100 GB 的資料。


可提供巨量資料和分析解決方案，包括 Azure Synapse Analytics、Azure HDInsight、Azure Databricks 和 Azure Data Lake Analytics。

> #### 知識檢定
> 開發小組對撰寫善加運用 Gremlin API 的圖表型應用程式有興趣。 哪一個選項適用於此案例？Azure Cosmos DB 支援 SQL、MongoDB、Cassandra、Tables 與 Gremlin API。
> 
> Tailwind Traders 會為數個自身網站使用 LAMP 堆疊。 哪一個選項適用於移轉？適用於 MySQL 的 Azure 資料庫是現有 LAMP 堆疊應用程式其邏輯選擇。
> 
> Tailwind Traders 想進行分析的記錄項目多達數百萬筆。 哪一個選項適用於分析？
> Azure Synapse Analytics 是分析大量資料的合理選擇。

LAMP是四套系統的縮寫：Linux、Apache、MySQL、PHP

---

## 2-2：探索 Azure 計算服務

Azure 也有許多可以執行虛擬機器 (VM) 的服務。 一些最重要的服務為：
* Azure 虛擬機器
* Azure Container Instances
* Azure App Service
* Azure Functions (或無伺服器計算)

### <font color="#00754A">Azure 虛擬機器</font>
您可以在雲端中建立及使用 VM。 虛擬機器提供基礎結構即服務 (IaaS)，而且能以不同的方式使用。 當您需要完全控制作業系統與環境時，VM 會是理想的選擇。 如同實體電腦，您可以自訂在 VM 上執行的所有軟體。 當執行自訂軟體或自訂裝載設定時，此功能會相當有幫助。

### <font color="#00754A">虛擬機器擴展集</font>
可供用來部署和管理一組完全相同的 VM。 在所有 VM 設定都相同的情況下，虛擬機器擴展集的設計用途為支援完全自動調整。 無須預先佈建 VM。 因此，這可讓您更輕鬆地針對大量計算、巨量資料與容器化工作負載建置大規模服務。 當需求增加時，可以新增更多 VM 執行個體。 當需求減少時，可以移除 VM 執行個體。 這項程序可以是手動、自動，或兩者的組合。

### <font color="#00754A">容器執行個體與Azure Kubernetes Service </font>
為您可用於部署及管理容器的 Azure 計算資源。 容器是輕量型虛擬化應用程式環境。 其設計用途為動態地快速建立、擴增及停止。 您可在單一主機電腦上執行容器化應用程式的多個執行個體。

### <font color="#00754A">Azure App Service</font>
可供快速地建置、部署及調整在任何平台上執行的企業級 Web、行動與 API 應用程式。 您可以在使用完全受控的平台執行基礎結構維護的情況下，符合嚴格的效能、延展性、安全性及合規性需求。 App Service 為平台即服務 (PaaS) 供應項目。

### <font color="#00754A">Azure Functions</font>
若您只在意服務上執行的程式碼，而不在意基礎平台或基礎結構，則函式會是理想的選擇。 通常，您會在需要執行工作以回應事件 (一般是透過來自其他 Azure 服務的 REST 要求、計時器或訊息)，且該工作可快速完成 (幾秒或更短的時間內) 的情況下使使用。

### <font color="#00754A">Azure 虛擬機器</font>
* 完全控制作業系統 (OS)。
* 執行自訂軟體的能力。
* 使用自訂裝載設定。

**使用 VM 時機的範例**
* 在測試及開發期間。
* 在雲端執行應用程式時。
* 將您的資料中心延伸到雲端時。
* 在災害復原期間。

### <font color="#00754A">使用 VM 移至雲端</font>
VM 也是從實體伺服器移至雲端 (又稱為「隨即轉移」) 的最佳選擇。 您可以建立實體伺服器的映像，並在幾乎或完全不變更的情況下，將其裝載在 VM 內。 如同實體內部部署伺服器一般，您也必須維護 VM。 您必須更新已安裝的 OS 與其執行的軟體。

### <font color="#00754A">在 Azure 中調整 VM</font>
可以搭配多個 VM 以提供高可用性、可擴縮性與備援。 無論您的執行時間需求為何，Azure 都有數個可以滿足這些需求的功能。 這些功能包括：
* 虛擬機器擴展集
* Azure Batch

### <font color="#00754A">虛擬機器擴展集</font>
虛擬機器擴展集可讓您建立及管理一組完全相同且已負載平衡的 VM。 擴展集可讓您在數分鐘內集中管理、設定及更新大量的 VM，以提供高度可用的應用程式。

### <font color="#00754A">Azure Batch</font>
* 為您啟動計算 VM 的集區。
* 安裝應用程式及暫存資料。
* 執行具有您所有工作的作業。
* 找出失敗。
* 將工作重新排入佇列。
* 在工作完成時縮小集區。

### <font color="#00754A">管理容器</font>
容器是虛擬化環境。 非常類似於在單一實體主機上執行多部虛擬機器，您可以在單一實體或虛擬主機上執行多個容器。 與虛擬機器不同的是，您無須管理容器的作業系統。
容器是透過容器協調器進行管理，可視需要啟動、停止和擴充應用程式執行個體。 在 Azure 中管理 Docker 與 Microsoft 容器的方式有兩種：Azure 容器執行個體與 Azure Kubernetes Service (AKS)。

### <font color="#00754A">Azure 容器執行個體(Azure Container Instances)</font>
提供最簡單快速的方法，因而無需管理任何虛擬機器或採用其他服務，即可在 Azure 中執行容器。 此為平台即服務 (PaaS) 供應項目，其可供上傳容器並加以執行。

### <font color="#00754A">Azure Kubernetes Service</font>
對大量容器進行自動化、管理及互動的工作稱為「協調流程」。 Azure Kubernetes Service 是一個完整的協調流程服務，適用於具有分散式架構的容器與大量容器。 協調流程是將大量容器和其互動方式自動化並加以管理的工作流程。

### <font color="#00754A">Azure App Service</font>
可讓您使用所選程式設計語言建置及裝載 Web 應用程式、背景作業、行動後端，以及 RESTful API，無須管理基礎結構。 它提供自動調整規模及高可用性。 App Service 支援 Windows 與 Linux，並允許從 GitHub、Azure DevOps 或任何 Git 存放庫進行自動化部署，以支援持續部署模型。

**最常見的應用程式服務樣式，例如：**
* Web 應用程式
* API 應用程式
* WebJobsWebJobs
* 行動應用程式

### <font color="#00754A">Web 應用程式</font>
透過使用 ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP 或 Python，包括裝載 Web 應用程式的完整支援。 您可以選擇 Windows 或 Linux 作為主機作業系統。

### <font color="#00754A">API 應用程式</font>
非常類似於裝載網站，您可以透過使用所選的語言與架構，建置 REST 式 Web API。 您會取得完整 Swagger 支援，以及在 Azure Marketplace 中封裝及發佈 API 的能力。 所產生的應用程式可由所有以 HTTP 或 HTTPS 為基礎的用戶端取用。
### <font color="#00754A">WebJobsWebJobs</font>
可以使用 WebJobs 功能，在與 Web 應用程式、API 應用程式或行動應用程式相同的內容中執行程式 (.exe、Java、PHP、Python 或 Node.js) 或指令碼 (.cmd、.bat、PowerShell 或 Bash)。 您可以將其排程，或透過觸發程序來執行。 Web 工作通常是用來以應用程式邏輯之一部分的形式執行背景工作。
### <font color="#00754A">行動應用程式</font>
* 將行動應用程式資料儲存在雲端式 SQL 資料庫中。
* 針對常見的社交提供者 (例如 MSA、Google、Twitter 與 Facebook)，對客戶進行驗證。
* 傳送推播通知。
* 執行以 C# 或 Node.js 撰寫的自訂後端邏輯。
* 
**App Service 會負責您在裝載可透過 Web 存取的應用程式時，所處理的大部分基礎結構決策：**
* 已將部署與管理整合至平台中。
* 可以保護端點。
* 可以快速地調整網站以處理高流量負載。
* 內建的負載平衡與流量管理員會提供高可用性。

### <font color="#00754A">Azure Functions</font>
無伺服器計算是伺服器、基礎結構與作業系統的抽象概念。 透過無伺服器計算，Azure 會處理伺服器基礎結構的管理，並依據需求對資源進行配置與解除配置。 基礎結構並不是您的責任。 擴縮與效能都會由系統自動處理。 您只需為您所使用的確切資源支付費用。 甚至不需要保留容量。

若您只在意執行服務的程式碼，而不在意基礎平台或基礎結構，使用 Azure Functions 會是理想的選擇。 通常，您會在需要執行工作以回應來自其他 Azure 服務的事件 (通常透過 REST 要求)、計時器或訊息，而且在該工作可於幾秒或更短時間內快速完成的情況下，使用函式。

**無伺服器計算：**
* 伺服器的抽象化
* 事件驅動規模調整
* 微計費

### <font color="#00754A">Azure Logic Apps</font>
類似於函式。 兩者都可讓您依據事件來觸發邏輯。 函式執行程式碼，而邏輯應用程式執行的則是專為將商務案例自動化所設計，並從預先定義邏輯區塊建置的工作流程。

**例如，假設有票證抵達 ZenDesk。 您可以：**
* 使用認知服務來偵測該訊息的意圖。
* 在 SharePoint 中建立項目以追蹤問題。
* 若客戶不在您的資料庫中，則將其新增至您的 Dynamics 365 CRM 系統。
* 傳送追蹤電子郵件以確認其要求。

Functions 和 Logic Apps 都可以建立複雜的協調流程。 協調流程是函式或步驟的集合，可執行以完成複雜的工作。

* 使用 Functions 即可撰寫程式碼來完成每個步驟。
* 使用 Logic Apps 即可透過 GUI 來定義動作，以及動作之間的關聯性。


|          | Functions | Logic Apps |
| -------- | -------- | -------- |
| 狀態     | 通常是無狀態，但 Durable Functions 會提供狀態。| 具狀態。|
| 部署     | 程式碼優先 (命令式)。| 設計工具優先 (宣告式)。|
| 連接性     | 約有十幾個內建繫結類型。 撰寫自訂繫結的程式碼。| 大量連接器。 適用於 B2B 案例的企業整合套件。 建置自訂連接器。|
| 動作   | 每個活動都是 Azure 函式。 撰寫活動函式的程式碼。| 大量現成的動作。|
| 監視     | Azure Application Insights。| Azure 入口網站、Log Analytics。|
| 管理性     | REST API、Visual Studio。| Azure 入口網站、REST API、PowerShell、Visual Studio。|
| 執行內容    | 可以在本機或雲端中執行。| 只可在雲端中執行。|

### <font color="#00754A">Windows 虛擬桌面</font>
在雲端上執行的桌面與應用程式虛擬化服務。Windows 虛擬桌面可在 Windows、Mac、iOS、Android 與 Linux 等裝置上運作。 其適用於您可以用來存取遠端桌面與應用程式的應用程式。 您也可以使用大部分的新式瀏覽器，獲得託管於 Windows 虛擬桌面的體驗。

**優點：**
* 提供最佳的使用者體驗。使用者設定檔是使用 FSLogix 來加以容器化，所以使用者可以快速地登入 Windows 虛擬桌面。 
* 增強安全性。反向連線技術來改善安全性。 此連線類型比遠端桌面通訊協定更安全。

**主要功能：**
* 簡化的管理。您會使用 Azure AD 與 RBAC 來管理資源的存取權。 透過 Azure，您也會取得可將 VM 部署自動化、管理 VM 更新及提供災害復原的工具。
* 效能管理。主機集區 是將相同設定指派給多名使用者的 VM 集合。 
* 多工作階段 Windows 10 部署。 

**降低費用：**
* 只要自備 Windows 或 Microsoft 365 授權，即可免費使用 Windows 虛擬桌面。
* 節省計算費用相較於隨用隨付定價，購買一或三年期 Azure 保留的虛擬機器執行個體，最多可省下 72% 的費用。 

> #### 知識檢定
> * 可以部署哪項 Azure 計算資源，以管理一組相同的虛擬機器？
> 虛擬機器擴展集可供部署和管理一組相同的虛擬機器。
> * 當工作需要在幾秒內回應事件 (通常透過 REST 命令) 為優先考量事項時，應使用下列哪一項服務？
> 當需要執行工作以回應事件 (一般是透過來自其他 Azure 服務的 REST 要求、計時器或訊息)，且該工作可快速完成 (幾秒或更短的時間內) 時，即可使用 Azure Functions。
> * 公司有一組遠端工作者需要使用 Windows 軟體來開發公司的應用程式，但是小組成員使用 MacOS、Linux 和 Windows 等各種作業系統。 哪一項 Azure 計算服務有助於解決此案例？
> Windows 虛擬桌面可供小組成員在雲端中執行 Windows，並可存取所需應用程式以滿足公司的需求。


## 2-3：探索 Azure 儲存體服務
* Azure Blob 儲存體
* Azure 磁碟儲存體
* Azure 檔案儲存體
* Azure Blob 存取層