顯示具有 網路技術 標籤的文章。 顯示所有文章
顯示具有 網路技術 標籤的文章。 顯示所有文章

High Availability(HA) 與 Load Balance

最近在架設Web Server和Database的Cluster,主要的目的在於建構出一個High Availability(HA)的服務環境。

High Availability(HA)指的是提供一個高可靠度的運作環境,以網路服務來說,在Back-End需要的是Web Server Cluster和Database Cluster,目的在於當有任何一個節點crash後,會有其他的節點自動補上。

而Load Balance指的是當使用者的請求(request)進入到Back-End之後,會導入到目前loading比較輕的server,如此一來可以減輕每個server的負擔。

【相關閱讀】
商業服務的Ruby on Rails HTTP Cluster觀念及測試

Multi-Tenant Data Architecture 分享 (多租戶的資料設計架構) part1

最近同事分享了一篇好文章:Multi-Tenant Data Architecture,在這裡紀錄一下自己閱讀的感想。在這一篇中,先針對三種架構進行介紹,比較其優缺點和適用環境,下一篇再來描述如何針對不同的需求,選擇一個最適合你的設計架構。

  • 什麼是多租戶(Multi-Tenant)?
從字面上來看,就是有多個租用的客戶。在SaaS的雲端平台架構中,多租戶技術指的是大量的用戶共同使用、分享一組軟硬體資源。這這裡要分享的是在多租戶技術中,資料隔離的架構設計。

在Google Reader中搜尋特定時間點之後的RSS資料

我一直覺得Google Reader的搜尋功能雖然堪用,但是還不夠完善,像是我有時候必須要找某個特定時間點的RSS Feeds就無解了...。

看網路上Google了許久,似乎沒有一個比較好的作法。目前比較可行的方法是利用Google Ajax API來取得XML檔案,再利用XML Reader來閱讀,雖然效果不好,但是這是我目前可以找到的方法。還是分享給大家。

首先,請大家記住這個網址:【http://www.google.com/reader/atom/feed/】,這是等會要用來取得RSS資料的網址。

接著,你必須要把你想要搜尋的RSS Feeds位置找出來,如果不知道網址是多少的讀者,沒關係,這裡教大家一個方法。首先在Google Reader中,點選你想要搜尋的那個訂閱,然後會看到右上方有一個【顯示詳細資料】的選項:



點選進去之後就會看到【資訊提供網址】,這個就是你訂閱的RSS位置了,請把它複製下來:



接著把資訊提供的網址貼在前面的網址後,像這裡就會變成:【http://www.google.com/reader/atom/feed/http://kevingo75.blogspot.com/feeds/posts/default】,接下來要在這一串網址後面加上一些參數。參數的定義如下:

  • n:代表要抓回n筆資料
  • ot:代表抓取某個時間點之後的RSS Feeds
這裡的時間表示法要用【Unix Time】表示法,不會計算也沒有關係,這裡有好用的工具可以幫助你轉換,請使用【Unix Time Converter】這個工具,在下方輸入你想要限制的時間點,按下【Convert】,複製下方的Result即可:


所以現在假設我想要抓【I am here.】網誌的資料,限制條件是從【2010年1月26日以後抓十筆】的話,整個網址應該會長成這樣:【http://www.google.com/reader/atom/feed/http://kevingo75.blogspot.com/feeds/posts/default?n=10&ot=1264464000】,把他貼到網址列,應該會得到一串的XML頁面:



接著把這個頁面的XML檔案複製起來貼到可以讀取XML格式的閱讀器即可,這裡提供一個「Online XML Reader」給大家:


應該就可以看到勉強可以接受的結果了。當然如果你會寫程式,就直接解析那串網址就好了,可以針對你想要抓取的部份作擷取。

雖然這個方法我承認很麻煩也不太好用...不過這是我目前可以找到的解決方法,如果大家有更好得方式可以在Google Reader中針對特定時間範圍作搜尋的話,歡迎留言分享:)

Youtube 的新介面與新功能分享 - 更快更友善的影音服務!

Youtube最近真是相當熱鬧!它不僅開始支援HTML5的標準,同時也開始嚐試【租賃電影】的服務。在2010年剛開始,Youtube看起來充滿活力,讓我們來看看有什麼有趣的功能吧!

  • 提供出租影片服務

加速(Speed UP)你的Blog讀取速度 - 更新 I am here. 心得分享!


不知道你有沒有發現,當你的部落格安裝越來越多所謂的【外掛套件】時,整個讀取的時候變得越來越慢?或是妳在寫Blog的時候,有沒有針對圖片作最佳化的調整呢?

最近發現 I am here. 的讀取速度越來越慢,只好著手來調整一下Blog的效能,以下是幾點心得分享,希望對大家有幫助:)

以下分成心得建議區、工具推薦區和實際調整區三大塊。心得建議區中,我會提供幾個基本的概唸給大家參考;工具推薦區則是會提供幾個好用的工具來測試、觀察我們的部落格運作情況,以供實際調整使用;最後的實際調整區則是開始著手加速部落格。

  • 心得建議區

  1. 安裝部落格外掛前記得停看聽

  2. 拖慢部落格速度第一名就是各式各樣的部落格外掛。很多時候我們看到一個很酷炫的外掛,加上現在外掛的作者們都很體貼,通常都有【懶人安裝法】,幾個複製貼上的動作就完成了,殊不知一兩個外掛也許無傷大雅,但數量一多時,就會造成整個部落格的讀取速度變得相當慢,甚至不當的Javascript寫法還會使得CPU的使用率飆高,不知情的人還以為瀏覽器怎麼這麼差呢!

    所以在安裝外掛前,記得先仔細想想這個外掛的用途是什麼,或是在Google裡面找找看這個外掛的相關評價,有沒有可以替代或調整的部分。

  3. 人人都喜歡看大圖,但是不喜歡等待大圖讀取

  4. 大家都喜歡看解析度高、美美的大圖片,但是這樣的圖片就是拖慢部落格讀取速度的另一個殺手。在截取圖片、製作Logo、設計部落格樣式時,記得個原則,就是【化繁為簡】。截圖的時候,只選取需要的部分,不要每一張圖都是全螢幕;儲存時,挑選適當的格式並且進行壓縮,在不破壞閱讀及美感的情況下,儘量的縮小圖片的尺寸。

  5. 慎選檔案放置區

  6. 在部落格中,除了文字以外,你的圖片、Flash動畫、Javascript、CSS檔案等等,有很大的機會需要外連到其他地方進行讀取。這時候挑選一個快速、穩定的檔案放置區就很重要了。如果你放置檔案的主機三不五時就掛掉,或是效能低落,連帶的也會嚴重影響你的部落格讀取速度。

  7. 慢吞吞的元件擺最後

  8. 瀏覽器在讀取網頁時,大致上是按照順序讀取的。如果你有一個Javascript或元件要花費很久很久的時間,那使用者可能就會等得不耐煩了。所以嚐試把需要花費大量時間的原件擺在網頁的最後再讀取,重要的內容先呈現。下面幾篇都有類似的概念,大家可以參考:



  • 工具推薦區

  1. Pingdom:http://tools.pingdom.com


  2. Pingdom 是一個線上幫助你檢查部落格每個元件讀取速度的服務。輸入網址之後,按下【Test Now】就可以開始檢測。檢測的結果會顯示如下:



    在這裡我們可以觀察,黃色的線段代表網站開始發出要求之後,第一次得到回應的時間。比如你打電話要去訂pizza,黃色區塊就是只撥電話後,到對方接起電話為止。綠色表示建立連線的時間,就像是你告訴對方要訂什麼pizza,對方和你確認完畢的時間。藍色則是傳輸的時間,也就是在你掛掉訂Pizza的電話之後,pizza最後順利送到你家所需要的時間。

    經由Pingdom,你可以找到最花時間的元件。可能是圖片、Javascript或CSS,總之找出那個關鍵元件,就是你要著手解決的部分。




  3. Firebug + YSlow + Google Page Speed - 查看哪個環節出了問題!


  4. Firebug是Firefox中相當好用且重要的一個套件,主要用來針對網頁原始碼進行除錯的工具,你可以很方便的用它來針對網頁進行觀察、修改、除錯。在這裡安裝它:

    Firebug:https://addons.mozilla.org/en-US/firefox/addon/1843

    基本的使用方式可以參考:



    YSlow和Google Page Speed分別是Yahoo和Google推出的網站分析工具。由於這兩款工具都是Firebug的【外掛工具】,所以一定要先安裝Firebug之後才能使用。



    在安裝完之後,打開Firebug就會看到多了一些項目可以選擇,包含了Page Speed和YSlow:



    要進行測試時,點選到該頁面,選擇【Analyze Performance】或【Run Test】就可以了:





    同樣的,這兩個工具也是用來幫你找出哪個元件是需要花最久時間去讀取的。同時他也會給你一些改善的建議,你可以根據這些建議來進行修正:





      這裡也有一些好文章可以參考:



  5. Smush.it - 圖片瘦身利器:http://www.smushit.com/ysmush.it/


  6. 在寫部落格時,要用哪一種圖片格式比較好呢?如果你還在用JPG的話,不妨改用PNG試試看,尤其是經常抓取系統截圖的讀者,更應該使用PNG作為你的圖片格式。詳細的解釋可以參考Browny Walking的這篇文章:


    簡單來說,JPG對於照片、風景圖片等的壓縮力較好;PNG對於處理文字、線條、輪廓等圖片叫強。

    在抓取好圖片之後,如果還想要進一步的幫圖片瘦身,不妨嘗試看看Smush.it這個服務。選擇【UPLOADER】之後,一次可上傳多張圖片,它會幫你縮減圖片的尺寸,選擇【Download Smushed Images】下載壓縮完:



  • 實際調整區

  1. 移除不必要的外掛


  2. 把不必要的部落格外掛移除當然是加快讀取速度關鍵之一。在幾經考量之後,我把Plurk的外掛給移除了。大家可以考量自己部落格的情況來進行這個步驟。



  3. 挑選更快速的檔案放置區


  4. 如果你看得懂Google Page Speed或YSlow的分析結果,你會發現瀏覽器在要求網頁的時候,會到很多其他的地方抓取必要的Javascript、CSS檔案,如果能夠把這些外部的程式碼儘量放在一起,是不是會比較快?如果你把這些外部資源散落在各地,就好像你打電話去Pizza Hut訂了一個海鮮Pizza、又打去達美樂訂一個夏威夷Pizza一樣,打電話的次數(瀏覽器要求資源)越多,速度當然越慢。

    你可以觀察每一個你安裝的外掛,通常這些小東西會去要求外部資源的機率很大。如果你在程式碼中看到類似【】這樣的區塊,就代表他有嚐試要去外部抓取Javascript的動作:



    在這裡我挑選Google Code當成我的外部檔案放置區,把可能會用到的javascript上傳到Google Code,並且更改原來外掛中呼叫Javascript的路徑:



    不過在執行這些步驟時,一定要注意【備份】原來的程式碼!因為將原來的Javascript位置更改之後,很有可能會造成外掛無法使用,請在有把握的情況下進行,或是隨時備份可以正常運作的程式碼以便能夠隨時回覆。

    另外,Google在之前推出Ajax Library API同時幫忙維護了幾個知名的Javascript Library,同時幫忙維護了幾個知名的Javascript Library,如果你的網站有使用JQuery、Prototype、Dojo等知名Javascript函式庫,不妨把位置換到Google的空間,通常會有意想不到的速度喔!



    一些比較有名的JS函式庫如下:


    官方參考文件在此:


  5. 縮小圖片


  6. 把首頁可能會讀取到的圖片進一步壓縮處理,可以增加讀取速度。

  • 進階區塊


下面這是一些其他比較進階的方法和自己蒐集的筆記,等到將來有機會在慢慢實作並且介紹給大家:



在修改之後,I am here. 現在的執行速度只需要三秒到四秒之間,速度上有長足的進步。希望各位讀者在閱讀的時候,能夠有更好的體驗:)

如果你有任何技巧或問題,也歡迎留言大家討論。

四個支援離線存取的Google服務(GMail、Calendar、Reader、Docs)

也許大家都知道Google的某些服務可以支援離線瀏覽,不過目前到底有哪些服務可以使用這樣的功能呢?目前支援的服務總共有四個,分別是【GMail】、【Google Calendar】、【Google Reader】、和【Google Docs】。

離線瀏覽可以讓你在沒有網路或網路速度不佳的情況下也能夠存取這些服務。要使用這個功能之前,必須要先安裝【Google Gear】:





安裝完之後,就可以開始使用離線服務了。讓我們來看看每一個服務分別要怎麼啟動這樣的功能,並且有什麼需要注意的事項!

  • GMail
安裝完Google Gear之後,在GMail中的【Setting(設定)】選擇【Offline(離線)】就可以啟動離線瀏覽的功能了。將Offline Mail的選項設定成Enable,並且保存設定即可。





由於離線瀏覽是將信件下載回來保存,所以在下方可以進行細部的設定,包含要下載哪些資料,以及多久以前的信件等等。




啟動之後,會看到正在下載信件到本地端:




往後,Google會自動偵測擬的網路連線狀態,如果是連線狀態就會自動下載郵件回來同步,離線狀態時就單純瀏覽信件;值得一提的是,我們可以看到上方有一個【Go into Flaky Connection Mode】,當你選擇這個模式時,通常是網路很慢的時候使用。在這種情況下,GMail還是保持離線瀏覽的狀態,不過會利用最小資源在背景和Server做連線。

  • Google Calendar

在Google Calendar中要開啟離線瀏覽功能,直接點選右上角的【Offline】按鈕,接著選擇下方的【Enable Offline Access】即可:



同時,你也可以在【Setting】中選擇哪些Calendar是可以支援離線瀏覽功能:


  • Google Reader
在Google Reader中要啟動離線瀏覽,直接點選右上角的圖示即可:



  • Google Docs
在Googel Docs中,要啟動離線瀏覽也是點選右上方的【離線】按鈕即可:



不同的服務對於離線瀏覽的支援不同,下圖打X的代表在離線下有支援(可以看到只有Documents有支援離線編輯):



下面是各種服務離線版本的說明網頁:

【相關閱讀】
搶先體驗Google Doc 離線編輯功能 (免費版的office)
Google gears 與 flex/apollo 的簡單比較

幾個PageRank查詢工具,看看Google喜不喜歡你的網站!

PageRank是Google用來決定網站級別和重要性的一個演算法,PankRank越高的網站,在搜尋結果的排名上就會越前面。PankRank是從0~10,越重要的數字就越大。他的最基本概念就是【從好的網站連結過去的網站,必定也是好的網站】。Google把從A網站連到B網站的動作,當成是A投了B一票,一個網站的票數越多,PageRank就越高。


這是最基本的想法,實際上的算法還要複雜的多,如果想要了解詳細的內容,可以參考以下文章:



要如何知道一個網站的PankRank是多少呢?最簡單的方法就是安裝Google ToolBar,他本身就有提供PankRank的工具。當你安裝好Google ToolBar時,上方會有一個類似下圖的功能,在你瀏覽網站時,他會自動偵測該網站的PageRank,把滑鼠移到上方就會看到了:


如果你沒有、不想安裝Google ToolBar時(或是不能安裝,比如說Chrome),那還有一些好用的網站有提供PageRank查詢的服務,在這裡介紹幾個比較好用的網站。

PageRank Reporter可以幫助你查詢某個網站的PageRank排名,並且辨別出真假網站的差異:



這個服務可以一次查詢多個網站的PageRank,同時也提供了其他的資訊:


這個工具就比較簡單,不過也蠻快速好用的,支援同時查詢多個網站,如果只想要知道PageRank的話可以考慮用這個工具:


除了網頁服務外,我也推薦這個Firefox的擴充套件【Seo Quake】:


安裝好之後,當你在瀏覽網頁的時候,他會出現一個功能列上網頁最上方來顯示【網頁資訊】,裡面包含的資訊相當詳細,包括了PageRank、被不同搜尋引擎link的數目、網站的基本資訊...等等:



他的功能還不只這樣,你在Google搜尋關鍵字時,Seo Quake會提供相關的關鍵字(有沒有用就見仁見智囉):

同時每個搜尋結果也會有網頁資訊顯示,幫助你快速的了解該網站的狀態:


PageRank不是決定一個網站好壞或重要與否的絕對指標,除了網站熱門與否之外,SEO、關鍵字優化等等的工作也會牽涉其中,不過要是有心經營網路事業或服務時,PageRank絕對是一個重要的參考指標和努力的方向。

Google推出即時搜尋(Real-Time Search)服務!

不意外的,Google終於正式推出即時搜尋(Real-Time Search)的服務了。從下圖可以看到,當我們搜尋某些特定的字詞時,Google會優雅的把結果整合在搜尋頁面中:


你也可以從Search Option中,選擇【Latest】來得到即時搜尋的結果:


上圖有一個很重要的訊息,就是Google即時搜尋的資訊來源並不是限定在Twitter上,而是多方面的訊息。而Microsoft的Bing則只有使用Twitter當作即時搜尋的資訊來源。下圖是Microsoft的一個計劃,叫做bingtweets:



Google也提供了影片展示:



Real-Time Search的重要性已經有很多文章介紹過了,在這裡我就不重複述說,分享幾篇我覺得寫得不錯的文章給大家參考:

也歡迎大家分享自己對於Real-Time Search的看法:)

新的Google Analytics追蹤程式碼,更精準快速的蒐集你的網站資料!

Google Code官方Blog之前發表了一段新的Google Analytics的追蹤程式碼,如果把原來的程式碼換成新的程式碼後,Google號稱會有以下優點:

  • Faster tracking code load times for your web pages due to improved browser execution (網頁讀取追蹤程式碼的時間更快,可以改善瀏覽器讀取的時間)

  • Enhanced data collection & accuracy (可以增加蒐集Google Analytics所需要的資料的準確率)

  • Elimination of tracking errors from dependencies when the JavaScript hasn't fully loaded (消除因為Javascript沒有讀取完成而造成的錯誤)

看起來好像好處多多對吧!那還不趕快來換掉,置換的方式很簡單,只要把以下的程式碼換掉舊的就可以了:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>
以Blogger為例子,舊的程式碼應該會在【版面配置】->【修改HTML】裡面的範本程式碼,找到類似下方圖片中的程式碼區段,把他換成新的即可:



另外要注意的是,新的程式碼在第三行的地方有一個【UA-XXXXX-X】要換成你自己專屬的代碼,你可以在舊的裡面找到代碼:


或是到你的Google Analytics後台中也可以看到自己的代碼:


過一會看看你的Google Analytics後台的狀態是否是正常的(如上述的綠色打勾狀態),如果是就代表置換成功囉!

【相關閱讀】
Google Analytics Launches Asynchronous Tracking
Google Analytics Code Asychronous Tracking

【UPDATE】Google 推出自家DNS服務!搶先試用Google Public DNS

Google在宣佈推出自己的DNS服務,叫做【Google Public DNS】。

連到Google Public DNS服務首頁


什麼是DNS?讓我們先從IP位置開始介紹起。舉個例子來說,你先在上網如果想要去Google,你會在瀏覽器的網誌列打入【http://www.google.com.tw】、想要去Yahoo,你會打入【http://www.yahoo.com.tw】。可是電腦怎麼知道上面第一個網址是連到Google、第二個是連到Yahoo?

在這裡,我們要先提一下【IP位置(IP Address)】的概念。IP位置一台電腦在網路上的唯一識別,就像是每一個家都有一個【地址】一樣,當你的朋友要寄信給你時,他必須要知道你家的地址;在網路上的每台電腦也要有一個IP位置,別人才能夠傳資料給你,這個道理是一樣的。那你要怎麼知道自己電腦的IP是多少呢?如果你有連上網路,可以到連到這個網站,他會直接秀出你的IP位置:


還有一個方法是到【開始程式集】裡面找【執行】,或直接用快速鍵【Windows鍵+r】啟動執行,並且輸入【cmd】:


此時會啟動命令提示字元:


在命令提示字元中輸入【ipconfig】,接著就會出現你目前的IP位置資訊:


所以,其實在網路上,你要連結到每一個網站,都必須要知道他所對應的IP位置。但是你為什麼可以想要連到Plurk就輸入【http://www.plurk.com】、想要去Facebook就輸入【http://www.facebook.com】呢?這就是DNS的作用。DNS的全名叫做【Domain Name System】,目的是在於對應IP位置和網路名稱(就像是之前提到的網址)。有了DNS,他可以讓我們輸入http://www.plurk.com就找到Plurk的網站,而不用輸入他的IP位置。

我們來做個實驗,一樣到命令提示字元下面,我們用【nslookup】這個查詢指令來看每個網站他的IP位置是多少。我們輸入【nslookup www.google.com.tw】來查看Google的IP位置,從圖中可以看到有【74.125.153.106】、【74.125.153.103】...等等的位置,同樣的你可以把Google的網址換成別的網站是是看:


這表示我們可以用IP位置來連到Google,在瀏覽器輸入【74.125.153.106】,果然連到Google囉:


但是【http://www.google.com.tw】這樣有意義的網址是不是比【74.125.153.106】這樣的IP位置要好記憶多了?DNS的實際作用就是在做這兩者之間的對應,讓使用者在輸入網址的時候,可以在茫茫的網路上找到【74.125.153.106】這台電腦進行網頁的存取。

花了這麼多篇幅解釋DNS和IP,讓我們趕緊進入正題,既然Google推出了DNS服務,那要怎麼設定呢?

首先,到控制台中,選擇【網路和網際網路】中的【網路連線】,像我的電腦是寬頻撥接的,就選擇【寬頻連線】,如果你沒有這個選項的話,就請選擇【區域網路】,在該項目上按右鍵選擇【內容】:


接著選擇【網路功能】中的【TCP/IPv4】的選項,因為我是Window 7的版本,才會有IPv4和IPv6兩種選項,如果讀者的作業系統是Windows XP的話,正常來說應該只有一個IPv4可以選擇,點選之後按【內容】作設定:


在內容中,設定下方的【使用下列的DNS伺服器位置】,輸入【8.8.8.8】和【8.8.4.4】來使用Google所提供的Google Public DNS服務:


設定好之後按下確定,請重新連上網路來變更這次的設定。至於使用Google Public DNS有什麼好處?根據官方說法,Google Public DNS有以下幾個優點:


  • 讓網址的解析更正確,避免被轉址到不正確的位置。
(原本使用Hinet測速網站的結果會有爭議,在此拿掉了)

使用Google Public DNS後,有人反應是變快了,而有些人則是認為使用原本ISP的DNS服務會比較快。這一方面還沒有看到詳實的比較,大家可以參考【相關閱讀】的一些文章,或是自己設定玩玩看:)

【UPDATE】

我在The Will Will Web看到一篇【使用 Google Public DNS 服務,上網速度不一定會變快!】的文章,相當具有參考價值,歡迎大家連結過去看看,相信會有很多啟發!根據The Will Will Web的作者表示,使用Google Public DNS在安全性上的確相當有幫助,不過對於提升速度方面,還有待商榷。

【相關閱讀】
Google Public DNS 官方網站
Introducing Google Public DNS : A new DNS resolver from Google
Google發表公開DNS服務,個人電腦設定後可大幅加速瀏覽效率
Google DNS,DBE。
加快上網速度 Google提供DNS服務(你該加入嗎?)
Google 超快速DNS伺服器:8.8.8.8與8.8.4.4