Vertebra是Engine Yard用于“開發(fā)及管理安全的云應(yīng)用的平臺”,計劃早在2008年6月就披露了?,F(xiàn)在,它終于以LGPL3條款發(fā)布。
那么,Vertebra到底能為我們做什么呢(摘自EngineYard的新聞稿)?
Vertebra可用于云的自動化,還可用于編寫分布式的、實時的應(yīng)用。Vertebra平臺的特別之處在于它的能迎合不同云的差異,自動化各種流程及應(yīng)用的管理。
Vertebra的功能包括:
- 強大、標準的XMPP(Extensible Messaging and Presence Protocol)基礎(chǔ)架構(gòu)
- 管理安全策略的“安全及發(fā)現(xiàn)代理”
- 編排人工及機器運維任務(wù)的“流程自動化代理”
- 系統(tǒng)規(guī)劃登記使客戶的應(yīng)用能自我組織
- 平臺上的應(yīng)用就像互聯(lián)網(wǎng)上的e-mail系統(tǒng)一樣自動地聯(lián)合,實現(xiàn)應(yīng)用間無縫、安全的操作。
- 分布式審計/日志功能
- 分布式任務(wù)控制便于掌握運營狀況
我們很好奇Engine Yard是否用Vertebra管理他們自己的基礎(chǔ)設(shè)施,于是詢問了Engine Yard創(chuàng)始人和架構(gòu)師Jayson Vantuyl。
我們沒有大范圍使用Vertebra。就像Rails是從BaseCamp中提煉出來的一樣,Vertebra是從我們用來管理內(nèi)部云的各種技術(shù)中提煉出來的。而當(dāng)Vertebra自身成長起來,我們還沒來得及完全將它融合回去。不過我們已經(jīng)有了初步的虛擬機管理和狀態(tài)查詢設(shè)施,也有一些使用這些設(shè)施的工具。
我們對現(xiàn)狀很滿意,如果我們維持部署與開發(fā)同步,就會犧牲Vertebra的開發(fā)速度。我們在非常早的階段就對外發(fā)布了Vertebra,目的是盡早讓社區(qū)享受到它的價值。隨著Vertebra進一步發(fā)展(目前是0.3版),我們預(yù)計會更完整地將它整合進現(xiàn)有的內(nèi)部系統(tǒng)。我們既要完善所需的技術(shù),又不能把客戶當(dāng)作小白鼠,所以我們的決定主要是在這兩者之間求得平衡。
Vertebra網(wǎng)站上提到了它的安全功能,并且“類似于年高德劭的DNS系統(tǒng)和e-mail系統(tǒng),Vertebra的設(shè)計能實現(xiàn)自動化的聯(lián)合”。Jayson詳細解說了這句話的意思:
和大多數(shù)網(wǎng)絡(luò)系統(tǒng)一樣,Vertebra從兩個層面去傾力實現(xiàn)安全性:“傳輸層”和“應(yīng)用層”。
服務(wù)器與客戶端之間的傳輸層安全由XMPP提供,是很多人熟悉的TLS/SSL??蛻舳诉B接還要經(jīng)過登錄系統(tǒng)的驗證。聯(lián)合服務(wù)器之間的連接還額外有“服務(wù)器回撥(server dialback)”形式的安全機制。
用e-mail系統(tǒng)來類比也許能幫助理解,e-mail服務(wù)器之間也是通過類似方式實現(xiàn)聯(lián)合的。不過盡管e-mail的聯(lián)合是自動化的,卻有點不分青紅皂白。驗證e-mail來源的現(xiàn)有手段非常少(不過SPF和DomainKeys正力圖改善),而當(dāng)一臺XMPP服務(wù)器接收到聲稱來自某服務(wù)器的連接,它會聯(lián)系該服務(wù)器,交給該服務(wù)器一小段信息,并要求通過剛才的連接發(fā)送回來。只要保證這段信息不會被猜到,就能憑借這段特殊信息向服務(wù)器證明連接是真實有效的。
用Vertebra還可以“把真實的人包裝進Vertebra API”。這種特性聽著有些稀奇,它到底是什么意思呢?
設(shè)立人工交互代理,可通過XMPP聊天協(xié)議將人類整合進流程中,作為工作流系統(tǒng)的一部分。這樣就給現(xiàn)有人工系統(tǒng)建立了由XMPP通信驅(qū)動的模型,并且為將來進一步自動化預(yù)留了清晰的替換點。
更具體地說,在Vertebra里你的所有代碼都是以“操作(operation)”形式暴露出來的?!安僮鳌笔墙o程序員的工具,它們打扮成程序員熟悉的函數(shù)調(diào)用。這些都有助于與機器的接口,不過與機器的接口向來不是程序編寫中最困難的部分。開發(fā)與人類的接口同樣困難,我們已經(jīng)為解決此問題投入了相當(dāng)精力。
為了給命令行工具留出實現(xiàn)途徑,帶來了一些接口問題,這是我們首先打算消除的。雖然成果頗豐,不過Ezra(譯注:Ezra Zygmuntowicz,Engine Yard創(chuàng)始人之一,Merb主要貢獻者)感覺繼續(xù)用XMPP聊天系統(tǒng)去實現(xiàn)通過IM控制,已經(jīng)挖掘不出什么潛力。因此他想到利用網(wǎng)關(guān)代理,比命令行更進了一步。
我仔細思考之后意識到,如果Ezra的模型能倒轉(zhuǎn)過來,會非常強大。具體地說,如果除了讓人通過代理觸發(fā)操作,要是能讓人“接收”到操作會怎么樣呢?這個想法發(fā)展下去就成了我們所謂的“人肉代理(The Meat Agent)”。名字可能不太好聽,不過這種代理既允許人被系統(tǒng)編排,又允許人編排云中的操作。更多詳細信息,請您微信關(guān)注“計算網(wǎng)”公眾號: