以前看過,可是忘記名稱,今天好不容易才找到:

什麼是 Coral?Coral 是個可以讓您的網站得以避免 Slashdot effect 的利器。請看這段 Coral 官方網站的說明:

Are you tired of clicking on some link from a web portal, only to find that the website is temporarily off-line because thousands or millions of other users are also trying to access it? Does your network have a really low-bandwidth connection, such that everyone, even accessing the same web pages, suffers from slow downloads? Have you ever run a website, only to find that suddenly you get hit with a spike of thousands of requests, overloading your server and possibly causing high monthly bills? If so, Coral might be your free solution for these problems!

這就是我要尋找的 solution。自立架站,空間不是問題,頻寬才是第一大問題[1] ,第二大問題則是穩定性。頻寬是要花錢買的,沒有頻寬,就等於沒有 service。而自己在家裡架站,便會受停電、斷網等因素影響,穩定性大不如要錢且貴很多的 hosting。所以,要自立架站,這兩大問題必須解決。

如果,有個分散式的方式,可以把 HTTP resource,分散出去,當 client 要做 HTTP request 時,便會在這個分散式網路裡,選擇一個 node 下載,而不是到主網站下載。因此,我們可以把 content 散佈在這個分散式網路裡,既解決了頻寬的問題,也達到了 failover 的效果。但有一個重點是,必須與既有的 HTTP/Web 架構相容,client 端必須不靠任何額外軟體,便能享受到這種分散式網路的好處。

Coral,便是這樣子的一個東西。

只要自己網站裡所有 static 的內容,含網頁或圖片,其 URL 的 host 部分,後面加上 .nyud.net:8090,便可以利用 NYU PLANetLab 所架設的 Coral Network 享受到如上述的分散式網路的好處。而這個 URL 的更改,只需要網站所有者動手即可,參觀網站的使用者,可以幾乎感覺不到 Coral Network 的存在。

另外,為了保證自己的 content 可以被 cache 在 Coral network 裡,網站所有者也可以參與 Coral Network,在適當的地方提供 node 服務,透過設定,讓自己的 node 多服務自己的 site,達到 distributed content 的效果。

我目前想到的,關於 Coral 的問題,只有兩個:

  • 首頁無法 coralize,除非您的首頁的 official url 要加上 .nyud.net:8090 的標籤。當然,是有可能自行架設獨立的 Coral Network 的,不過這樣子就無法搭上眾志成城、聚沙成塔的便車,得一切自己來了。
  • 網站的 content 必須透過 80 port 提供。因為 coral 用掉了 URL scheme 裡,port 的那一塊,所以您不能使用除預設的 80 port 以外的 port。

我計畫讓我的網站也 coralize,解決我長久以來的問題。

[1] 例如無名小站問題。雖然我對這樣子的 solution 的追尋,早在兩、三年前就開始,並不是起因於無名小站事件