Microsoft Azure

Microsoft Azure 是微軟的公用雲端服務 (Public Cloud Service) 平臺，是微軟線上服務 (Microsoft Online Services) 的一部份，自2008年開始發展，2010年2月份正式推出，目前全球有54座資料中心以及44個CDN跳躍點 (POP)，並且於2015年時被 Gartner 列為雲端運算的領先者。目前 Microsoft Azure 已包含30餘種服務，數百項功能，並且為微軟帶來了12億美元的獲利 (2015年度) 。發展歷程.Microsoft Azure 的發展最早源於2006年，由Amitabh Srivastava與Dave Culter所主導，當時雲端運算在市場上還沒有受到關注，微軟當時所需解決的問題是需要整合與提升線上服務的管理與運用能力，而提出的代號為Red Dog的計畫，該計畫要解決的是：經過數年的開發，Azure平臺於2010年2月正式推出公開服務版 (General Availability)，當時的名稱為 Azure Service Platform，包含 Azure Cloud Service、Azure Storage、SQL Azure 與 AppFabric 四種服務，且僅提供平臺服務 (PaaS) 一種。2010年下半年更新管理介面為Microsoft Silverlight開發的管理介面，並新增 VM Role (虛擬機器的前身)，以及 Azure Connect (Azure 虛擬網路的 VPN 連線的前身)。2012年是 Azure 發展的里程碑之一，共做了下列改變：2013~2014年加入 Hadoop 服務 (HDInsight)、Streaming Analytics (資料流分析)、資料工廠服務、事件中樞與機器學習等與大資料相關的服務，同時更新 SQL Azure 大幅提升效能。2014年微軟將 Windows Azure 更名為 Microsoft Azure，以修正其市場方向，也為了要讓外界不再認為 Azure 只能跑 Windows 作業系統 。2015年將 Website 與 Mobile Service 合併，並新增 API App 與 Logic App 合稱為 Azure App Services，並推出 Azure Redis Cache 取代原有的 Azure Shared Cache；推出 Azure Application Insights 以支援應用程式層級的監測資料能力；新增 Azure DNS 以支援 DNS 代管、Azure Search 支援搜尋能力等。2016年微軟推出 Azure Functions (函式服務) 以支援無伺服器 (Serverless) 的應用，成為繼 AWS Lambda 與 Google CloudFunction 之後的第三個具備無伺服器應用程式開發能力的主流雲端供應商，同時也推出了 Service Fabric 以支援微服務 (Microservices) 的開發。2022年12月，微軟宣佈禁止使用者使用Azure進行挖礦。目前 Azure 上的服務與功能仍然在增加中。基礎建設.Microsoft Azure是專為在微軟建設的資料中心管理所有伺服器，網路以及儲存資源所開發的一種特殊版本Windows Server作業系統，它具有針對資料中心架構的自我管理等，在Fabric Controller中被發揮得淋漓盡致，如此才能夠達成透過Fabric Controller來管理在資料中心中所有伺服器的能力。Microsoft Azure環境除了各式不同的虛擬機器外，它也為應用程式打造了分散式的巨量儲存環境，也就是Azure Storage，應用程式可以根據不同的儲存需求來選擇要使用哪一種或哪幾種儲存的方式，以儲存應用程式的資料，而微軟也盡可能的提供應用程式的相容性工具或介面，以降低應用程式移轉到Microsoft Azure上的負擔。Microsoft Azure不但是開發給外部的雲端應用程式使用的，它也作為微軟許多雲端服務的基礎平臺。Fabric Controller.Fabric Controller 是管理微軟資料中心的 Azure 運算資源的中控管理系統，扮演心臟的角色，它負責自動化的管理資料中心內所有的實體伺服器，包含由使用者要求的 Azure Guest OS 的部署工作，定時的Hotfix修補，機器狀態回報，以及管理不同版本的VM部署影像的複製等重要核心工作，Fabric Controller 本身也具有高可用性，並且有一個管理 Fabric Controller 的子系統來管理與監控 Fabric Controller 的運作。Fabric Controller也處理虛擬機器的健康管理時，Fabric Controller也負責即地更新的協調工作，以保持應用程式在更新時仍可保持SLA所承諾的服務水準。RDFE.RDFE (Red Dog's Front-End) 是 Azure 的前端介面，負責接取來自任何存取 Azure 的應用程式的命令，它是一組可控制與管理 Azure 服務的 REST APIs，對外接受應用程式的要求並回應，對內則是扮演大腦的角色，Azure 資源的配置策略與方式均是由 RDFE 所進行，包含虛擬機器的 Fault Domain (失效域) 與 Upgrade Domain (更新域) 的配置與計算都是由 RDFE 處理。網路基礎建設.Microsoft Azure 資料中心內部的架構自 2010 年正式上市開始就不斷的與日俱進，早期 Azure 使用的是 DLA 網路架構，採用多層次分層的設計方式，由資料中心的路由器 (Internet 邊界) 開始，接續第二層的存取路由器 (Access Router)，再接至第三層的聚合負載平衡器 (Aggregation Load Balancer)，最後到伺服器所在的伺服器機架頂的交換器 (Top-Of-Rack Switch)，雖然符合早期雲端所需要的網路建設作法，但問題在於它並沒有網路備援能力，當問題發生在主要節點如第二層或第三層的裝置時，伺服器將無法與外界連繫，使服務中斷，且使用 DLA 網路架構下的資源配置極限為 10000 臺實體伺服器，頻寬為 120GB (平均一臺只有 0.012GB 流量)，無法供給充足的網路頻寬與效能給資料中心內的資源使用。2012 年起，微軟開始建構新的第二代資料中心網路建設，採用平滑化網路拓樸 (Flat Network Topology) 設計，代號為 Quantum10，其理論 1952 年的 ，在每個網路裝置間都採用了網狀的連線，亦即每個裝置彼此之間都有備援能力，而且配置適當的網路節點裝置，可以提供更大量的頻寬與資源配置，Quantum10 的第一代可供應 30000 臺伺服器 30000GB 的流量 (平均一臺 1TB 流量)。2013年更提升至 Quantum10 v2，可支援在不同服務群集 (例如運算群集與儲存群集) 之間的網路通訊，基於 Leaf-Spine 網路拓樸 的特性，不論是走哪一條通訊路徑，其成本都是等價 (Equal-Cost Multipath, ECMP)，用來減少因網路擴充套件生成樹 (Spanning Tree) 產生的網路負擔，其資源供應可跨越不同群集，頻寬也提升到 50000GB。隨著 Azure 服務愈來愈多元，其服務共用網路基礎建設已經變成常態，為了要讓各服務可順暢存取網路功能 (例如與 Azure 虛擬網路的整合)，微軟開始發展適用於資料中心的網路相關技術，並設計相關輔助資源。2015年微軟在 提出了數個重要設計成果 ：服務位置.Microsoft Azure 目前於全球有54個資料中心 (另有6個正興建中)，以及44個 CDN 跳躍點 ，以提供全球使用者所需的資源。但因為當地法規與行政的要求，因此並不是所有的使用者都能使用所有的區域，目前 Azure 服務區域有分為三種：管理模式.Microsoft Azure 早期開發時，使用的是以服務為主體的管理方式，稱為服務管理模式 (Azure Service Management, ASM)，其管理觀點是依服務來區分，這個模式在目前的 Azure Portal (2012年釋出的管理介面) 以及 Azure PowerShell、Azure CLI 等都支援，也是 RDFE 一開始就支援的 API，服務管理的好處是以服務為主體，其管理方式環繞著服務，在小型應用 (使用的資源種類很少時) 相當方便，但當服務愈來愈多種，應用也愈來愈大 (橫跨多種服務的應用) 時，這樣的方法反而會導致管理上的不便。為了改良服務管理模式的缺點，微軟在 2014 年提出了資源管理 (Azure Resource Management, ARM) 的新模式，其管理觀點是依資源來區分，應用程式的資源可組織在同一個或不同的群組，管理人員可以利用資源群組 (Resource Group) 來組織資源以及使用資源的服務 (例如虛擬機器會使用到網路卡、網路安全群組、公開IP、負載平衡器與虛擬網路等資源)。資源管理模式適當中大型的應用，但小型應用也同樣適合。資源管理模式由 Azure Ibiza Portal (2015年公開服務的新管理介面)、Azure PowerShell v1.0 起、Azure CLI v1.0 起適用。資源管理模式同時也引入了資源範本 (Resource Template) 的概念，允許管理人員一次部署多種或大量服務與資源，微軟也提供了 Azure Quickstart Template 供入門的系統管理人員使用。服務.Microsoft Azure 現已包含 30 餘種服務，以及數百項功能，針對雲端以及物聯網與大資料等所需要的各型別服務提供。運算服務.運算服務是以 Azure 內的伺服器群經過虛擬化後形成的大量虛擬機器 (Virtual Machine) 所組成的服務群，其主要功能是提供 CPU、記憶體等具有運算能力的資源。在 Azure 中的運算資源分成 IaaS 與 PaaS 兩種：應用服務.Microsoft Azure 為了要有效降低將應用程式移植到雲端所需的負擔，微軟在 2012 年度的 Spring Release 中首次釋出了 Azure Website 服務，支援 .NET 以及像 PHP、Java、Python、Ruby、node.js 等非微軟平臺，成功吸引開發網站的 Web 開發人員以及企業將其網站移轉到 Azure，Azure Website 為 Virtual Machine 以外最受歡迎的 PaaS 服務。同年底，微軟也發布了為行動應用程式 (Mobile App) 提供後臺支援的 Mobile Service，以簡單的管理機制與充份的 SDK 支援吸引行動應用開發人員使用，這兩個服務在 2015 年時合併為 Azure App Service，並加入了發展 RESTful API 應用的 API App 以及以視覺化設定執行流程控制的 Logic App。為了要支援大型應用程式的發展，微軟在 Azure 發布初期就提供了 AppFabric 服務，包含 Access Control Service 以及 Service Bus 功能，Access Control Service 負責統一帳戶管理機制，後期也引入了 Social Identity 的功能，可與 Facebook, Google 等社群連結並共用其帳戶；Service Bus 則是提供了訊息轉送 (Message Relay)、佇列 (Queue) 與主題訂閱 (Topics) 的功能，隨後也加入了 Notification Hub 以支援對行動裝置平臺的訊息傳送功能。儲存服務.儲存資料是一個平臺服務最基本的要求，Azure 在開發初期就提供了基本的儲存 (Azure Storage) 與關聯式資料庫 (SQL Azure)，儲存服務提供了 Blob、Table 和 Queue 分別管理非結構化資料、結構化資料與訊息通訊，2014年新增 File 服務，以支援在雲端虛擬機器間的快速資料共享。資料庫服務 SQL Azure 為 SQL Server as a Service，提供大部份在地端的 SQL Server 資料庫的能力，2013 年微軟將 SQL Azure 正名為 Azure SQL Database，以提升品牌識別度，2014 年新增依交易量計費的 DTU 模式，以及新一代資料庫引擎 V12，強化資料庫的功能與效率，2015 年更提出了許多資料庫的企業級應用，如 Elastic Pooling、SQL Data Warehouse 與和 SQL Server 2016 配合的 SQL Database Strerch Database 功能，使 SQL Database 更適合企業的應用。2017 年將 Database as a Service 擴大支援 MySQL 與 PostgreSQL 等資料庫系統，2018 年新增依虛擬核心數計費的 vCore 模式，讓使用者更容易對應在原本伺服器環境的硬體規格。Azure Search 是微軟為提升雲端資料檢索的功能而於 2014 年提供，搭配 Azure DocumentDB 實作出的資料檢索服務。Azure Redis Cache 為微軟基於 Redis 開源專案所發展的分散式快取服務，用以取代 2011 年的 Azure Shared Cache 以及 2012 年提出的 Azure Role-based Cache 服務，由於 Redis Cache 適用於許多平臺與框架，使得 Azure Redis Cache 更容易被大眾接受以作為分散式快取基礎建設。Azure Cosmos DB 是微軟於 Build 2017 所宣佈的新型 NoSQL 資料庫服務，可同時支援鍵值對 (Key-Value)、檔案 (Document)、Column Family 與圖形 (Graph) 等資料結構，並同時支援 Azure Table API, Mongo API, Cassandra API, DocumentDB SQL 與 Graph API 等不同的存取方式。分析服務.分析服務是 Microsoft Azure 一系列支援大資料與機器學習等與資料分析相關的服務集合，由資料的獲取，分析到儲存都有完整的解決方案。網路服務.網路服務是 Microsoft Azure 對外通訊與內部各類服務之間的資料通訊基礎建設，也是 Azure IaaS 的重要成員之一。Azure 虛擬網路可允許組織或企業在雲端建置自己的網路基礎建設，包含子網路、IP配置、負載平衡器與網路安全原則等，同時可以建置 VPN 以串連企業網路與其他區域的虛擬網路，也可以利用 P2S VPN 串接個人使用者端與虛擬網路。為了要加速網路速度、隔離使用者與 Internet 網路環境，Azure 提供 ExpressRoute 給使用者以支援專屬性 (Dedicated) 的 Azure 資料中心間通訊。對於具全球性的大型服務，Azure Traffic Manager 可協助發展大規模的負載平衡解決方案，將使用者導向到全球各地離其最近的資料中心，並且也可支援跨區域性的備援重導向。身份識別與存取管理服務.Azure AD (Active Directory) 是 Microsoft Azure 上主要的身份識別與存取服務，是基於 HTTP 之業界標準 OAUTH 2.0 與 OpendID 協定的雲端身分驗證服務，由於傳統使用 LDAP/Kerberos 驗證協定的 Windows Server Active Directory 不易用於網際網路與行動裝置環境上身分驗證，因此微軟提供 Azure AD Connect 服務以處理 Windows Server Active Directory  Azure Active Directory 的帳戶同步功能。Azure AD 也提供了多重要素驗證 (Multi-Factor Authentication) 能力以支援需要多重方法驗證的應用，Azure AD 的應用程式連結功能則提供了軟體服務 (SaaS) 整合所需的身份驗證能力。Azure AD 提供 Azure AD B2C 服務讓應用程式可以利用多種網際網路上常用之身分驗證機制 (例如 Microsoft Account，Google ID ，Facebook ID 等) 來進行進行身分驗證，也提供 Azure AD 網域服務以減少企業在雲端 Azure 環境內部署 Windows Server AD 網域控制站成本。開發人員服務.為支援 Web App 與行動 App 的記錄、使用者行為追蹤與網路監控等需求，Azure 提供 Application Insights 可供開發人員實作所需的記錄功能，Application Insights 也可作為協助監控網站存活的輔助服務。Azure DevOps 提供雲端的版本控制、自動化建造、自動化測試與部署等軟體工程流程服務。Azure App Center 可協助處理行動 App 內的使用者回報，包含當機回報與使用者意見回饋等。管理服務.管理服務是 Microsoft Azure 提供給 IT 與網路管理能力的服務。法規與規範認證.Microsoft Azure 目前已經透過包含政府機構與產業標準數十項法規與規範的認證，以允許政府機關使用 Microsoft Azure，或是認可 Microsoft Azure 在資訊安全上的努力 。其他.」在英語意思為「天藍色」。）介紹Windows Azure服務。工具.Microsoft Azure 在早期只能使用 Web-based 管理工具存取，在 2012 年開始提供 PowerShell 指令介面，並進一步於 2013 年起開始提供指令介面，以支援非 Windows 作業系統的使用者 (Azure CLI)，而微軟也開放了服務管理介面 (RDFE 的 API) 供開發人員使用，因此能管理與存取 Microsoft Azure 的工具相當多。