如今,云計算無處不在。最簡單的說,云計算是通過互聯(lián)網(wǎng)存儲和訪問不同的數(shù)據(jù)和程序,而基礎(chǔ)架構(gòu)即服務(wù)(IaaS)是云的基本構(gòu)件。IaaS支持在云環(huán)境中自然開發(fā),測試和使用應(yīng)用程序。在本文中一個想通過IaaS托管Java應(yīng)用程序的用戶,如何選型國外主流的5大云供應(yīng)商服務(wù)。它簡要介紹IaaS,然后比較5個主流云提供商:Amazon EC2,Google Compute Engine,IBM SoftLayer,微軟Azure和Digital Ocean。
IaaS可幫助企業(yè)避免購買和運(yùn)行自有服務(wù)器的復(fù)雜性。而且,不需要維護(hù)和升級軟件。它在許多情況下具有較低的基礎(chǔ)架構(gòu)成本,從而幫助沒有時間和資本的新企業(yè)投資自己的硬件基礎(chǔ)設(shè)施。
IaaS的其他一些好處包括:
服務(wù)可作為大量資源分發(fā)。
靈活,IaaS提供彈性縮放。
成本,可根據(jù)業(yè)務(wù)需求的不同而不同。
多個用戶可以使用單個硬件。
位置獨(dú)立性,只要有互聯(lián)網(wǎng)連接,并且云的安全協(xié)議允許,通常可以從任何地方訪問云服務(wù)。
以上是IaaS用于構(gòu)建Web應(yīng)用程序的優(yōu)勢,所有需要做的就是決定要選擇哪個解決方案。唯一的問題是今天有這么多的選擇。作為Java開發(fā)人員,我最初在評估各種IaaS服務(wù)時遇到了一些困難。因此,在本文中,我將介紹托管Java Web應(yīng)用程序的五個最佳解決方案,并將它們相互比較。
亞馬遜EC2
亞馬遜彈性云(Amazon EC2)是一種Web服務(wù),可在云中提供可調(diào)整的計算容量。它有助于啟動和管理服務(wù)器實例,從而使其適合用于Web規(guī)模計算的開發(fā)人員。
▲
實例有不同的大小和配置。 EC2允許AWS提供不同的實例類型,可用于滿足特定需求。因此,可以根據(jù)需要啟動不同的虛擬機(jī)。如果正在部署Java應(yīng)用程序,則可以將應(yīng)用程序服務(wù)器(Tomcat,Web Sphere等)安裝到一個虛擬機(jī)中,并在具有適當(dāng)配置的單獨(dú)VM上使用其他服務(wù),如微服務(wù),數(shù)據(jù)庫等。
使用Amazon EC2,可以靈活的選擇不同的實例類型,操作系統(tǒng)和軟件包。Amazon EC2具有內(nèi)存,CPU和實例存儲配置,有助于存儲選擇。此外,可以選擇最適合你的操作系統(tǒng)和應(yīng)用程序的啟動分區(qū)大小。
使用EC2的唯一缺點(diǎn)就是費(fèi)用。隨著我的工作流程變得更加復(fù)雜,我使用更多的服務(wù),很難投入成本。然而,為了幫助估算成本,亞馬遜提供了一個月度計算器。
與其他服務(wù)提供商相比,網(wǎng)絡(luò)并不靈活。由于大量數(shù)據(jù)必須從LAN的一端移動到另一端,因此數(shù)據(jù)傳輸距離遠(yuǎn)遠(yuǎn)超過互聯(lián)網(wǎng)上常見的擁塞問題。
Amazon EC2可以說是行業(yè)的標(biāo)準(zhǔn)。許多領(lǐng)先的網(wǎng)站和應(yīng)用程序使用EC2。比如Instagram,Reddit,Netflix,Adobe,三星等等。你可以找到很多使用Amazon EC2的案例!
Google Compute Engine
Google Compute Engine(GCE)可幫助你在Google上為自己的服務(wù),使用相同基礎(chǔ)架構(gòu),并運(yùn)行虛擬機(jī)。GCE為企業(yè)提供更大的靈活性和控制能力以及訪問計算資源的規(guī)模,從根本上改變企業(yè)對解決問題的思考方式。GCE很像EC2,但虛擬機(jī)運(yùn)行在Google的基礎(chǔ)設(shè)施上。在Google Compute Platform上部署Java很簡單。
▲
網(wǎng)絡(luò)定價昂貴。由于GCE比較新,與AWS不同,編程語言的選擇是有限的。Google Compute Engine中不支持AWS中支持的一些Java API。從GCE到任何其他平臺的過渡并不容易。還應(yīng)該注意,為了運(yùn)行任何Java框架,GCE需要為用戶做更多的幫助,因為它們沒有集成的包。
最常見的GCE客戶包括EverNote,飛利浦,可口可樂,HTC,摩托羅拉,同時可汗學(xué)院,Spotify,口袋妖怪和百思買等也利用GCE的數(shù)據(jù)倉庫和分析功能。
IBM SoftLayer
正如IBM倡導(dǎo)的“無需妥協(xié)的云”,它提供高容量,可擴(kuò)展性和安全性的云服務(wù)。 IBM SoftLayer的高速內(nèi)部網(wǎng)連接對企業(yè)復(fù)雜應(yīng)用程序所需的IaaS解決方案,但必須支付額外的費(fèi)用才能使其工作。
▲
Softlayer的裸機(jī)基礎(chǔ)架構(gòu)可以與虛擬化服務(wù)器結(jié)合使用,提供一系列的hyper-V技術(shù)的解決方案,從而可以優(yōu)化生產(chǎn)工作負(fù)載。并在SoftLayer的數(shù)據(jù)中心之間提供了極佳的高性能帶寬,使云環(huán)境能夠承受從一個數(shù)據(jù)中心到另一個數(shù)據(jù)中心的數(shù)據(jù)突然增加。同時,SoftLayer的單一租戶服務(wù)器模式通過綜合防火墻保護(hù)數(shù)據(jù),為敏感信息提供保護(hù)。除IBM SoftLayer外,沒有其他云提供商提供自定義虛擬機(jī)類型。SoftLayer提供調(diào)用其API的maven依賴關(guān)系。
SoftLayer的服務(wù)沒有捆綁在一起。雖然IBM提供廣泛的服務(wù),但不僅僅是云服務(wù)。相反,它們將公有云服務(wù)與內(nèi)部和IBM品牌的服務(wù)相結(jié)合,從而提供“虛擬IT部門”,即聯(lián)系IBM進(jìn)行托管服務(wù)以進(jìn)行軟件更新和維護(hù)。
重要用戶如Artomatix,Cedato和ClickTale等。
微軟Azure
全面的服務(wù),可幫助你快速開發(fā),部署和管理全球各地微軟的數(shù)據(jù)中心的應(yīng)用程序。它支持Windows,Linux和社區(qū)虛擬機(jī)映像以及跨平臺開發(fā)工具和框架。支付所用的費(fèi)用,就可以可以節(jié)省大量成本并實現(xiàn)更高的效率。
▲
Azure的服務(wù)器可以讓用戶在云端完全控制。Application Insights是面向多個平臺上的Web開發(fā)人員的服務(wù)。遵循“檢測,評估,診斷,穩(wěn)定和關(guān)閉”的標(biāo)準(zhǔn)安全模式,強(qiáng)調(diào)安全性。 Azure還提供簡單,用戶友好的服務(wù),以增加保護(hù),如多因素身份驗證和應(yīng)用密碼要求。如果你需要使用自定義第三方軟件或許多應(yīng)用程序的解決方案在單臺機(jī)器上運(yùn)行,那么Azure的IaaS解決方案能提供幫助。作為Java開發(fā)人員,你將發(fā)現(xiàn)在這里輕松部署和擴(kuò)展WebApps。
實例之間的負(fù)載平衡可能會中斷應(yīng)用程序的狀態(tài);即不能保證來自同一用戶的兩個請求將轉(zhuǎn)到相同的實例。Azure在選擇實例類型時不提供靈活性。此外,它需要專業(yè)的管理和維護(hù),包括修補(bǔ)和服務(wù)器監(jiān)控。
在微軟Azure上的代表用戶是Essar,CloudMunch,AppPoint和ShepHertz,通過Azure節(jié)省了65%的部署。
Digital Ocean
Digital Ocean針對Linux開發(fā)者。它提供了簡單的設(shè)置,為用戶提供了一個干凈,易于使用的界面,具有很少的功能和一鍵式部署。它具有控制面板來管理諸如雙因素身份驗證,良好的API,自動備份和DNS管理等功能。它提供了與其他服務(wù)相比便宜的SSD主機(jī)。
▲
提供的服務(wù)是虛擬機(jī)和DNS管理,無負(fù)載平衡,托管數(shù)據(jù)庫,分析,Hadoop集群等必不可少的服務(wù)。如果不僅僅關(guān)注自動縮放和高可用性,更多地投入管理服務(wù)器,那么Digital Ocean適合你的使用。對于Java開發(fā)人員,官方網(wǎng)站有一個社區(qū)提供教程。
Digital Ocean的不足是它們的磁盤位于管理程序中,并且它們不使用集中式存儲,如果托管在故障管理程序上,則導(dǎo)致完全數(shù)據(jù)丟失的風(fēng)險相對較高。但是,如果你有這樣的風(fēng)險,并且有備份,那么你可以用你滿意的價格獲得一些出色的服務(wù)器。
Digital Ocean的用戶包括NodeBB,Rockerbox,Ghost和taskRabbit。重要案例是jQuery基金會正在使用Digital ocean。
綜合比較: