隨著網際網路的興起,傳統的it應用架構開始改變,從序列演變成以平行計算為主,與之匹配的伺服器架構也從垂直延展的大機器演變成伺服器疊加集群。現有的分布式計算架構技術的實現是通過軟體平行計算的支援,伺服器平台可以通過大量單機成本比大機器低得多的起步價,快速實現應用上線,並在使用者量爆發時,通過伺服器疊加方式實現擴容。
由於縱向拓展可優化空間太小(單台伺服器的效能上限很明顯),分布式系統強調橫向擴充套件、橫向優化,當分布式集群計算資源不足時,就要往集群裡面新增伺服器,來不停地提公升分布式集群的計算能力。
軟硬體成本知多少?
出於成本的考慮,很多大規模的分布式系統一般採用廉價的pc伺服器,而不是大型的高效能伺服器,但是問題隨之而來,等同能力的計算資源,分布式系統的成本一定會低很多嗎?
我們可以來做一道算術題,如果將一台具有64gb記憶體、8個cpu的機器公升級為一台擁有512gb記憶體和32個cpu的伺服器,這台機器的總成本大約為10萬美金,這顯然是一次典型的scale up公升級。
而如果使用scale out的形式,使用大量廉價的伺服器來元件系統,這筆投資可以購買83臺1u伺服器。同樣的投資,它們獲得的資源分別如下:
scaling up
scaling out
cpus
32332
ram512 gb
664 gb
disk
4 tb
40.5 tb
而如果加上微軟的商業授權軟體,成本大致如下:
scaling up
scaling out
os$2310
$33200
sql$8318
$49800
此外,電費消耗對比如下:
scaling up
scaling out
peak watts
1200w
16600w
power cost / year
$1577
$21815
由此,我們可以從數字層面看到直觀的對比,scale up和scale out都是可選的方案。當然,這涉及到使用者具體要解決的問題,你的資源(如資金,軟體)等情況。這樣看來,只有在使用開源軟體時,scale out才有較為明顯的優勢,因為scale out意味著較少的硬體投入,以及較高的軟體授權成本。
開源就能解決成本問題?
開源並不等於免費,為83臺伺服器配備乙個系統運維人員的工作,一年的費用基本上可以購買一台效能足夠強大的伺服器了,而其它的硬體投入,比如負載均衡、網路等的投入,還有資料中心的費用,7u的伺服器雖不便宜,但比83個1u伺服器要便宜多了。
說到這裡不能不提到這幾年大力推廣去ioe的阿里,阿里在用開源替代ioe的程序中,差不多花了三年的時間。回首這幾年的工作,按照阿里自己的總結來看,開源只是解決了入水時候的零成本問題,而後期在駕馭它的時候你必須面臨很高的運維以及發展的成本。
並且,在這一過程中,阿里的相關技術人員因it技能的需求不同,也出現了較大的調整,比如從注重oracle dba人才調整為mysql或其他開源資料庫dba人才,機房維護的規模也大大提高。
很多人都覺得採用開源的基於x86的分布式計算可以節省很多成本,至少從普適的採購**上看,這一點也許成立的,但這是建立在你有完備的技術人才儲備的基礎上,否則為了使用開源,你可能要額外的招聘相關領域的人才,從而可能讓最後使用的成本核算看上去並不如預期。
因此,如果企業採用開源的分布式系統,需要很強的技術團隊才能hold住,如果你沒有做好準備,必須慎之又慎——採用開源技術是否對自己的業務有利,自己當前的人才與技能儲備是否可以有效支撐起這項工程?尤其是系統規模越大,涉及的業務越多的時候。
分布式計算
定義 研究如何把乙個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。什麼是分布式系統 分布式系統 distributed system 是由多台計算機和通訊的軟體通過計算機網路連線組成 本地區域網或者廣域網 分布...
分布式計算0
分布式系統可以建立精確的數學模型,其上的演算法與性質都是可以證明的,這是最近看一本分布式演算法的專著的感受。其中在論及分布式系統的時間概念時,談到其邏輯時鐘是整個系統上的乙個序關係 這個序關係可以把系統中的事件序列對映到乙個自然數集合上 event 除因果事件外,則還有平行事件的存在。故這種對映關係...
分布式計算概述
分布式系統 在 網 絡 計 算 平台 上 開 發 部 署 管 理 和 維 護 以 資 源 共 享 和 協 同 工 作 為 主 要 應 用 目 標 的 分 布 式 應 用 系 統。分布式系統的主要特徵 包含任意個數的系統程序和使用者程序 體系結構模組化,它由數目可變的多個處理部件組成 通過共享通訊結構...