Azure
Azure是由微軟所發(fā)展的一套云計(jì)算操作系統(tǒng),用來提供云線上服務(wù)所需要的操作系統(tǒng)與基礎(chǔ)儲(chǔ)存與管理的平臺(tái),是微軟的云計(jì)算的核心組成元件之一,以及微軟線上服務(wù)策略的一部份。
Azure概述
Windows Azure(以及Azure服務(wù)平臺(tái))由微軟首席軟件架構(gòu)師雷·奧茲(Ray Ozzie)在2008年10月27日在微軟年度的專業(yè)開發(fā)人員大會(huì)中發(fā)表,并于在2010年2月正式開始商業(yè)運(yùn)轉(zhuǎn)(General Availability)。微軟為因應(yīng)Windows Azure的營運(yùn)需求,開始在全球主要地點(diǎn)建設(shè)資料中心,目前已正式營運(yùn)的七個(gè)資料中心分別在:美國的芝加哥、圣安東尼奧及得克薩斯、愛爾蘭的都柏林、荷蘭阿姆斯特丹;新加坡及中國的香港。
Azure架構(gòu)
- Windows Azure是專為在微軟建設(shè)的資料中心管理所有服務(wù)器,網(wǎng)絡(luò)以及儲(chǔ)存資源所開發(fā)的一種特殊版本Windows Server操作系統(tǒng),它具有針對(duì)資料中心架構(gòu)的自我管理(autonomous)機(jī)能,可以自動(dòng)監(jiān)控劃分在資料中心數(shù)個(gè)不同的分區(qū)(微軟將這些分區(qū)稱為Fault Domain)的所有服務(wù)器與儲(chǔ)存資源,自動(dòng)更新修補(bǔ)程式,自動(dòng)執(zhí)行虛擬機(jī)器部署與鏡像備份(Snapshot Backup)等能力。
- Windows Azure被安裝在資料中心的所有服務(wù)器中,并且定時(shí)和中控軟件:Windows Azure Fabric Controller進(jìn)行溝通,接收指令以及回傳執(zhí)行狀態(tài)資料等等,系統(tǒng)管理人員只要透過Windows Azure Fabric Controller就能夠掌握所有服務(wù)器的執(zhí)行狀態(tài),F(xiàn)abric Controller本身是融合了很多微軟系統(tǒng)管理技術(shù)的總成,包含對(duì)虛擬機(jī)器的管理(System Center Virtual Machine Manager),對(duì)作業(yè)環(huán)境的管理(System Center Operation Manager),以及對(duì)軟件部署的管理(System Center Configuration Manager)等,在Fabric Controller中被發(fā)揮得淋漓盡致,如此才能夠達(dá)成透過Fabric Controller來管理在資料中心中所有服務(wù)器的能力。
- Windows Azure環(huán)境除了各式不同的虛擬機(jī)器外,它也為應(yīng)用程式打造了分散式的巨量儲(chǔ)存環(huán)境(Distributed Mass Storage),也就是Windows Azure Storage Services,應(yīng)用程式可以根據(jù)不同的儲(chǔ)存需求來選擇要使用哪一種或哪幾種儲(chǔ)存的方式,以保存應(yīng)用程式的資料,而微軟也盡可能的提供應(yīng)用程式的相容性工具或接口,以降低應(yīng)用程式移轉(zhuǎn)到Windows Azure上的負(fù)擔(dān)。Windows Azure不但是開發(fā)給外部的云應(yīng)用程式使用的,它也作為微軟許多云服務(wù)的基礎(chǔ)平臺(tái),像SQL Azure或是Dynamic CRM Online這類的線上服務(wù)。
Azure管理
- Fabric Controller
Fabric Controller是管理微軟資料中心的Windows Azure計(jì)算資源的中控管理系統(tǒng),它負(fù)責(zé)自動(dòng)化的管理資料中心內(nèi)所有的實(shí)體服務(wù)器,包含由使用者要求的Windows Azure Guest OS的部署工作,定時(shí)的Hotfix修補(bǔ),機(jī)器狀態(tài)回報(bào),以及管理不同版本的VM部署影像的復(fù)制等重要核心工作,F(xiàn)abric Controller本身也具有高可用性,并且有一個(gè)管理Fabric Controller的子系統(tǒng)(稱為"Utility" Fabric Controller)來管理與監(jiān)控Fabric Controller的運(yùn)作。Fabric Controller也處理虛擬機(jī)器的健康管理(Health Management)工作,當(dāng)Windows Azure Guest OS發(fā)生當(dāng)機(jī)時(shí),會(huì)由Fabric Controller自動(dòng)選擇不同的實(shí)體機(jī)器重新部署與啟動(dòng)。當(dāng)應(yīng)用程式提交即地更新(In-place upgrade)時(shí),F(xiàn)abric Controller也負(fù)責(zé)即地更新的協(xié)調(diào)工作,以保持應(yīng)用程式在更新時(shí)仍可保持SLA所承諾的服務(wù)水平。
- Windows Azure Host OS
在Fabric Controller之上與Windows Azure Guest OS之間,是由Fabric Controller在建置實(shí)體服務(wù)器時(shí)所部署的Windows Azure Host OS,它是一個(gè)特制版本的Hyper-V Server,負(fù)責(zé)實(shí)體服務(wù)器內(nèi)的Hypervisor虛擬平臺(tái)層,總管其上的Windows Azure Guest OS群,同時(shí)它內(nèi)含一個(gè)Fabric Agent中控軟件,以回報(bào)目前虛擬機(jī)器的各項(xiàng)資訊給Fabric Controller,同時(shí)讓應(yīng)用程式可以利用事件處理的方式來判斷與針對(duì)目前Fabric Agent控制虛擬機(jī)器的狀態(tài)做回應(yīng)與控制。而依照不同的虛擬機(jī)器的等級(jí),其執(zhí)行的Windows Server 2008操作系統(tǒng)也不一樣。
- 網(wǎng)絡(luò)基礎(chǔ)架構(gòu)與應(yīng)用程式部署模型
Windows Azure本身的設(shè)計(jì)是負(fù)責(zé)處理大量分散式計(jì)算的工作,并且符合云計(jì)算的特性,因此應(yīng)用程式在Windows Azure上可以自由設(shè)定一個(gè)或多個(gè)執(zhí)行個(gè)體(Computes Instances),并且利用Windows Azure平臺(tái)的特性,應(yīng)用程式可切割為處理使用者接口服務(wù)的Web應(yīng)用程式,以及專門處理背景計(jì)算或資料處理工作的服務(wù)應(yīng)用程式(Service Application),后端則可以用Windows Azure Storages或是SQL Azure數(shù)據(jù)庫來儲(chǔ)存資料。為了處理單一應(yīng)用程式多份執(zhí)行個(gè)體的平衡負(fù)載,Windows Azure的Hypervisor層都有內(nèi)建Windows Azure Load Balancer(LB),它會(huì)將連入應(yīng)用程式的連線進(jìn)行負(fù)載分配,以維持每個(gè)執(zhí)行個(gè)體都有足夠且合理的負(fù)載量。而在Windows Azure內(nèi)部網(wǎng)絡(luò)的所有虛擬與實(shí)體機(jī)器,都由Fabric Controller來自動(dòng)配署IP位置與通訊埠,在默認(rèn)的情況下Fabric Controller對(duì)外只會(huì)開放Port 80與443 (for SSL),若應(yīng)用程式需要特殊的連接埠時(shí),要在應(yīng)用程式本身的服務(wù)組態(tài)檔中登錄需要的終端點(diǎn)(Endpoint),F(xiàn)abric Controller會(huì)配置適當(dāng)?shù)腎P終端點(diǎn)資源給應(yīng)用程式。
Azure組成
Azure 推出了5項(xiàng)托管服務(wù),包括.NET應(yīng)用服務(wù)、SQL服務(wù)、SharePoint服務(wù)、Dynamics CRM服務(wù),以及LIve服務(wù)等,以幫助客戶建立云計(jì)算的應(yīng)用,或?qū)F(xiàn)有的業(yè)務(wù)擴(kuò)展到云端。
- .NET
最初被命名為 BizTalk 服務(wù),包括 .NET 應(yīng)用服務(wù),它由訪問控制、服務(wù)總線和工作站 3個(gè)模塊組成。.NET服務(wù)提供了一個(gè)基礎(chǔ)架構(gòu),是用戶可以不必一遍一遍開發(fā)重復(fù)的功能和基礎(chǔ)設(shè)施來構(gòu)建基于Internet的分布式應(yīng)用,就可以初步實(shí)現(xiàn) Internet 服務(wù)總線的一些功能。
- SQL
是一個(gè)云計(jì)算平臺(tái)上的數(shù)據(jù)庫,構(gòu)建在企業(yè)級(jí)的 SQL Sever 數(shù)據(jù)庫和 Windows 服務(wù)器上。SQL服務(wù)提供了一系列豐富的集成服務(wù),可以對(duì)數(shù)據(jù)進(jìn)行查詢、搜索、同步、報(bào)告和分析之類的操作。數(shù)據(jù)可以存儲(chǔ)在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計(jì)算機(jī)和移動(dòng)設(shè)備,用戶可以控制數(shù)據(jù)而不用管數(shù)據(jù)在哪里。另外,SQL服務(wù)可以為程序提供高級(jí)別的安全性、可靠性和伸縮性,減少管理和開發(fā)應(yīng)用程序的時(shí)間和成本。
- SharePoint
提供協(xié)作服務(wù)。通過使用協(xié)作特性,組織內(nèi)的用戶可以輕松創(chuàng)建、管理和構(gòu)建他們的協(xié)作 Web 站點(diǎn),并讓這些站點(diǎn)為整個(gè)組織所使用,通過這種協(xié)作和快速開發(fā)的服務(wù)建立更強(qiáng)的客戶關(guān)系。
- Dynamics CRM
是一個(gè)完全集成的客戶關(guān)系管理系統(tǒng),提供類似Saleforce 的應(yīng)用級(jí)的服務(wù),用戶可以從第一次接觸客戶開始,在整個(gè)購買和售后流程中創(chuàng)建并維護(hù)清晰明了的客戶數(shù)據(jù);可以強(qiáng)化和改進(jìn)公司的銷售、營銷和客戶服務(wù)流程,提供快速、靈活且經(jīng)濟(jì)實(shí)惠的解決方案;開可以幫助用戶在日常業(yè)務(wù)處理過程中獲得持續(xù)和顯著的改進(jìn)。
- LIve
以客戶為中心,提供諸如聯(lián)系人信息、博客和圖片等服務(wù)。微軟將Windows Live 的很多功能和資源,通過 Live 服務(wù)封裝以后提供給軟件廠商和開發(fā)人員使用。通過Live 服務(wù),可以存儲(chǔ)和管理 Windows Live 用戶的信息和聯(lián)系人,將 Live Mesh中的文件和應(yīng)用同步到用戶的不同設(shè)備上去。
Azure存儲(chǔ)服務(wù)
Windows Azure提供了三種不同格式的儲(chǔ)存體服務(wù)(Storage Services),用來提供給Windows Azure上運(yùn)行的應(yīng)用程式儲(chǔ)存資料使用。依據(jù)不同的儲(chǔ)存格式會(huì)有不同的限制,因?yàn)檫@些儲(chǔ)存服務(wù)都是以分散式巨量儲(chǔ)存(Distributed Mass Storage)為核心概念所設(shè)計(jì)出來的,為了要達(dá)成快速在分散式儲(chǔ)存空間中儲(chǔ)存與管理資料(還包含高可用度的贅余儲(chǔ)存管理),微軟有在資料的儲(chǔ)存上做一些限制。
- BLOB
BLOB(大型二進(jìn)制物件)資料是用來儲(chǔ)存像是檔案,圖片,視訊檔,可執(zhí)行檔,壓縮檔等二進(jìn)制格式的檔案,基本上它的儲(chǔ)存單位就是檔案,為了要讓BLOB的功能應(yīng)用更寬廣,微軟也在BLOB服務(wù)上開發(fā)了內(nèi)容傳遞網(wǎng)絡(luò)(Content Delivery Network)的服務(wù),讓BLOB可以作為大容量的檔案或資料儲(chǔ)存與供應(yīng)的地方,以支持類似YouTube這樣的大型Web應(yīng)用程式的服務(wù)。
- Table
Table(表格)是給具結(jié)構(gòu)化資料的應(yīng)用程式儲(chǔ)存與管理的一種儲(chǔ)存服務(wù),它在Windows Azure儲(chǔ)存區(qū)中會(huì)以Key-Value鍵值對(duì)方式儲(chǔ)存,并且由Partition來切割在Windows Azure儲(chǔ)存區(qū)的儲(chǔ)存位置,它實(shí)際的資料是XML,透過REST API呼叫時(shí),會(huì)需要依據(jù)SDK上的說明,自行建置XML的要求與解析回應(yīng)的資料。
- Queue
Queue(佇列)是一種先到先服務(wù)(First-Come, First-Serve),或稱為FIFO(先入先出)的儲(chǔ)存服務(wù),它可以允許應(yīng)用程式將訊息儲(chǔ)存到佇列中排隊(duì),然后由負(fù)責(zé)處理的應(yīng)用程式(通常是Worker)由佇列提取訊息并處理以后,將訊息由佇列中移除。訊息可以是字串或是最長8KB的二進(jìn)制資料,佇列經(jīng)常會(huì)作為跨執(zhí)行個(gè)體通訊以及工作切割通知的訊息傳遞之用。