發展歷程
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) 的開發。
目前 Azure 上的服務與功能仍然在增加中。
2017年9月26日,在美國弗羅里達州奧蘭多市舉辦的Ignite會議上,微軟公司宣布旗下Azure雲平台會推出一系列新功能和更新,用戶可以訪問全新人工智慧服務和成本管理功能等。
基礎建設
Microsoft Azure是專為在微軟建設的數據中心管理所有伺服器,網路以及存儲資源所開發的一種特殊版本Windows Server作業系統,它具有針對數據中心架構的自我管理(autonomous)機能,可以自動監控劃分在數據中心數個不同的分區(微軟將這些分區稱為Fault Domain)的所有伺服器與存儲資源,自動更新補丁,自動運行虛擬機部署與鏡像備份(Snapshot Backup)等能力,Microsoft Azure被安裝在數據中心的所有伺服器中,並且定時和中控軟體Microsoft Azure Fabric Controller進行溝通,接收指令以及回傳運行狀態數據等等,系統管理人員只要通過Microsoft Azure Fabric Controller就能夠掌握所有伺服器的運行狀態,Fabric Controller本身是融合了很多微軟系統管理技術的總成,包含對虛擬機的管理(System Center Virtual Machine Manager),對作業環境的管理(System Center Operation Manager),以及對軟體部署的管理(System Center Configuration Manager)等,在Fabric Controller中被發揮得淋漓盡致,如此才能夠達成通過Fabric Controller來管理在數據中心中所有伺服器的能力。
Microsoft Azure環境除了各式不同的虛擬機外,它也為應用程式打造了分散式的巨量存儲環境(Distributed Mass Storage),也就是Azure Storage,應用程式可以根據不同的存儲需求來選擇要使用哪一種或哪幾種存儲的方式,以保存應用程式的數據,而微軟也儘可能的提供應用程式的兼容性工具或接口,以降低應用程式移轉到Microsoft Azure上的負擔。
Microsoft Azure不但是開發給外部的雲應用程式使用的,它也作為微軟許多雲服務的基礎平台。
Fabric Controller
Fabric Controller 是管理微軟數據中心的 Azure 計算資源的中控管理系統,扮演心臟的角色,它負責自動化的管理數據中心內所有的實體伺服器,包含由用戶要求的 Azure Guest OS 的部署工作,定時的Hotfix修補,機器狀態回報,以及管理不同版本的VM部署視頻的複製等重要核心工作,Fabric Controller 本身也具有高可用性,並且有一個管理 Fabric Controller 的子系統(稱為"Utility" Fabric Controller)來管理與監控 Fabric Controller 的運作。
Fabric Controller也處理虛擬機的健康管理(Health Management)工作,當Windows Azure Guest OS發生當機時,會由Fabric Controller自動選擇不同的實體機器重新部署與引導。當應用程式提交即地更新(In-place upgrade)時,Fabric Controller也負責即地更新的協調工作,以保持應用程式在更新時仍可保持SLA所承諾的服務水準。
RDFE
RDFE (Red Dog's Front-End) 是 Azure 的前端接口,負責接取來自任何訪問 Azure 的應用程式的命令,它是一組可控制與管理 Azure 服務的RESTAPIs,對外接受應用程式的要求並回應,對內則是扮演大腦的角色,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 年的Clos 網路拓樸,在每個網路設備間都採用了網狀的連線,亦即每個設備彼此之間都有備援能力,而且配置適當的網路節點設備,可以提供更大量的頻寬與資源配置,Quantum10 的第一代可供應 30000 台伺服器 30000GB 的流量 (平均一台 1TB 流量)。2013年更提升至 Quantum10 v2,可支持在不同服務群集 (例如計算群集與存儲群集) 之間的網路通信,基於 Leaf-Spine 網路拓樸的特性,不論是走哪一條通信路徑,其成本都是等價(Equal-Cost Multipath, ECMP),用來減少因網路擴展生成樹 (Spanning Tree) 產生的網路負擔,其資源供應可跨越不同群集,頻寬也提升到 50000GB。
隨著 Azure 服務愈來愈多元,其服務共用網路基礎建設已經變成常態,為了要讓各服務可順暢訪問網路功能 (例如與 Azure 虛擬網路的集成),微軟開始發展適用於數據中心的網路相關技術,並設計相關輔助資源。2015年微軟在ACM SIGCOMM提出了數個重要設計成果:
服務位置
Microsoft Azure 目前於全球有34個數據中心 (另有4個正興建中),以及44個 CDN 跳躍點,以提供全球用戶所需的資源。但因為當地法規與行政的要求,因此並不是所有的用戶都能使用所有的區域,目前 Azure 服務區域有分為三種:
洲別 | 地區(中文) | 地區(英文) | 區域別 | 地理位置 | 說明 |
---|---|---|---|---|---|
北美洲 | 美國中部 | Central US | Azure Cloud (Region 1) | 愛荷華州 | |
北美洲 | 美國東部 | East US | Azure Cloud (Region 1) | 維吉尼亞州 | |
北美洲 | 美國東部2 | East US 2 | Azure Cloud (Region 1) | 維吉尼亞州 | |
北美洲 | 美國政府機構愛荷華州 | Central US GOV | Azure Government Cloud | 愛荷華州 | |
北美洲 | 美國政府機構維吉尼亞州 | East US GOV | Azure Government Cloud | 維吉尼亞州 | |
北美洲 | 美國政府機構亞利桑那州 | Arizona US GOV | Azure Government Cloud | 亞利桑那州 | (興建中) |
北美洲 | 美國政府機構德克薩斯州 | Texas US GOV | Azure Government Cloud | 德克薩斯州 | (興建中) |
北美洲 | 美國國防部東部 | US DoD East | Azure Government Cloud | (未公布) | |
北美洲 | 美國國防部中部 | US DoD Central | Azure Government Cloud | (未公布) | |
北美洲 | 美國中部 | Central US | Azure Cloud (Region 1) | 愛荷華州 | |
北美洲 | 美國中北部 | North Central US | Azure Cloud (Region 1) | 伊利諾州 | |
北美洲 | 美國中南部 | South Central US | Azure Cloud (Region 1) | 德克薩斯州 | |
北美洲 | 美國中西部 | West Central US | Azure Cloud (Region 1) | (未公布) | |
北美洲 | 美國西部 | West US | Azure Cloud (Region 1) | 加利福尼亞州 | |
北美洲 | 美國西部2 | West US 2 | Azure Cloud (Region 1) | (未公布) | |
北美洲 | 加拿大中部 | Central Canada | Azure Cloud (Region 1) | 多倫多 | |
北美洲 | 加拿大東部 | East Canada | Azure Cloud (Region 1) | 魁北克 | |
歐洲 | 北歐 | North Europe | Azure Cloud (Region 1) | 愛爾蘭 | |
歐洲 | 西歐 | West Europe | Azure Cloud (Region 1) | 荷蘭 | |
歐洲 | 德國中部 | West Europe | Azure Cloud (Region 1) | 法蘭克福 | |
歐洲 | 德國東北部 | West Europe | Azure Cloud (Region 1) | 馬德堡 | |
歐洲 | 英國南部 | United Kingdom South | Azure Cloud (Region 1) | 倫敦 | |
歐洲 | 英國西部 | United Kingdom West | Azure Cloud (Region 1) | 卡地夫 | |
歐洲 | 法國中部 | France Central | Azure Cloud (Region 1) | (尚未宣布) | (興建中) |
歐洲 | 法國南部 | France South | Azure Cloud (Region 1) | (尚未宣布) | (興建中) |
亞洲 | 東亞 | East Asia | Azure Cloud (Region 2) | 香港 | |
亞洲 | 東南亞 | Southeast Asia | Azure Cloud (Region 2) | 新加坡 | |
亞洲 | 日本東部 | Japan East | Azure Cloud (Region 2) | 東京,埼玉 | |
亞洲 | 日本西部 | Japan West | Azure Cloud (Region 2) | 大阪 | |
亞洲 | 印度中部 | Central India | Azure Cloud (Region 2) | 浦那 | |
亞洲 | 印度西部 | South India | Azure Cloud (Region 2) | 孟買 | |
亞洲 | 印度南部 | West India | Azure Cloud (Region 2) | 清奈 | |
亞洲 | 中國東部 | China East | Azure China | 上海 | 由世紀互聯 (21Vianet) 代理營運 |
亞洲 | 中國北部 | China North | Azure China | 北京 | 由世紀互聯 (21Vianet) 代理營運 |
亞洲 | 韓國中部 | Central Korea | Azure Cloud (Region 2) | 首爾 | |
亞洲 | 韓國南部 | South Korea | Azure Cloud (Region 2) | 釜山 | |
大洋洲 | 澳洲東部 | Australia East | Azure Cloud (Region 2) | 新南威爾斯 | 僅設籍於澳洲與紐西蘭的公司可申請使用 |
大洋洲 | 澳洲東南部 | Australia Southeast | Azure Cloud (Region 2) | 維多利亞 | 僅設籍於澳洲與紐西蘭的公司可申請使用 |
南美洲 | 巴西南部 | Brazil South | Azure Cloud (Region 3) | 聖保羅州 |
管理模式
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 余種服務,以及數百項功能,針對雲以及物聯網與大數據等所需要的各類型服務提供。
計算服務
主條目:虛擬機,雲服務,RemoteApp,Service Fabric和容器服務
計算服務是以 Azure 內的伺服器群經過虛擬化後形成的大量虛擬機 (Virtual Machine) 所組成的服務群,其主要功能是提供 CPU、記憶體等具有計算能力的資源。在 Azure 中的計算資源分成 IaaS 與 PaaS 兩種:
套用服務
主條目:套用服務,API管理服務,服務匯流排,Mobile Engagement,IoT套用集和函式服務
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 以支持對移動設備平台的訊息傳送功能。
2016年微軟於 Build 2016 研討會中宣布新的 Azure Functions 服務,以事件觸發為主的程式開發能力,大幅簡化發展事件驅動式套用的門檻。
存儲服務
主條目:關係資料庫,DocumentDB,存儲體,搜尋服務和Redis快取服務
存儲數據是一個平台服務最基本的要求,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 更適合企業的套用。
Azure Search 是微軟為提升雲數據檢索的功能而於 2014 年提供,搭配 Azure DocumentDB 實現出的數據檢索服務。
Azure Redis Cache 為微軟基於Redis開源項目所發展的分散式快取服務,用以取代 2011 年的 Azure Shared Cache 以及 2012 年提出的 Azure Role-based Cache 服務,由於 Redis Cache 適用於許多平台與框架,使得 Azure Redis Cache 更容易被大眾接受以作為分散式快取基礎建設。
分析服務
主條目:HDInsights,數據流分析,數據工廠,事件匯集器,數據湖和機器學習
分析服務是 Microsoft Azure 一系列支持大數據與機器學習等與數據分析相關的服務集合,由數據的獲取,分析到存儲都有完整的解決方案。
網路服務
主條目:虛擬網路,高速路由專線,流量管理員和名稱託管服務
網路服務是 Microsoft Azure 對外通信與內部各類服務之間的數據通信基礎建設,也是 Azure IaaS 的重要成員之一。
Azure 虛擬網路可允許組織或企業在雲建置自已的網路基礎建設,包含子網、IP配置、負載平衡器與網路安全原則等,同時可以建置VPN以串連內部網與其他區域的虛擬網路,也可以利用 P2S VPN 串接個人客戶端與虛擬網路。
為了要加速網路速度、隔離用戶與 Internet 網路環境,Azure 提供 ExpressRoute 給用戶以支持專屬性 (Dedicated) 的 Azure 數據中心間通信。
對於具全球性的大型服務,Azure Traffic Manager 可協助發展大規模的負載平衡解決方案,將用戶導向到全球各地離其最近的數據中心,並且也可支持跨區域性的備援重導向。
身份識別與訪問管理服務
主條目:Azure 目錄服務
Azure AD (Active Directory) 是 Microsoft Azure 上主要的身份識別與訪問服務,早期系基於 HTTP 協定為主,無法用於傳統使用LDAP/Kerberos 驗證協定的 Windows ServerActive Directory,因此微軟另外發展 DirSync 工具 (目前稱為 Azure AD Connect 服務) 以處理 HTTP <-> LDAP 的賬戶同步功能。Azure AD 也提供了多重要素驗證(Multi-Factor Authentication) 能力以支持需要多重方法驗證的套用,Azure AD 的應用程式連結功能則提供了軟體服務 (SaaS) 集成所需的身份驗證能力。
Azure AD 未來將提供取代 Access Control Service 的 Azure AD B2C 服務,以及可允許企業減少部署 AD 網域控制站成本的 Azure AD 網域服務。
開發人員服務
主條目:應用程式洞察,Visual Studio 團隊服務和HockyApp
為支持 Web App 與行動 App 的記錄、用戶行為追蹤與網路監控等需求,Azure 提供 Application Insights 可供開發人員實現所需的記錄功能,Application Insights 也可作為協助監控網站存活的輔助服務。
Visual Studio Team Services 提供雲的版本控制、自動化建造、自動化測試與部署等軟體工程流程服務。
Azure HockyApp 可協助處理行動 App 內的用戶回報,包含當機回報與用戶意見回饋等。
管理服務
主條目:調度器,自動化,營運洞察,密鑰收納庫,信息安全中心,備份服務和站台撤消服務
管理服務是 Microsoft Azure 提供給 IT 與網路管理能力的服務。
法規認證
Microsoft Azure 目前已經通過包含政府機構與產業標準數十項法規與規範的認證,以允許政府機關使用 Microsoft Azure,或是認可 Microsoft Azure 在信息安全上的努力。
政府機關
產業標準
工具說明
Microsoft Azure 在早期只能使用 Web-based 管理工具訪問,在 2012 年開始提供PowerShell指令接口,並進一步於 2013 年起開始提供指令接口,以支持非 Windows 作業系統的用戶 (Azure CLI),而微軟也開放了服務管理接口 (RDFE 的 API) 供開發人員使用,因此能管理與訪問 Microsoft Azure 的工具相當多。