高有效性是不可能只靠一台機器去完成的, 因為任何一個再好的機器都會有問題, 任何一個零組件都會有 MTBF Mean Time Between Failuare, 所以通常一個完整的 HA 系統, 必然是靠很多台機器去完成的, 以現在的角度來看, 就是 Cluster System/Computing.
一群機器不代表就是 Cluster Computing, 但之間是經過某種系統的聚合, 在做相同的事情或可以共通的去做一件事情, 基本上就是 Cluster Computers 了, 而通常高有效性, 就是透這一組機器的聚合, 來去達成的.
只是這個 Cluster Computing 最常去被相提並論的就是 Grid Computing, 以及 Cloud Computing 了, 也就是網格計算及雲端運算了, 當然在計算機組織中的定義, 這三個都不太一樣:
Cluster Computing: A computer cluster is a group of linked computers, working together closely thus in many respects forming a single computer.
群組電腦: 是一群串連起來的電腦, 一起緊密的作業, 看起來像是一台電腦.
Grid Computing: Grid computing is a term referring to the combination of computer resources from multiple administrative domains to reach a common goal.
網格計算: 是將許多不同的電腦組合起來成一個資源去達成某種目標.
Cloud Computing: Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility (like the electricity grid) over a network (typically the Internet).
雲端計算: 是透過網路將電腦或設備組合成一個可以分想的資源, 把運算型成一種服務而不是一種產品.
事實上這些說穿了還是種分散式的計算:
Distributed Computing: A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal.
分散式計算: 一種透過電腦網路將電腦自動化成一個系統能夠達成一個目標.
當然這個目標是效率, 效能, 還是有效性, 或者是都可以, 就是這個系統如何去設計.
只是設計系統, 除了架構外, 重點是目標與目的的設計, 要完成甚麼樣的任務, 這些達成任務的元件之間的關係, 要用甚麼方式文成, 就是一些 "藕合" 關係去達成目標, 這些目標往往可能是之前就先定義好的, 更有可能的是在一面設計一面去架構完成.
要去實作與了解這些群體 (Cluster) 的關係與經驗, 往往是決定一個好的系統設計的好壞, 當然前提多少了解這些可能, 畢竟這些系統倒是都是在很多專門的教科書都有專書與課程, 從這些學習建立基本知識是很有必要.
畢竟這 30 篇本身只是個導引與簡介, 讓大家初窺而已.
現在甚麼都是雲端的情型下, 說不定最簡單的群組計算的規劃就是都丟到雲端, HA 的問題讓 PAAS 去解決是最偷懶的方式.
對呀,初步估計目前我們單一系統的伺服器群,可以由10台實體機,reduce到3台VM。