盤點之國內(nèi)IaaS云個人使用體驗報告
都說2015年是國內(nèi)云計算元年,對我個人來說,2015年也是本人正式全面接觸云服務(wù)的元年。
本文僅從個人角度分析當前國內(nèi)主流IaaS云的使用體驗,主要從各云廠商提供的功能抽象,管理后臺,付費機制等方面進行分析,不包括以下方面內(nèi)容:
- 性能對比測試
- 故障率以及穩(wěn)定性比較
要做這兩方面比較太耗費精力,需要做長期的監(jiān)控觀察,非個人可以完成的事情。另外本文僅僅代表個人的使用體驗,主要包括以下云:AWS(國際/國內(nèi)),阿里云,UCloud,青云,騰訊云。其他的云未使用過,不做評價。
另外開始前先說下我對IaaS云的整體觀點,首先IaaS云整體降低了互聯(lián)網(wǎng)創(chuàng)業(yè)啟動的技術(shù)門檻,把最辛苦的機房運維工作接管了,功不可沒,所有的互聯(lián)網(wǎng)創(chuàng)業(yè)者都應(yīng)該表示感謝(這個去機房搬過機器,布過網(wǎng)線的創(chuàng)業(yè)者應(yīng)該感觸更深)。另外這一年里關(guān)于IaaS云的負面消息也不斷,使得有些創(chuàng)業(yè)者選擇時心存疑慮,但這個事情主要有兩方面原因:
- 黑天鵝事件,比如被挖掘機挖了網(wǎng)線,比如被雷劈了機房。這個事情自建機房也不可避免,看運氣了。
- 確實是云系統(tǒng)bug或者運維操作導(dǎo)致的故障 這種故障如果是自建機房,只要最終用戶不能感知,大多數(shù)也就內(nèi)部消化了,不會曝光到外面。但現(xiàn)在責任明確了,肯定曝光出來了,所以給人云服務(wù)不靠譜的感覺。
所以大家評估是否選用云服務(wù),還是應(yīng)該持相對客觀的態(tài)度。
下面按照我總結(jié)的以一個云用戶來看,比較關(guān)心的云功能點來具體分析。
一、網(wǎng)絡(luò)
當前各云廠商主要提供者兩種網(wǎng)絡(luò)模式,當然各家的叫法可能不一樣。
- 基礎(chǔ)網(wǎng)絡(luò)/經(jīng)典網(wǎng)絡(luò)
- VPC/私有網(wǎng)絡(luò)/專有網(wǎng)絡(luò)
基礎(chǔ)網(wǎng)絡(luò)是所有用戶共享的一個大的內(nèi)網(wǎng),內(nèi)網(wǎng)的機器之間都是可以互通的,就如同辦公室同一個路由器下的所有機器都是互通的,云廠商為了安全,在網(wǎng)絡(luò)層通過防火墻對用戶進行了隔離。各家實現(xiàn)都差不太多。
基礎(chǔ)網(wǎng)絡(luò)防火墻的隔離一般有兩種做法
- 用戶級別的防火墻 同一個用戶的多臺機器之間內(nèi)網(wǎng)是默認互通,不同用戶之間默認是不互通的。(典型:阿里云)
- 實例級別的防火墻 防火墻由每個實例控制,內(nèi)網(wǎng)的機器可以互通的,但默認的防火墻有限制,用戶可以通過防火墻控制哪些機器可訪問自己的機器。(典型:青云)
當然,無論哪種實現(xiàn),基礎(chǔ)網(wǎng)絡(luò)的這種模式?jīng)Q定了使用基礎(chǔ)網(wǎng)絡(luò)肯定有內(nèi)網(wǎng)安全風險,比如防火墻失效,并且復(fù)雜的防火墻規(guī)則肯定對網(wǎng)絡(luò)傳輸性能有影響。所以正式使用的服務(wù)建議還是盡量使用VPC。
VPC 全稱Virtual Private Cloud,是SDN技術(shù)的應(yīng)用,目標是允許用戶在云上自定義網(wǎng)絡(luò)以及實現(xiàn)用戶之間的隔離。這個各家的實現(xiàn)差異略大。
1. AWS
AWS VPC下的子網(wǎng)區(qū)分公有子網(wǎng)和私有子網(wǎng)。
公有子網(wǎng)包含一個公網(wǎng)網(wǎng)關(guān),子網(wǎng)內(nèi)的服務(wù)器分配公網(wǎng)IP后,可以直接訪問外網(wǎng),可對外提供服務(wù),也可以掛載到公網(wǎng)負載均衡器后面對外提供服務(wù)(沒有公網(wǎng)IP也可掛載到負載均衡器后)。沒有公網(wǎng)IP的服務(wù)器無法訪問外網(wǎng),所以這個子網(wǎng)下的服務(wù)器一般設(shè)置成自動分配公網(wǎng)IP,自動分配的公網(wǎng)IP在服務(wù)器關(guān)閉后會被回收,再次啟動時會分配一個新的IP。自動分配的公網(wǎng)IP不收費,如果需要固定的IP,則需要申請Elastic IP,EIP每個VPC內(nèi)有個數(shù)限制,綁定時不收費,空閑時收費。
私有子網(wǎng)的服務(wù)器和公網(wǎng)是不通的,要訪問公網(wǎng)必須自己在公有子網(wǎng)里搭建NAT。NAT是一個單獨的實例,搭建后臺有引導(dǎo),比較方便,NAT路由的設(shè)置可以在后臺界面進行。根據(jù)AWS的朋友反饋,當前AWS已經(jīng)支持Managed NAT服務(wù)了,可以不用自己搭了,不過國內(nèi)的AWS還沒支持。
VPC支持VPN以及對等連接(用于將兩個VPC連接到一起)
負載均衡器 AWS的負載均衡器分公網(wǎng)和私網(wǎng)兩種,公網(wǎng)的負載均衡器必須建立在公有子網(wǎng)里,可以同時轉(zhuǎn)發(fā)請求到公有和私有子網(wǎng)。創(chuàng)建負載均衡器的高級選項可選擇負載均衡器所在的子網(wǎng),和負載均衡器后可掛載的主機沒有關(guān)系(這個我一直理解錯了,以為選擇的子網(wǎng)是后端主機所在的子網(wǎng)。)。私有負載均衡器無公網(wǎng)IP,只能在VPC內(nèi)訪問。AWS的負載均衡器后面直接掛載主機,配置端口映射,不支持復(fù)雜的轉(zhuǎn)發(fā)策略。支持存活探測。
2. 阿里云
阿里云VPC可以看做是AWS VPC的簡化版本,不支持公有子網(wǎng)和私有子網(wǎng)這樣的劃分,VPC內(nèi)的服務(wù)器訪問公網(wǎng)需要綁定公網(wǎng)IP,或者自己搭建NAT并進行配置,但后臺上沒有找到可配置的地方。 不支持自動分配公網(wǎng)IP,公網(wǎng)IP需要單獨申請,按流量或者固定帶寬計費。最多20個。
VPN以及對等連接也需要自己搭建。
負載均衡器 和AWS類似,掛載實例,端口映射,不支持轉(zhuǎn)發(fā)策略配置。支持存活探測。公有網(wǎng)絡(luò)的負載均衡器只能在經(jīng)典網(wǎng)絡(luò)里。
3. UCloud
UCloud的VPC叫私有虛擬網(wǎng)絡(luò),自定義子網(wǎng)的云主機和公網(wǎng)默認不通,要訪問公網(wǎng)或聯(lián)通其他子網(wǎng)則必須通過虛擬路由器,其中虛擬路由器也可以綁定EIP,如果內(nèi)網(wǎng)的服務(wù)要對外提供,則需要在路由器上做端口映射,配置轉(zhuǎn)發(fā)規(guī)則。這種模式簡單容易理解,在公司內(nèi)網(wǎng)用過路由器的人大多都能明白,也不需要設(shè)置NAT路由,還節(jié)省公網(wǎng)IP。不過這種模式的問題是比較麻煩,負載均衡器也不能直接掛載內(nèi)網(wǎng)服務(wù)器,如果內(nèi)網(wǎng)服務(wù)器稍多,做端口映射,分配端口比較頭疼。
4. 騰訊云
騰訊云的VPC叫私有網(wǎng)絡(luò),幾乎是AWS VPC的克隆。不支持公有子網(wǎng)和私有子網(wǎng)的劃分,在VPC內(nèi)添加服務(wù)器的時候,可以選擇是否作為網(wǎng)關(guān),用于簡化用戶的配置。 VPC內(nèi)的主機也不支持自動分配公網(wǎng)IP,需要申請EIP,按時間計費,不過綁定資源后不收費。最多開通20個EIP。 VPC內(nèi)置支持VPN以及對等連接。
負載均衡器 和AWS類似,掛載實例,端口映射,不支持轉(zhuǎn)發(fā)策略配置。支持存活探測。分公網(wǎng)和私網(wǎng),既可以在VPC內(nèi)也可以在基礎(chǔ)網(wǎng)絡(luò)。
5. 青云
青云提供兩種模式,一種是和UCloud類似的虛擬路由器模式,另外一種是VPC。新的區(qū)才支持VPC。
青云的VPC下可以掛私有網(wǎng)絡(luò),相當于子網(wǎng),不區(qū)分公有私有。子網(wǎng)內(nèi)的服務(wù)器分配公網(wǎng)IP后即可訪問公網(wǎng)。如果子網(wǎng)內(nèi)的服務(wù)器不分配公網(wǎng)IP,只要VPC上綁定公網(wǎng)IP就可訪問公網(wǎng)。我的理解是VPC本身攜帶了NAT的機制,省去了自己搭建NAT的成本。所以青云的VPC是獨立收費的,大約36¥/月。
青云的所有服務(wù)器都不支持自動分配公網(wǎng)IP,包括基礎(chǔ)網(wǎng)絡(luò)中的,所有公網(wǎng)IP都需要單獨申請綁定,獨立計費。
青云的VPC支持VPN,隧道服務(wù)(和對等連接類似),還支持內(nèi)網(wǎng)的自定義DNS服務(wù)。
負載均衡器 青云的負載均衡器做的比較復(fù)雜,支持轉(zhuǎn)發(fā)策略,支持掛載實例端口映射或者直接配置IP和端口。區(qū)分公網(wǎng)和私有網(wǎng)絡(luò)負載均衡器。
總結(jié),個人認為創(chuàng)業(yè)團隊使用公有云服務(wù),首先應(yīng)該考慮的是網(wǎng)絡(luò)架構(gòu),所以應(yīng)該首選VPC,考量各家VPC的特點,對自己的服務(wù)進行規(guī)劃,自己的那些服務(wù)需要對外?那些服務(wù)需要公網(wǎng)IP?哪些服務(wù)需要掛載負載均衡后面?哪些可以放在私有子網(wǎng)里?是否需要做NAT?這些都要考慮好。當然如果只是弄一臺服務(wù)器,搭個博客啥的可以不用考量這么復(fù)雜。
對云服務(wù)商來說,教育用戶使用VPC也是當務(wù)之急。阿里云前一段時間內(nèi)網(wǎng)IP吃緊,都打算使用部分尚未啟用的公網(wǎng)IP作為內(nèi)網(wǎng)IP使用了,說明很多人還是不知道使用VPC。AWS從2013年12月4日之后創(chuàng)建的賬戶僅支持VPC,應(yīng)該也是遇到這種問題了。AWS的做法是默認給用戶創(chuàng)建一個帶公有子網(wǎng)的VPC,這樣對用戶是無感的,用戶都不需要理解VPC是什么,和使用基礎(chǔ)網(wǎng)絡(luò)的體驗差不多。
二、云主機,硬盤,鏡像與備份
1. 云主機
各家的云主機都是選擇配置,然后啟動虛擬機。AWS,阿里云是預(yù)先設(shè)定好的主機類型,然后供用戶選擇,不提供自由組合。騰訊云,青云,UCloud都提供自由組合,不過有一定限制。青云和UCloud提供用戶后臺修改主機配置的機制。
2. 硬盤
- AWS 提供三種硬盤,通用型 (SSD),Provisioned IOPS,磁介質(zhì)。前兩種的區(qū)別是IOPS限制的區(qū)別,通用型的IOPS由硬盤大小決定,3 IOPS/GiB,但有個復(fù)雜的累計突增機制。Provisioned IOPS類型的在創(chuàng)建的時候可以指定IOPS速率,可保證磁盤的IOPS,當然這種類型的磁盤價格和IOPS相關(guān)。最后的磁介質(zhì)最便宜一般用來存冷數(shù)據(jù)。
- 阿里云 提供SSD云盤,高效云盤,普通云盤,本地SSD盤四種硬盤。但貌似最后一種本地SSD盤已經(jīng)不提供了。前三種的區(qū)別主要是IOPS和容量的限制。
- 青云 提供性能型,容量型,超高性能型三種硬盤。沒有明確的IOPS限制說明,只有吞吐量限制說明。
- UCloud 的硬盤是和主機類型相關(guān)的,提供兩種主機類型標準機型和SSD機型,分別對應(yīng)普通硬盤和SSD硬盤。創(chuàng)建主機時分配的硬盤是本地盤,云盤需要單獨創(chuàng)建和掛載。
- 騰訊云 提供本地硬盤和云硬盤,本地硬盤有一些限制,比如不支持備份,導(dǎo)致本地盤遷移的時候會比較麻煩。
3. 鏡像與快照
鏡像和快照(有的云叫備份)對使用云服務(wù)器來說是非常重要的功能??煺帐菍τ脖P的備份,鏡像是根據(jù)系統(tǒng)盤備份生成的鏡像,用來初始化虛擬機。AWS的鏡像支持掛載云硬盤后生成組合鏡像,UCloud數(shù)據(jù)方舟備份恢復(fù)功能也提供了系統(tǒng)盤+數(shù)據(jù)盤的組合鏡像(ps:該功能需要申請開通),其他廠商的鏡像都只支持單盤。
個人覺得組合鏡像這個功能非常有用。通常我們使用云服務(wù)的習慣都是先找臺服務(wù)器安裝好系統(tǒng)以及基礎(chǔ)軟件,根據(jù)團隊的運維習慣,給日志,數(shù)據(jù)目錄掛載不同的附加硬盤并初始化,然后制作鏡像供創(chuàng)建更多主機時使用。如果云服務(wù)支持組合鏡像,那這個鏡像本身就包含了附加盤的初始化快照,通過這個鏡像初始化的系統(tǒng),立刻可以使用,不需要再單獨為每臺機器創(chuàng)建和掛載,初始化硬盤。
另外AWS和阿里云支持硬盤隨主機刪除的選項設(shè)置,這樣方便自動化銷毀主機的時候同時刪除掉硬盤,避免產(chǎn)生空閑硬盤產(chǎn)生額外費用。其他家沒找到類似設(shè)置選項。
青云的備份支持備份鏈的機制,可以選擇恢復(fù)到某個備份節(jié)點,并且以圖形化的方式展示出來,對用戶比較友好。
三、后臺控制臺
云服務(wù)的用戶首先接觸的就是云的控制臺,這方面各家差異較大。云服務(wù)由于功能較多,還要劃分各種區(qū)域,導(dǎo)致控制臺界面復(fù)雜。區(qū)域和功能應(yīng)該如何組合展示?這個有兩種做法。
- 先選擇區(qū)域,然后再操作功能,所有操作都只針對當前區(qū)域。以AWS,青云,UCloud為代表。這種方式的好處是大多數(shù)用戶其實都只在一個區(qū)域進行操作,一旦選定了區(qū)域,就不需要每次操作的時候選擇區(qū)域了。缺點也很明顯,就是沒有一個地方能總覽所有區(qū)域的數(shù)據(jù)。有時候可能不小心在某個不常用的區(qū)域創(chuàng)建了主機,后來忘記管理,產(chǎn)生了不預(yù)期的費用。
- 在所有的功能界面都劃分不同的區(qū)域,操作的時候選擇。以阿里云,騰訊云為代表。好處是方便提供總覽的數(shù)據(jù),同一個功能下切換區(qū)域也比較容易,但缺點是每次操作都要選擇區(qū)域,不小心就把主機建在錯誤的區(qū)域里,如果是按月付費的只能通過客服退費。
這兩種方式,個人傾向于第一種做法。
從后臺界面使用體驗上來說,青云的后臺界面美觀易用,操作后異步界面更新機制做的很完善,后臺數(shù)據(jù)的一致性以及依賴關(guān)系限制也比較完善。阿里云這一年后臺界面比14年我第一次用的時候改觀很大,不過缺點是操作結(jié)果展示有延遲。比如創(chuàng)建一臺主機,要在主機列表頁面等待幾十秒刷新才有,這個體驗很不好。UCloud有一次我刪除資源時沒有按照正確的順序,導(dǎo)致有一個資源一直刪除不了(ps:和UCloud的朋友溝通,他們已經(jīng)修復(fù)了這個bug)。騰訊云刪除的資源其實是做了個隱藏,可能擔心用戶申請恢復(fù),所以數(shù)據(jù)一致性上有問題,比如刪除的主機在VPC的主機統(tǒng)計數(shù)字中依然包含,導(dǎo)致VPC無法刪除。
四、賬號以及權(quán)限
團隊使用云服務(wù),賬號和權(quán)限機制也是非常重要的。尤其是遇到技術(shù)外包合作,或者團隊結(jié)構(gòu)復(fù)雜的情況。
- AWS 有一套復(fù)雜的IAM(Identity and Access Management)賬號機制,支持用戶,組,角色,權(quán)限,策略等概念,可以通過不同的組合,精細化管理所有資源,還可以集成第三方的SAML,OpenID等賬號提供服務(wù)。有了這套賬號機制,第三方完全可以基于AWS的接口做AWS的增值二次開發(fā)銷售。
- 阿里云 最近推出的RAM,基本上可以看做是對AWS的IAM的克隆,只不過尚不支持和第三方的集成。
- 青云 提供一種簡單的子賬號機制,子賬號相當于一個獨立的賬號,所屬的資源和主賬號是隔離的,主賬號和子賬號互相看不到對方的資源,只不過和主賬號共享賬號余額。
- UCloud 提供一種項目的概念,項目關(guān)聯(lián)著一組資源以及人員,不同的成員有不同的角色和權(quán)限,成員本身不擁有資源。權(quán)限的粒度只細化到某一類資源的增刪改查。
- 騰訊云 可以在主賬號下增加用戶,但只提供簡單的權(quán)限控制,粒度很粗,比如管理資源,管理用戶,管理財務(wù)這樣的。
五、付費機制
云服務(wù)的付費機制對以上所有功能的體驗都有影響。當前主要有按量付費,按月付費,以及AWS的預(yù)留實例模式。
1. 按量付費 就是使用多少付多少,和電一樣。這方面做的最徹底的是青云,只提供按量付費,并且計費能做到秒級。阿里云和UCloud同時也提供按量付費。不過阿里云的按量付費推出不久,要比按月付費貴許多。青云和AWS的按量付費對資源是細粒度劃分的,比如關(guān)機的時候只收取硬盤費用,阿里云和UCloud當前還做不到這點,關(guān)機依然是按照整個主機收費的。騰訊云當前還不支持按量付費(ps:從騰訊云的朋友那兒得知,他們正在做灰度測試)。
2. 按月付費 就是按月或者年直接購買具體的主機。阿里云,UCloud,騰訊云支持這種模式。這種模式最大的問題是主機和付費賬單綁在了一起,一旦主機系統(tǒng)出故障不能啟動(虛擬機這種問題很常見),用戶不能自己創(chuàng)建新的主機然后將費用從舊的轉(zhuǎn)移到新主機,只能通過客服退費然后重新購買。所以這種方式一般都提供客服支持X天內(nèi)無理由退服務(wù)器。
3. 預(yù)留實例模式 這個是AWS獨有的模式。這種模式下,用戶購買的是實例的類型,相當于和云廠商簽訂了一個協(xié)議,預(yù)留某類型的實例X個給用戶用一年??梢砸淮涡愿肚澹部梢园丛轮Ц?,不同的支付方式優(yōu)惠的額度不一樣,但比按量付費便宜。購買后只要用戶實際使用的實例類型和預(yù)留的匹配,計費就按照預(yù)留模式計費,不和具體的主機綁定。這種付費機制,一方面解決了純按量付費的情況下,廠商不方便對自己機房的容量做比較長遠的規(guī)劃的弊端,另外一方面解決了按月付費的情況下,主機和付費綁定帶來的不便的問題。但同時帶來的新的問題就是計費規(guī)則復(fù)雜,我用了好長時間才看明白AWS的消費賬單。
付費機制其實影響著整個云的方方面面。整體趨勢上來看,按量付費是大趨勢。同時按量付費簡化了用戶的操作和使用成本。舉一個例子,朋友在騰訊云上買了臺服務(wù)器部署個系統(tǒng),年前又充了一筆錢,準備年后看看是否需要擴容。年底要開發(fā)票報賬了,結(jié)果發(fā)現(xiàn)騰訊云的規(guī)則是只有購買了服務(wù)器的金額才算是消費,才能開發(fā)票,最后被逼無奈只好把現(xiàn)有的這臺機器購買了好多年。另外一方面,按量計費是彈性的基礎(chǔ),不支持按量,如何彈性?
下面的表格是各家云服務(wù)的1核1G最低配主機的費用比較:
說明:
- 小時指按兩種方式付費,平均到每小時的費用,月指按兩種付費方式,平均到每個月的費用。一個月按照24*30個小時計算
- AWS的按年指預(yù)留實例全年預(yù)付全部的模式,北京區(qū)域
- 阿里云 北京區(qū)域,按年是包含了按年付費只需付款10個月的優(yōu)惠政策
- UCloud 北京區(qū)域,按年也是包含了按年付費只需付款10個月的優(yōu)惠政策
- 青云 北京三區(qū) 由于青云沒有按年付費機制所以第二種付費機制留空
- 騰訊云 北京區(qū)域 由于騰訊云沒有按量付費,所以第一種方式留空。按年也是包含了只需付款10個月的優(yōu)惠政策
以上不包括帶寬以及磁盤費用,沒有具體測試各家的1核1G主機性能是否有差異,僅供參考。并且運廠商一般鼓勵使用比較高配置的機器,所以如果要做價格比較,需要根據(jù)自己的業(yè)務(wù)場景做具體的分析。
除了機器的基本費用,還要考慮其他費用。比如AWS北京,由于是和光環(huán)新網(wǎng)合作,光環(huán)新網(wǎng)要抽取費用的10%作為IDC費用。AWS的技術(shù)支持也是獨立收費的。
六、結(jié)語
本來還可以從開放API以及IaaS云提供PaaS服務(wù)這兩方面可以做下對比,對運維自動化來說,API非常重要,對降低運維成本來說PaaS服務(wù)也很重要,但這兩方面的評估成本比較高,所以沒有包含在內(nèi)。本文也僅僅代表個人觀點,盡量以一種客觀的態(tài)度表述各家的特性,寫這篇文章的目的只是從我個人的角度寫一點使用體驗,給云服務(wù)提一些建議,如果有事實的表述錯誤或者遺漏,還請指出。
另外談一些使用經(jīng)驗給使用云的用戶。
使用云要搞清楚自己的權(quán)利和責任,比如自建機房,機房只關(guān)心硬件,硬件之上的都由用戶自己負責,頂多幫你重啟下機器。但使用云后,許多用戶感覺云要對自己所有的行為負責,自己搞壞了系統(tǒng),虛擬機不能啟動了,也抱怨云服務(wù)。按道理,虛擬機之上的應(yīng)該是用戶自己負責,之下的云廠商負責。當然這個和前面提到的付費機制也有關(guān)系。云提供了便利的接口,所以可以做到主機無狀態(tài),壞了一個就換另外一個。我們的使用習慣是配置好基礎(chǔ)的虛擬機鏡像,包含docker服務(wù)以及其他基礎(chǔ)配置。所有的服務(wù)都通過docker啟動,docker鏡像保存到中心存儲。重要數(shù)據(jù)單獨掛載硬盤保存。一但節(jié)點壞掉,刪除重建也不需要太多時間。另外一個就是安全問題,廠商也攔不住你朝自己的腳開槍,既然云提供了可配置的防火墻,VPC等機制,就要對自己的安全負責。有的廠商擔心用戶沒有安全意識,默認給用戶的虛擬機上安裝各種安全盾,這個其實不利于用戶自己成長,一旦安全盾出了故障,就是廠商自己的責任了。
【本文是51CTO專欄作者“王淵命”的原創(chuàng)文章,轉(zhuǎn)載請聯(lián)系作者本人獲取授權(quán)】