企業(yè)IT架構(gòu)重新規(guī)劃,這七種技術(shù)少不了
企業(yè)IT基礎(chǔ)架構(gòu)的重新平臺化是不小的任務(wù),重新平臺化通常是由一組不斷變化的關(guān)鍵業(yè)務(wù)驅(qū)動因素引發(fā)的,簡而言之,就是目前支持企業(yè)業(yè)務(wù)的平臺不能再處理和推動業(yè)務(wù)發(fā)展所需的工作負載。
數(shù)字化轉(zhuǎn)型的核心是數(shù)據(jù),數(shù)據(jù)已經(jīng)成為商業(yè)中最有價值的貨幣。由于格式不兼容、傳統(tǒng)數(shù)據(jù)庫的局限性以及無法靈活地合并來自多個來源的數(shù)據(jù),企業(yè)長期以來一直受到其使用數(shù)據(jù)的困擾,而新技術(shù)則可以解決這一困境。
改善軟件部署模式是消除數(shù)據(jù)使用障礙的一個主要方面,更高的“數(shù)據(jù)靈活性”是需要更靈活的數(shù)據(jù)庫和更具可擴展性的實時流式傳輸平臺。目前想要為企業(yè)提供靈活的實時“數(shù)據(jù)結(jié)構(gòu)”需要至少七種基礎(chǔ)技術(shù)的相互結(jié)合。
與原先技術(shù)不同,這七種技術(shù)能夠擴展以滿足很多用戶和用例的需求,對于企業(yè)而言,能夠?qū)崿F(xiàn)更快、更明智的決策并創(chuàng)造更好的用戶體驗。
1. NoSQL數(shù)據(jù)庫
RDBMS在數(shù)據(jù)庫市場上占據(jù)了近30年的主導(dǎo)地位。但是,面對數(shù)據(jù)量的不斷增長以及數(shù)據(jù)處理速度的加快,傳統(tǒng)關(guān)系數(shù)據(jù)庫已經(jīng)顯示出不足。NoSQL數(shù)據(jù)庫由于其速度和擴展能力而漸漸嶄露頭角。就文檔數(shù)據(jù)庫而言,從軟件工程的角度提供了一個更簡單的模型。這種更簡單的開發(fā)模式可加快產(chǎn)品上市速度,并幫助企業(yè)更快響應(yīng)客戶和內(nèi)部用戶的需求。
2.實時流媒體平臺
實時響應(yīng)客戶對客戶體驗至關(guān)重要。在過去的10年中,面向消費者的行業(yè)經(jīng)歷了巨大的破壞,這與公司對用戶實時作出反應(yīng)的能力不無關(guān)系。
消息驅(qū)動的應(yīng)用程序已存在多年,但流媒體平臺的規(guī)模要遠遠好于前者,而且成本要低得多。流媒體技術(shù)的進步為許多優(yōu)化業(yè)務(wù)的新方式打開了大門。流媒體平臺不僅要實時響應(yīng)客戶,還要為軟件開發(fā)和測試團隊提供實時反饋回路,事件流還可以幫助公司提高產(chǎn)品質(zhì)量、更快地獲得新的軟件。
3.Docker和容器
容器對開發(fā)人員、操作人員以及企業(yè)本身都有很大的好處。傳統(tǒng)的基礎(chǔ)設(shè)施隔離方法是靜態(tài)分區(qū),即為每個工作負載分配一個單獨的固定資源片段(無論是物理服務(wù)器還是虛擬機)。靜態(tài)分區(qū)更容易排除故障,但是不能充分利用硬件,導(dǎo)致成本較高,交付實質(zhì)性未充分利用的硬件成本很高,例如,Web服務(wù)器平均只消耗可用總計算量的10%。
容器技術(shù)的巨大優(yōu)勢在于其創(chuàng)造了新型隔離的能力。不了解容器的人可能會認為他們通過使用Ansible,Puppet或Chef等工具也可以獲得同樣的效果,但事實上這些技術(shù)具有很強的互補性。
此外,無論你如何嘗試,這些自動化工具都無法創(chuàng)建在不同基礎(chǔ)架構(gòu)和硬件設(shè)置之間自由移動工作負載所需的隔離。同一個容器可以在本地數(shù)據(jù)中心的裸機硬件上或公共云中的虛擬機上運行,無需進行任何更改,這才是真正的工作負載移動。
4.容器存儲庫
容器存儲庫對于敏捷性至關(guān)重要,如果沒有用于構(gòu)建容器映像的devops進程以及用于存儲它們的回購站,那么每個容器都必須在該容器可以運行的機器上構(gòu)建。通過存儲庫,可以在配置為從該存儲庫讀取的任何計算機上啟動容器映像。
在處理多個數(shù)據(jù)中心時,情況會變得更加復(fù)雜。如果在一個數(shù)據(jù)中心內(nèi)建立一個容器圖像,那么如何將圖像移動到另一個數(shù)據(jù)中心?理想情況下,通過利用融合數(shù)據(jù)平臺,可以在數(shù)據(jù)中心之間對存儲庫進行鏡像。這里的一個關(guān)鍵細節(jié)是,內(nèi)部部署和云之間的鏡像功能可能與原先內(nèi)部部署數(shù)據(jù)中心之間的鏡像功能大不相同。
5.容器編排
不是靜態(tài)硬件分區(qū),每個容器看起來都是它自己的私有操作系統(tǒng)。與虛擬機不同,容器不需要計算和內(nèi)存的靜態(tài)分區(qū),管理員能夠在服務(wù)器上啟動大量容器,而無需擔(dān)心內(nèi)存量。有了像Kubernetes這樣的容器編排工具,啟動、終止和移動容器,甚至是在其它重新啟動容器都會變得非常容易。
添加了新的基礎(chǔ)設(shè)施組件之后(例如MapR-DB或MongoDB等文檔數(shù)據(jù)庫),容器中很多東西的部署問題就需要我們考慮了,例如,MapR-ES或Apache Kafka之類的事件流式傳輸平臺、Kubernetes之類的編排工具以及實施用于構(gòu)建和部署軟件的DevOps流程。這就引出了我們第六個要講的技術(shù)——微服務(wù)。
6.微服務(wù)
從歷史上看,微服務(wù)的概念并不新鮮,但是今天的不同之處是在于啟用技術(shù)(NoSQL數(shù)據(jù)庫,事件流,容器編排)可以隨著數(shù)千個微服務(wù)的創(chuàng)建而擴展。如果沒有數(shù)據(jù)存儲、事件流和架構(gòu)編排的新方法,大規(guī)模微服務(wù)部署將不可能實現(xiàn),管理大量數(shù)據(jù)、事件和容器實例所需的基礎(chǔ)架構(gòu)將無法擴展到所需的級別。
微服務(wù)都是關(guān)于提供敏捷性,通常由一個功能或一小組功能組成。工作的功能單元越小且越集中,創(chuàng)建、測試和部署服務(wù)就越容易。這些服務(wù)必須解耦,否則就會失去敏捷性。
微服務(wù)可以依賴于其他服務(wù),但通常是通過負載平衡的REST API或事件流。通過使用事件流,可以利用請求和響應(yīng)主題輕松跟蹤事件的歷史記錄。由于整個請求流和請求中的所有數(shù)據(jù)都可以在任何時間點重播,因此這種方法對故障排除具有重大益處。
由于微服務(wù)封裝了一小部分工作,并且彼此分離,所以隨著時間的推移,更換或升級服務(wù)幾乎沒有障礙。在舊模式下,依賴像RPC這樣的緊密耦合就意味著必須關(guān)閉所有連接,才能重新建立,而負載均衡就成了一個大問題,手動配置非常容易出錯。
7. Function as a service
微服務(wù)在行業(yè)中已占據(jù)了主導(dǎo)地位,因此無服務(wù)器計算也漸漸興起。以FaaS方式創(chuàng)建微服務(wù),代碼可以包裝在輕量級框架中,并內(nèi)置于容器中按需執(zhí)行,然后自動進行負載平衡。FaaS的優(yōu)點在于能夠使開發(fā)人員專注于功能。
觸發(fā)事件是FaaS的關(guān)鍵組成部分。如果沒有它,那么只有在完成工作的情況下,才能調(diào)用函數(shù)和消耗資源。功能的自動調(diào)用使得FaaS真正具有價值。想象一下,每當(dāng)有人讀取用戶的配置文件時,都會有一個審計事件,一個必須運行以通知安全團隊的功能。需要注意的是,使用像FaaS這樣的部署模型來完成工作流程是非常簡單的。
七劍合璧,天下無敵
觸發(fā)服務(wù)的其實是事件流中的事件,雖然某些類型的事件會被普遍的用作觸發(fā)器,但其實任何事件都可以作為觸發(fā)器,例如將文檔更新設(shè)置為觸發(fā)事件,對新文檔運行OCR過程,然后將OCR過程中的文本添加到NoSQL數(shù)據(jù)庫。如果我們以更有趣的方式思考,每當(dāng)上傳圖像時,都可以通過機器學(xué)習(xí)框架進行圖像識別和評分,定義一個函數(shù),該事件觸發(fā)該函數(shù),并且函數(shù)完成其工作。
FaaS將成為采用微服務(wù)的下個階段。但是使用FaaS時要考慮一個問題,那就是供應(yīng)商鎖定。FaaS隱藏了特定的存儲機制、特定的硬件基礎(chǔ)架構(gòu)和編排,這對開發(fā)人員來說都是偉大的事情。但也由于這種抽象,托管的FaaS產(chǎn)品是行業(yè)有史以來***的供應(yīng)商鎖定機會之一。由于這些API不是標準化的,所以從公有云提供的FaaS遷移而無需放棄已經(jīng)執(zhí)行的近100%工作,幾乎是不可能的。如果FaaS采用一種更有系統(tǒng)的方法,利用聚合數(shù)據(jù)平臺中的事件,那么在云提供商之間移動就變得更容易了。
【編輯推薦】
- 智能制造背景下MES的發(fā)展方向
- 走出企業(yè)ERP建設(shè)的誤區(qū)
- 新零售逆襲,大數(shù)據(jù)應(yīng)用是制勝法寶
- 強烈推薦丨世界AI泰斗Michael I.Jordan八大經(jīng)典語錄
- 2018年智能化發(fā)展趨勢:語音交互全球開戰(zhàn)、AI終端趨勢顯現(xiàn)