當前位置:吉日网官网 - 傳統節日 - 傳統it企業

傳統it企業

談談對互聯網系統和傳統企業IT系統的壹些看法和看法。

現在正在熱炒的互聯網和雲計算架構,與傳統的大型企業系統架構相比,最大的不同就是用分布式架構取代了原來的集中式系統架構。

比如原來的大型企業系統架構就像大型民航客機。作為旅行,飛機無疑是最舒適快捷的交通工具,安全性也很好。但是飛機並不適合所有人。首先:坐飛機要經過幾道程序,比如換登機牌,安檢。乘客必須提前壹個多小時到機場辦理各種手續,而火車大巴邊走邊上就方便多了。其次:很多東西坐飛機不能攜帶甚至托運,火車大巴相對寬松;還有:機票貴,坐飛機花費大,飛機運載能力不如火車。當妳壹次有幾萬人到達壹個地方,壹兩架飛機的運載能力根本不夠,調動壹批飛機整體成本太高。最後:雖然飛機上事故很少,但是飛機壹旦發生事故,危險程度總是很高的。

然而,在過去,除了飛機,只有火車和公共汽車是交通工具。相比之下,這些模式雖然便宜,騎行方便,攜帶東西也方便,但是速度太慢,受雨雪等外界因素影響大,騎行也不是很舒服。只能滿足那些相對富裕或者手頭拮據的人的出行需求。

因此,為了滿足更多人、更便捷、更高速的交通需求,出現了壹種新的交通方式——動車/高鐵。它和火車最大的區別就是火車只有壹個車頭有動力,後面能拖幾輛車多快基本取決於壹個車頭有多強。但是,個人的力量畢竟有限。再強的火車頭也是有極限的,發展空間也就那麽多。真的很難做很多。動車不壹樣。每輛列車都有自己獨立的動力系統,連接在壹起的車廂的動力系統是壹個重疊遞增的關系。所以理論上,越多的車連在壹起,就能拉動更多的人跑得更快,這是壹個無限擴大的系統!而且因為動車可以搭載很多乘客,所以平均分攤在每個乘客的頭上。坐動車的速度在某種程度上可以接近坐飛機,但費用要低很多。

目前互聯網和雲計算的系統架構其實類似於子彈頭列車的概念,即分布式系統的架構——將任務劃分成小的計算單元進行分布式並行處理,充分利用每個單元的計算和存儲能力,理論上性能可以無限線性擴展,任何壹個節點的故障都不影響整個系統的運行,整個系統沒有單點故障。

換句話說,我們可以簡單地把大企業的核心架構,或者說大型機、RISC系統比作飛機;並將互聯網和雲計算的系統架構比作子彈頭列車。現在,我們可以進行壹些有趣的討論。

先說穩定性和可靠性:就說2012吧,不管是飛機還是動車,新聞上都報道過嚴重事故,可見沒有壹個系統是完全穩定可靠,沒有任何停機風險的,但其概率是非常非常小的。總的來說是壹個非常穩定可靠安全的選擇。但是,他們各自在如何防止災難冗余方面的策略還是有些不同。先說飛機。因為是在空中飛行,如果出了問題,沒有備份可用,所以我們能采取的唯壹辦法就是千方百計提高飛機自身部件的冗余度,在設計時盡可能考慮各種小概率事件。哪怕發生故障的概率只有千萬分之壹甚至億分之壹,只要有可能,就要設計對策。這也是飛機成本那麽高,對攜帶東西要求那麽多的原因。動車比較簡單:反正多拖幾輛車不會影響我的速度,我就盡量多拖幾輛備用車跑。如果壹輛車出了事,把裏面的乘客挪到備用車上,車還是會開開心心地跑。然後到了車站再換檢查故障車也不遲。

回到IT界也是壹樣的。分布式系統基本上都是基於x86的PC服務器。就壹臺服務器而言,雖然性能可靠性在不斷加強,但肯定不如RISC系統。不過沒關系,我們可以通過數量來彌補冗余的不足。設計沒有妳想的那麽多余,我再拉幾個。少數機器壞了也沒關系,把應用任務分配給其他閑置的機器就行了。壞了的機器不需要馬上修理。反正不壞的機器就夠了。等到故障機數量達到壹定程度,我再壹次性批量檢修更換零件,效率更高。對於用戶來說,即使我壞了100臺服務器,只要剩下的服務器能正常工作,應用就不會受到影響。谷歌、臉書和其他超大型數據中心現在就是這樣工作的。這看似是壹個非常簡單、有效、巧妙的方法,但實際上存在很多問題。

首先,我認為這種架構的優勢在於實現原理簡單,可擴展性和靈活性的優勢相比RISC架構不言而喻。但實際上,這個框架中也存在不必要的資源浪費的可能。比如在存儲方面,目前非常流行Hadoop類的多副本分布式存儲。壹份數據存儲在三份副本中。如果數據損壞,立即找到可用空間進行恢復。聽起來簡單,容易實現,效率高,但如果妳真的坐下來仔細算壹筆賬,妳會發現:

1.當妳的數據量很小(小於PB)時,將壹份數據存儲三份的成本實際上比任何現有的商業存儲方案都要高。

2.這樣每臺服務器的CPU利用率很低,而市面上大存儲容量服務器的CPU配置很高。所以這種方式基本上是浪費CPU資源。所以,或許對於數據量適中的企業來說,使用EC CODE這種以計算能力換取存儲的分布式存儲方案會比多副本方案更經濟。

3.這種方法很容易讓IT運維人員產生壹種習慣性思維——就是要提高系統的在線時間,就多買幾臺服務器。因為服務器更多,分布更好,自然冗余會更高。所以產生了不必要的服務器采購,每個數據中心增加了很多不必要的電費支出。

其次,我認為分布式架構的壹些斷層很可能產生連鎖效應,導致更嚴重的全球癱瘓。比如大家都知道赤壁之戰的故事。裏面有壹個很有名的橋段,就是龐通賢的連環計和鐵鏈船。當初曹操的壹萬多艘戰船連成壹個整體,可以攻、可以退、可以守,前後照應得似乎天衣無縫,但只有壹條逃生的火路。諸葛亮和周瑜用這個命門解決了東風燒赤壁,殺死曹操百萬大軍的問題。其實我覺得在互聯網的分布式架構中也有類似的“命門”。大型機或者RISC系統那麽貴,其實很多時候用戶都是在為千萬分之壹甚至億分之壹買單。而互聯網,現在的公有雲架構,在設計之初,基本思路就是要有大用戶,大並發,然後盡量降低TCO。所以很多時候在設計架構的時候,會先排除那些“千萬分之壹”,暫時不考慮。系統上線後,經過壹段時間的穩定運行,用戶數量猛增,精力往往會集中在擴容上。可能會漏掉壹些“命門”,萬壹“東風”刮到命門上,後果估計比曹阿瞞還要嚴重。因為IT界不太仁慈的關雲長,會在華容道上放曹操壹馬。

事實上,從最近臉書、亞馬遜和谷歌的宕機事件來看,已經有壹些跡象。好在那些互聯網大佬應該已經意識到了這些問題,壹直在積極修復“命門”。

最後我想說,互聯網和雲計算的業務類型其實和傳統企業不壹樣,所以大型機和RISC系統處理的任務和運行的計算不壹定適合移植到分布式系統架構。就拿交通工具來說吧:我要去美國,目前只有飛機能滿足我的需求。當然妳可以說我可以坐動車,不過就是多幾趟國際列車而已。但畢竟很舍不得,慢,費時費力,又不省錢,沒什麽意義。人可以直接飛,但是妳得繞著太平洋海岸線跑壹大圈。為什麽?

那麽有什麽辦法可以解決這些問題呢?其實我覺得解決以上問題的關鍵就是兩個字:運維。要保證分布式系統的安全可靠運行和合理有效的擴展,關鍵不在於系統的軟硬件,而在於系統建成後的維護和不斷完善修正!現在網上很多人熱衷於openstack、Hadoop等各種開源架構的開發,以及應用場景的討論。但個人認為,這些開源系統的特點是構造簡單,維護困難!要把這些架構和技術投入到成熟的企業應用中,運維管理的成本可能要比RISC高很多。因為這些系統更加分散和不可預測,所以也更需要有人弄清楚什麽時候使用分布式架構,哪些場景仍然需要傳統架構。那麽可能有人會問,既然如此,我們還有必要走分布式系統的道路嗎?當然有!原因也很簡單:分布式架構賦予了我們處理海量請求的能力和處理突發事件的靈活性;同時,分布式架構也使得系統具有更好的擴展性和更多業務創新的可能性。

說到這裏,我們已經涵蓋了基礎知識。我之前說的恐怕有點零散。我總結壹下我的觀點:無論是傳統的RISC架構還是現在流行的分布式架構,都是高度穩定可靠的系統,雖然實現方式不同。然而,沒有壹個系統是絕對穩定的,沒有停機時間。為了保證系統的穩定可靠運行,運維管理非常重要。與傳統的RISC體系結構相比,分布式系統在可擴展性和靈活性方面具有很大的優勢,但也存在資源浪費和隱患的危險。在這方面,分布式系統架構也需要借鑒傳統架構的運維管理,提高自身的憂患意識和故障預警處理能力。

  • 上一篇:為什麽要向世界推廣中國文化?
  • 下一篇:兒童國潮插畫-國潮插畫風格特點
  • copyright 2024吉日网官网