2012年4月2日 星期一

不靠別人!親手佈建自家的雲端服務平台 AppHouse

Standard
現在,凡事只要扯上『雲端』兩字,價值就上漲好多倍,所以,任誰都想狹著『軟體奈米』之勢,大做文章。此外,在大多數人的印象中,雲端就是 Google App Engine(GAE) 、 Amazon E2 或 Microsoft Windows Azure 的代名詞,無論是誰,只要是能將服務放在上面,或是將公司搬到了台北 101 的 Google 樓上,就叫做上了雲端。而那些所謂專家說的 IaaS 、 PaaS 、 SaaS 專有名詞,其實都是舊瓶新酒,只是商業界幫雲端和網路生態的各個部份做了劃分,方便於解釋給投資人或政府單位的『難懂標題』而已。

簡單來說,雲端對一般的企業,最重要的是發展自家應用,提供更多的『加值』且『不需大量人力』的服務,然後對客戶進行『綁樁』;對中間維護伺服器的廠商,就是『租出更多的伺服器』,得到更『大規模的需求和機會』,進一步『降低機房建設和維護的成本』;而對電信單位,就是賣出更多『通信產品』和『頻寬線路』,也能換到更多『國家預算』。

雲端對不同的企業有不同的意義,但對終端的一般企業和使用者來說,建立一個不用擔心擴展性和極限的網路服務,是他的真正價值所在。所以講穿了,雲端並不是什麼新東西,多企業會將服務放在雲端上,求的不過就是為了量化的『擴展性(Scalability)』,如果你很熟悉網路產業,就會發現其實這就是以前,當一個網路服務長大到一定規模,才開始要考慮的事。只是現在這個時代,網路服務搭上了終端實體產品的『量產列車』,許多服務的第一時間規模就相當龐大,所以直接跳過網路服務的發展期,馬上得考量第二步的事。這也是為什麼現在雲端熱哄哄的原因。

假設業界使用雲端的真正原因,主要是為了追求擴展性,我們不能親手打造嗎?我們是否可以自己建構一個像 Google App Engine(GAE) 的平台,將自己的 Web App 輕鬆佈建在上面?也保留日後擴展的可能性?

於是『AppHouse』應運而生,我們開始投入開發這樣的專案,目前開放原始碼,以 GPL 做為授權而公開。雖然初期是自己使用為主,但這對在國內還未投入實際行動的雲端市場來說,算是一種相當特別的嘗試。如果可以,也希望能找到機會,在國內能建置公開的平台,供業界或軟體開發者使用。

『AppHouse』最終目標是提供一個 Hosting Platform,就如 Google App Engine(GAE) 所做的事一般,讓我們可以自己搭建自家的雲端服務平台,並輕鬆將過去使用 Node.js 寫的網站服務或 Web App 佈建在上面。當然,也像 GAE 一樣,能藉由增加 Instance ,達成擴展服務規模的需求。如果你有注意,其實對岸也有人發起類似的專案『NAE』。

相對於許多國際知名的雲端平台,AppHouse 算是新專案,所以各方面功能也許不是這麼完整,初期能達到的功能就只有:

  • 支援多個 App 同時運行。
  • 支援沙箱(Sandbox)設計,讓不同 App 可在互相不干擾的情況下獨立運作。
  • 自動偵側並重起 App。
  • 支援 Virtual Host 和網域名稱的設定。


如果不考慮開放給其他人佈建 App 的情況下,只考慮建構自己的平台,目前 AppHouse 的狀況算是夠用的,由於有沙箱(Sandbox)的設計,也不需要透過虛擬化(Virtualization)技術,就可以搭建多個 App,效能也相當不錯。

日後的方向,會嘗試整合規模化資料庫(Database)的支援和 CDN,讓 AppHouse 能夠有更完整的功能。


後記

無論如何,希望在有心人的資助下,能夠建立起國內第一個 Node.js 雲端平台供各界使用。

如果您願意當有心人,麻煩請與我們聯絡!