一直以來,云面臨的一個大問題是互操作性。日前,Apache軟件基金會(ASF)針對此問題發布了云服務互操作性程序庫Apache Libcloud 1.0版。
大家可能沒聽說Libcloud,但Libcloud卻是有年頭的了。Libcloud代碼始創于2009,是個Python庫,它隱藏了不同云提供商應用程序編程接口(API)之間的差異,使得開發人員和系統管理員可以通過一個統一的、易于使用的應用接口來管理不同的云資源。
在云發展的早期階段,云服務提供商開始提供基礎設施即服務(IaaS)虛擬機(VM)托管KVM、VMware或XenServer虛擬機。Apache Libcloud對這些平臺之間的差異進行了抽象。其做法是提供一個單一的Python API,用于從多個云、管理環境和自動化服務器部署收集數據。云服務提供商在后來一段時間里出現演變,開始提供簡單的平臺即服務(PaaS),如DNS、負載均衡和備份,Libcloud也升級支持這一類的新云。
Apache Libcloud副總裁Toma Muraus表示,“我們一開始做Apache Libcloud時,曾嘗試創建一個云服務供應商標準API規范,有過很多挫敗。我們決定建一個開源互操作性程序庫,屬于Apache軟件基金會的一部分。Apache Libcloud 1.0版引入了強大的多云抽象,不僅可用于IaaS,也可用于DNS、存儲、應用負載均衡、備份和容器即服務(CAAS)。”
Libcloud是一個強大的開源項目,包括AWS、Apache CloudStack、Rackspace、谷歌云平臺、微軟Azure、VMware和OpenStack在內的50多個云提供商采用了Libcloud。Libcloud在這些系統了通常是作為一個程序庫使用,用于多云集成和直接應用程序接口。
大家可能也猜到了,Libcloud程序庫也是DevOps開發商所喜愛的東西,他們希望自己的工具具有簡單的多云自動化功能。SaltStack 首席技術官Thomas Hatch表示,“Apache Libcloud成功地打造了穩定可用的API,可用于云環境管理。假若沒有它的話,要建立SaltStack云里云編排幾乎是不可能。我會在我的項目里更多地用這個庫,對此我十分地憧憬!”
Apache Libcloud最新版支持GaaS、亞馬遜EC2容器服務(ECS)、谷歌云容器引擎(GKE)和本地選項Kubernetes和Docker。Muraus給了以下解釋,“Apache Libcloud提供簡單的API抽象,可在私有云和公共云里部署Docker容器。我們見到希望從免費云或低成本云里受益的學術界和非營利組織采用該庫,但我們仍將保持公共云兼容性,以供商界采用。”
所以要問的不是“誰采用Libcloud?”而是“誰沒有采用Libcloud?”假如閣下需要和多個云供應商合作或是要在混合云里干活,Libcloud是必須的。