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

現在,凡事只要扯上『雲端』兩字,價值就上漲好多倍,所以,任誰都想狹著『軟體奈米』之勢,大做文章。此外,在大多數人的印象中,雲端就是 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 雲端平台供各界使用。

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

留言

  1. 對於雲端解釋分析的很好!

    回覆刪除
  2. 目前沒看到 AppHouse 的規格細節,請問這個專案的目的是讓一般人可以打造私有雲嗎? 文中的 App 指的是一個網站還是一個行程? 硬體虛擬化的作法為何?

    回覆刪除
    回覆
    1. 這比較難回答,有些名詞要先定義一下。:-)

      對一般企業來說,其實『私有雲』就是自己的網路服務,只是隨便不公開給第三方廠商或外界使用。至於這個網路服務是放在 Hosting Platform(GAE、E2... etc) 上,還是自己設計搭建,都是一樣。

      而 AppHouse 目的是讓我們可以自己打造『雲』,但這樣講其實並不準確,應該說 AppHouse 本身是 Hosting Platform(雲的容器)。所以,一般人可以利用這個專案打造私有雲,這是肯定的。

      如同 GAE(Google App Engine) 全名,其實現今很多人已經將 Web Service 視為 Web App,所以你可以視一個網站為一個 App。依照目前全世界各 Hosting platform 的做法,App可由動態調整行程(Instance)數量,達到擴展服務規模。所以 AppHouse 也是朝這樣的設計去做。

      因為 AppHouse 是以純 Node.js App 為主,且自己設計 Process 等級的 Sandbox,所以並不需要依賴硬體虛擬化。因此相對來說,硬體需求上是不高的,效能也會相當好。

      BTW, AppHouse 的開發目前還是以自用為主,雖已擬定好未來方向,但仍在處理一些技術細節。最終希望能提供一個解決方案,讓每個人買些 VPS 就能打造自己的雲。當然,未來若有企業有意願使用 AppHouse 搭建一個 Hosting Platform 也是可行的。

      刪除

張貼留言

這個網誌中的熱門文章

Web 技術中的 Session 是什麼?

上手使用 JavaScript 的 Map、Reduce 吧!

JavaScript 好用的 async 異步函數!

淺談 USB 通訊架構之定義(二)

淺談 USB 通訊架構之定義(一)