cloud-computing

Drupal Introduction

Ricky Wu 的照片

Drupal 是一套由 PHP 所撰寫之優秀的網站內容管理系統。簡單化的安裝方式能夠快速的建立基礎的網站環境,以多樣化的模板套用模式,簡易的將網站轉換為客製化的風格。

Drupal 具有以下各項優點 :

  • 簡易的安裝及使用方式 – 使用者手冊提供了清楚的安裝及使用步驟宮使用者參考
  • 具有多項特色,包含 Search Engine Friendly URLs(SEF), categories, search function 等
  • 可擴充性–透過各項延伸模組來強化網站的功能性
  • 可塑性 – 不只能夠透過 Drupal 建立網站,更能簡易的轉換為論壇、部落格、wiki 等各種形式的網站
  • 免費使用–開放式原始碼,讓您能夠免費使用 Drupal 架構網站,您更能自行修改內部原始碼讓網站功能更符合您的需求
  • 龐大的使用者及使用群組– 來自世界各地的使用者,能夠協助您更快的為您的問題尋求正確的解答

多樣化的延伸模組,提供了 Drupal 強大的擴充能力,以簡單的步驟將需求模組放置入對應的資料夾結構下,透過網站管理者模式去開啟模組的功能並對模組依照客戶的需求做設定,便能建立起知識庫管理、網站發佈以及社群交流等具有不同功能的網站。

  • Content management – 使用者能夠透過簡單的 browser-based 介面去發佈個人的文章、部落格、照片、影像等。管理者也能夠簡單的管理網站風格
  • Drupal 特有的分類管理系統,能夠讓您以階層式的架構、交互式的內容指標去管理多種分類的內容類型。更可透過管理者定義的角色分類來管控網站內容的存取權限
  • Weblog – Drupal 能夠將單一網站透過設定,提供單一或多使用者所使用的 Weblog。 Blogger API,提供個別使用者 RSS 新聞發布功能,使用者發布的個人文章可存在使用者特定的個別資料夾下
  • Discussion-based community – Drupal 能夠成功的用來做為論壇網站的架設平台。每個網頁內容都有獨立的回應版塊,內建的分享功能,更能將每個網頁內容分享至您常用的社群平台上做分享討論
  • Collaboration – Drupal 提供的專案管理,適用於各式開放原始碼的專案開發。他的 wiki-like collaborative book 模組包含了版本控制,讓開發小組簡單的創建、更新管理專案文件

Drupal 是一種被應用於架設複雜網站的工具,它功能強大且較適用於高階開發人員,它需要足夠的專業知識與經驗去使用管理 Drupal。是一種較不適合於初階使用者的網站內容管理系統。

參考文件:

Drupal - Official website

您的個人雲端搜尋引擎

June Huang 的照片

拜網路搜尋引擎之賜,要獲得網路上無數的資訊已非不可能。如今,雲端技術更改變了人與網路間的互動,例如社交網路及資料儲存。而隨之而來相關的問題便是如何監控個人雲端上資訊的成長、事件的發生、和儲存的位置。想想在一天之中您在網路上所產生的所有資訊:電子郵件、行事曆上的事件、通訊軟體上的對話等,要記住所有發生的事件幾乎是不可能的。那麼要如何才能在日常產生的雲端資料中有效率的找到找到我們所需要的資訊呢?答案就是:您的個人雲端搜尋引擎。

Greplin 和 Introspectr 正是兩個屬於這類的服務,讓用戶可以過濾篩選他們的個人資料。這樣的服務可以將您的社交網路服務如 Facebook、Twitter;電子郵件服務如 Gmail (包括附件和網路鍊接);甚至文件分享服務如 Dropbox、Google Docs 都編入其搜尋器的索引。使用其服務,只需要輸入您的查詢,其便會傳回所有相關的資訊,無論這些資訊是儲存在那個網路服務之下。

Greplin 和 Introspectr 最主要的區別在於,Greplin 大約每隔 20 分鐘便自動更新其索引;而 Introspectr 則必須靠使用者手動更新索引。而另一個已知的差別是 Greplin 無法將 Twitter 訊息內的網址鍊接列入其索引[2],但 Introspectr 可以。Greplin 和 Introspectr 都允許使用者將多種不同的網路服務納入其索引。但是,對於想要列入索引的服務,使用者必須提供他們登入的資訊。很明顯的,安全性和隱私權成為令人關注的問題。而 Greplin 宣稱他們透過 OAuth 協定,只存取所需要搜尋的資料,並沒有使用者登入訊息的存取權[3]。

Greplin 和 Introspectr 為用戶在過濾使用他們個人的雲端資訊內容上提供了一個方便且集中的方案。只要有網路,使用者可以在各種電腦裝置平台上搜尋他們個人的資訊串,就如同收發電子郵件或是搜尋電腦硬碟內的內容一樣輕鬆簡單。

[1] Arrington, M (Aug 31, 2010). The Other Half Of Search: Greplin Is A Personal Search Engine For Your Online Life. Retrieved on October 26, 2010, from http://techcrunch.com/2010/08/31/greplin-ycombinator-personal-search/
[2] Schonfeld, E. (Oct 12, 2010). Introspectr Searches Your Social Streams. Retrieved on October 26, 2010, from http://techcrunch.com/2010/10/12/introspectr-search-social/
[3] Greplin: https://www.greplin.com/
[4] Introspectr: https://www.introspectr.com/

Server and Desktop Virtualization

Ricky Wu 的照片

虛擬化是一種電腦硬體及軟體資源應用的抽象化概念。它隱藏了電腦資源的實體特性,令使用者或是執行其上的應用程式無法察覺,就形同於執行於獨立的系統上。它可以將單獨的電腦資源同時運行多個作業系統,也可將多個電腦資源聯結起來,成為一個獨立的環境提供作業系統使用。
虛擬化技術分別應用在不同的概念上,包含:

  • Server Virtualization
  • Desktop Virtualization
  • Network Virtualization
  • Storage Virtualization
  • Application Infrastructure Virtualization

在這篇文章中,我們將針對伺服器虛擬化以及桌面虛擬化技術做討論。

伺服器與桌面虛擬化技術,單從字面上去看而沒有深入了解時,可能會很容易混淆兩者之間的差異,伺服器虛擬化是一種將一台實體伺服器,經過分割管理成多台較小型的虛擬伺服器的技術。大多數的網頁伺服器,都是應用伺服器虛擬化技術在實體伺服器上所建置的虛擬機器,取代原本硬體的限制,伺服器虛擬化技術能夠讓多個伺服器系統共存於一台實體機器上。伺服器虛擬化技術提供了以下幾點優點:

  • 提高硬體使用率 – 減少硬體及能源的消耗,減低管理的成本
  • 安全性 – 虛擬機可以隨時以映像檔的方式保存,一旦系統出現問題,可以馬上回復
  • 開發 – 安裝及設定都可以簡單的程序重覆執行

桌面虛擬化,有時也可以稱為連線端虛擬化技術,它的主要觀念在於使用者可以使用由共用的硬體伺服器提供出來的虛擬桌面環境。維基百科上對桌面虛擬化的解釋為,桌面虛擬化是一種就傳統使用者端運算輕量化所衍生出的伺服器端運算模型,它的設計提供了管理者在中央伺服器上管理每個使用者桌面虛擬機的能力,以及提供了每個使用者完整的個人電腦使用感受。
桌面虛擬化技術提供了獨立的作業環境且無須個別的硬體環境或是作業系統甚至於電腦軟體,而是透過中央的伺服器系統提供了所有的功能,除此之外,他更包含有以下各項優點:

  • 使用者可以任意的由各處登入屬於自己的桌面環境,而無須安裝個別的作業系統
  • 使用者登入登出時,可隨時更新桌面環境的現有的作業狀態,隨時備份現有桌面環境
  • 虛擬機器的狀態快照,能夠保持桌面環境的穩定性
  • 個人化設定與加密,使個別使用者的資料與工作狀態保有安全性

參考文件:
Wikipedia – Desktop virtualization
Wikipedia – Hardware virtualization
WEBOPEDIA – The Difference Between Server and Client Virtualization
InfoQ – An Introduction to Virtualization


 

RabbitMQ

RabbitMQ 是提供 Advanced Message Queuing Protocol (AMQP) 這種 protocol 標準的訊息佇列. 是使用Erlang 來實作的! 而且提供了非常多其他語言的 client API。

  • Persistent message
  • Transaction
  • Virtual host
  • Cluser

Message Producer:
Message Produce 利用 routing key 來分配 message 的目的 exchange. 這個 routing key 會決定最後會把message 送往哪個 Message Queue。

Exchange:
Exchange 會接受 message 並且找到 message 所對應的 Message Queue. 利用 Binding 來定義 exchange和 Message 的關係。
有三種型式的 Exchange
Fanout_Exchange
exchange:
Direct_Exchange
Topic_Exchange
Message Queue:
是用來保存 message, 並且把他們送到message consumer。

Message Consumer:
是最後 message 接收的地方, 他們會根據所收到的message來做相對應的工作。

Reference:
http://notes.variogr.am/post/143623387/broadcasting-your-logs-with-rabbitmq-and-python
http://barryp.org/software/py-amqplib/
http://www.infoq.com/articles/AMQP-RabbitMQ
http://www.infoq.com/cn/articles/AMQP-RabbitMQ
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

雲端上的遊戲 - OnLive

June Huang 的照片

隨著 OnLive 遊戲點播服務的出現,玩電腦遊戲變得更便宜且容易。要玩到最新的遊戲,不再需要擁有一台配備了昂貴顯示卡及高速處理器的高階電腦。只要有一台能執行 Windows XP, Windows Vista 的普通 PC, 或是 Intel核心的 Mac OS X,再加上高速網路就很足夠。使用者甚至可以透過 OnLive 提供的 MicroConsole,直接在家中的電視上使用 OnLive 的服務。OnLive 提供購買、租賃遊戲,遊戲試玩,以及與 OnLive 上的其他玩家一同進行多人連線遊戲的服務。並還有線上觀看他人遊戲,錄影,分享影片,和查詢玩家基本資料等的社交功能。

基本上,玩家們只需要懂得如何使用瀏覽器便可以使用 OnLive。遊戲資料以及操作都是在遠端的伺服器上運算,再以瀏覽器作為介面呈現。一旦運算完數據,遊戲畫面便會透過視訊壓縮串流的方式送回瀏覽器,讓玩家們繼續進行遊戲。對於玩家們而言,即時遊玩的感覺並不會和在家中主機上玩遊戲有太大的差別。OnLive 省去了安裝、更新遊戲的擾人過程,並且節省了儲存遊戲資料的空間,不失為一個想方便玩遊戲的選擇。

OnLive 以結合多個獨立或是分享的伺服器來達到遠端即時遊玩的目的。所有遊戲資料都在這些伺服器上存取及運算,而這些伺服器每六個月便會進行一次升級以提供玩家們最佳的遊戲體驗。每個伺服器都有其專職的工作,例如處理使用者介面,執行遊戲,或是處理視訊串流等。而根據不同的運算需求,其也使用了不同等級的伺服器來提供服務。因此在玩遊戲的過程中,視遊戲階段的不同,玩家們所使用的伺服器也會相對的改變。

因為所有資料都是透過網路傳輸,OnLive 的服務是相當依賴及受限於玩家的連線頻寬的。OnLive 表示透過 5Mbps 的網路,是可以達到 1280X720高解析度每秒 60 幀的高品質影像的。然而,當網路速度下降時,玩家所得到的也就是相對較低的解析度及畫面更新率。當網路速度為 1.5Mbps 時,畫面是可以達到一般解析度的;但卻因為受限於視訊串流速度,而無法像在家中主機一般順暢的遊玩一些需及時反應的動作類遊戲。並且,由於畫面是壓縮過後的視訊影像,原先遊戲中的美術細節將無法清晰的呈現。