AWS和Azure的比較(1)
全球領先的雲的計算平臺主要有兩個,一個是Amazon Web Service,另外一個則是Microsoft Windows Azure,他們都同時提供了大量的和雲端計算相關的資源,包括計算,儲存,網路等等。元計算其實並不是像我們看到的學校或者地方政府買很多很多機器就稱為雲端計算,也不是我們看到的網盤,虛擬機器等等。雲端計算的最大原則是彈性,也就是按需使用,用多少買多少,把所有的計算,儲存和頻寬資源有效地利用起來。網上這部分內容其實已經很多了,我這裡也就不再多說了。近兩年來我帶了好幾個專案,都是在Amazon AWS或者在Microsoft Azure上的,為總結這幾年在雲端計算上的經驗,我準備寫一個專欄,討論一下Amazon AWS和Windows Azure具體的一些功能,特色和效能上的區別。兩個東西都是以A開頭的,所以我把它叫做雙A的比較。
第一篇裡,我先談談AWS和Azure提供的不同的功能,大同小異的地方以及各自的特色。後續的文章會更深入地討論不同的功能細節。
下圖就是Amazon AWS提供的管理介面,包含計算和網路,儲存和內容分發,資料庫,部署和管理以及應用服務。
Amazon提供功能非常豐富,也很強大,在計算和網路這一塊,包含了Amazon Elastic Compute Cloud(EC2),也就是我們最常用的虛擬機器資源,還有Amazon Elastic MapReduce, Direct Connect, Route 53以及Amazon Virtual Private Cloud(VPC)。Amazon Elastic MapRedouce主要用於大資料的處理。Direct Connect其實是一個VPN,可以讓區域網的機器和Amazon雲裡的機器直接連在一起。Route 53是一個可擴充套件的DNS,也可以用做負載均衡。VPC主要用於把AWS的資源建立在一個私有的,獨立的雲裡。
在儲存上,Amazon提供了CloudFront, Glacier, Simple Storage Service (S3), Storage Gateway,分別用於內容分發,低成本的儲存服務,著名的S3儲存服務和整合混合雲的IT資料備份閘道器。
在資料庫層,Amazon提供了DynamoDB, ElastiCache以及Relational Database Service(RDS)。DynamoDB是一個NoSQL的資料儲存結構。ElastiCache提供了一套in-memory系統,RDS也就是關係型資料庫,主要通過MySQL實現。
在部署和管理層,Amazon分別提供了CloudFormation, CloudWatch, Data Pipeline, Elastic Beanstalk和AWS Identity and Access Management(IAM)。用於建立雲服務的模板,雲系統的監控,輕量級的資料流服務,部署和管理應用程式(PaaS),以及使用者管理。
在應用層,Amazon有Cloud Search, Elastic Transcoder, Simple Email Service(SES), Simple Notification Service(SNS), Simple Queue Service(SQS), Simple Workflow(SWF),分別用於搜尋,媒體編解碼,通知,佇列,工作流等服務。
Amazon從底層到應用層都提供了全系列的服務和基礎設施,幫助使用者能夠快速地,低成本地建立高擴充套件性的應用。
類似的,Microsoft Windows Azure也提供了豐富的雲服務,下面就是微軟提供的雲服務系統。
在管理介面裡面,Azure可以看到的東西沒有Amazon那麼細節,只包含了一些大塊, 包括Web Sites, Virtual Machine, Mobile Service, Cloud Service, SQL Database, Storage, Networks, Service Bus, Media Service, Active Directory以及一些Add-Ons等。此外由於微軟針對其自有產品開發,還提供了像Azure SQL Reporting, SQL Sync等服務。
在Azure中,可以直接建立網站,申請虛擬機器,申請移動服務和雲服務,還有資料庫服務,網路,服務匯流排,媒體服務,活動目錄。看上去就是微軟的那一套,和Amazon完全不一樣。其實,這些東西也無非是換湯不換藥,大體沒什麼太大區別,接下去我們來具體比較一下這兩個東西在功能上的差別。
Amazon Web Service |
Microsoft Windows Azure |
Elastic Compute Cloud (EC2) |
Virtual Machine (Preview) |
Amazon Elastic MapReduce |
Hadoop on Azure (Preview) |
Direct Connect |
Virtual Network (Preview) |
Route 53 |
Azure Load Balancer or Traffic Manager |
Amazon Virtual Private Cloud(VPC) |
Virtual Network(Preview) |
CloudFront |
Azure CDN |
Glacier |
N/A |
Simple Storage Service(S3) |
Blob Storage |
Gateway |
N/A |
DynamoDB |
Table Storage |
ElastiCache |
Cache Worker Role |
Relational Database Service(RDS) |
Azure SQL Database |
CloudFormation |
Web Site/Custom Images,不完全相同 |
CloudWatch |
Monitoring Service,還沒有完全實現 |
Data Pipeline |
SQL Data Sync實現了一部分,但不完全相同 |
Elastic Beanstalk |
Cloud Service(Web Role/Worker Role) |
AWS Identity and Access Management(IAM) |
Access Control(不完全相同) |
Cloud Search |
無 |
Elastic Transcoder |
Azure Media service |
Simple Email Service(SES) |
無,第三方有類似 |
Simple Notification Service(SNS) |
Service Bus |
Simple Queue Service(SQS) |
Queue Storage |
Simple Workflow(SWF) |
N/A |
無 |
SQL Data Sync |
無 |
SQL Reporting |
無 |
Active Directory |
可以通過CloudFormation實現 |
Mobile Service |
Auto Scale |
無 |
Elastic Load balancing |
Load Balancing Endpoint |
Elastic Block Store |
Azure Drive |
在接下去的文章裡,我會對Amazon AWS和Widows Azure作更進一步深入的研究,基本上會以一篇Amazon,一篇Azure的結構討論IT或者App開發者在向雲遷移的過程中,經常會遇到的問題和系統架構的選擇。