加入收藏 設(shè)為首頁 聯(lián)系我們 歡迎光臨本網(wǎng)站!
郵箱:support@zcecs.com
地址:北京市西城區(qū)南濱河路27號(hào)貴都國際中心A座1111室
由于混合云和container(容器)技術(shù)的出現(xiàn),數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)比以往任何時(shí)候都更加難以被攻破。
當(dāng)然,這個(gè)技術(shù)再好,還是有法可循,如果我們遵循一種簡(jiǎn)單的方法,還是可以破解的。
在不太遠(yuǎn)的過去,數(shù)據(jù)中心內(nèi)的流量轉(zhuǎn)發(fā)很簡(jiǎn)單。 一個(gè)IP地址與另一個(gè)IP地址通話。 這些地址屬于端點(diǎn) - 裸機(jī)主機(jī)或虛擬機(jī)與其他裸機(jī)主機(jī)或虛擬機(jī)通話。 這些IP地址之間的路徑是數(shù)據(jù)中心交換機(jī)已知的路由和橋接表中的條目。
如果工程師需要排除兩個(gè)IP端點(diǎn)之間性能不佳或奇怪的行為,一個(gè)好的起點(diǎn)就是通過查看這些表來構(gòu)建兩者之間的路徑。 同等成本的多路徑和多機(jī)架鏈路聚合增加了此過程的復(fù)雜性,但總的來說,運(yùn)營(yíng)商可以確定任何給定的數(shù)據(jù)中心會(huì)話遍歷的路徑。
在端點(diǎn)之間的通信流并沒有什么太復(fù)雜的。網(wǎng)絡(luò)地址轉(zhuǎn)換、加密或隧道傳播中很少出現(xiàn)。這些功能往往位于數(shù)據(jù)中心邊緣,與受信任外圍設(shè)備進(jìn)行通信。
現(xiàn)代數(shù)據(jù)中心
隨著業(yè)務(wù)需求的變化,現(xiàn)代數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)已經(jīng)和以前的完全不一樣啦。曾經(jīng)相對(duì)簡(jiǎn)單的數(shù)據(jù)中心,通訊簡(jiǎn)單,現(xiàn)在的數(shù)據(jù)中心可以看做是一個(gè)統(tǒng)一基礎(chǔ)設(shè)施的平臺(tái),在這個(gè)平臺(tái)上運(yùn)行各種應(yīng)用程序。數(shù)據(jù)中心作為一個(gè)整體運(yùn)行;它是應(yīng)用程序交付的引擎。
越來越多的基礎(chǔ)設(shè)施對(duì)開發(fā)人員和他們的應(yīng)用程序是透明的。一個(gè)徹底的現(xiàn)代基礎(chǔ)設(shè)施是開發(fā)人員應(yīng)用程序的抽象。資源池是按需分配的,而開發(fā)人員不必?fù)?dān)心基礎(chǔ)設(shè)施。相反,基礎(chǔ)設(shè)施是有效的。
現(xiàn)代數(shù)據(jù)中心還以一種分布式的方式處理安全問題,它與動(dòng)態(tài)站立和拆除工作負(fù)載相協(xié)調(diào)。不再需要通過一個(gè)中央的物理防火墻來強(qiáng)制執(zhí)行安全策略。相反,構(gòu)建一個(gè)中央安全策略,一個(gè)安全管理器將該策略的相關(guān)部分安裝到受影響的主機(jī)、vm或container中。沒有基礎(chǔ)設(shè)施的選擇,也沒有晦澀的路由需求來強(qiáng)制執(zhí)行這樣的政策。
在更高的級(jí)別,我們?cè)跇?gòu)建私有云架構(gòu)。同錯(cuò)采用這種抽象物理基礎(chǔ)結(jié)構(gòu)的方式,可以與公有云進(jìn)行更簡(jiǎn)單的協(xié)作。因此,混合云架構(gòu)越來越受歡迎,人們期望公共云工作負(fù)載與私有云工作負(fù)載具有相同的安全性和連接性。
層
隨著混合云架構(gòu)成為新的標(biāo)準(zhǔn),重要的是要注意這些趨勢(shì)對(duì)網(wǎng)絡(luò)的影響。數(shù)據(jù)中心不再像一個(gè)IP地址那樣簡(jiǎn)單地與另一個(gè)IP地址交談,在遇到麻煩時(shí),需要通過路由和橋的聯(lián)絡(luò),進(jìn)行協(xié)商。
提供現(xiàn)代數(shù)據(jù)中心靈活性的基礎(chǔ)設(shè)施機(jī)制依賴于復(fù)雜的網(wǎng)絡(luò)。推動(dòng)這種復(fù)雜性的是工作負(fù)載隔離、服務(wù)策略實(shí)施和安全性的需要。因此,與其說數(shù)據(jù)中心是IP地址的海洋,倒不如更像是一塊有層次的蛋糕。
在這塊“有層次的蛋糕”底部是底層網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)是所有其他網(wǎng)絡(luò)服務(wù)的基礎(chǔ)。這也是網(wǎng)絡(luò)工程師最熟悉的網(wǎng)絡(luò)。當(dāng)他們查看他們的路由和橋接表時(shí),他們看到的是底層網(wǎng)絡(luò)——數(shù)據(jù)中心的基礎(chǔ)。
然而,底層本身并不能提供混合云所需的一切。一個(gè)日益增長(zhǎng)的需求是隔離,被稱為多租戶。租戶可以是應(yīng)用程序、業(yè)務(wù)單元或客戶。
租戶的流量通過虛擬可擴(kuò)展LAN(VXLAN)封裝技術(shù)與其他流量隔離。來自一個(gè)段的流量被封裝在一個(gè)VXLAN包中,它通過這個(gè)包裝器在網(wǎng)絡(luò)中傳輸,并在另一端被斬首。VXLAN是另一層——覆蓋層——在我們的基礎(chǔ)底層之上。
它不僅提供了流量隔離,而且VXLAN還可以通過網(wǎng)絡(luò)中的特定路徑來路由流量。假設(shè)數(shù)據(jù)中心需要通過特定的防火墻和負(fù)載平衡器來進(jìn)行傳輸。在現(xiàn)代網(wǎng)絡(luò)中,防火墻和負(fù)載平衡器很可能作為虛擬網(wǎng)絡(luò)功能存在,駐留在數(shù)據(jù)中心的任何位置。為了將流量送到它需要去的設(shè)備,VXLAN封裝可以用于隧道從設(shè)備到設(shè)備的通信流,直到它們遍歷所有需要的設(shè)備。
防火墻規(guī)則在我們的覆蓋層和底層蛋糕中形成另一層。一個(gè)中央策略管理器會(huì)在主機(jī)上插入防火墻規(guī)則。每個(gè)主機(jī)最終都有自己的一套規(guī)則,這些規(guī)則控制著設(shè)備的進(jìn)出。這是一種用于確保可伸縮數(shù)據(jù)中心安全性的實(shí)用方法。
一個(gè)添加了更多網(wǎng)絡(luò)復(fù)雜性的通配符是container(容器技術(shù))。container網(wǎng)絡(luò)是一種新興的技術(shù),由名稱空間、代理服務(wù)器和網(wǎng)絡(luò)地址轉(zhuǎn)換管理,使container能夠相互通信,以及與外部工作連接——這是另一層。
在去年,Docker是最火爆的技術(shù)之一(不相信的人可以查一下google trends的引用量),Docker是什么呢?白話點(diǎn)說,就是一個(gè)Container的管理工具。那Container是什么呢,白話點(diǎn)說,就是一個(gè)更輕量級(jí)的虛擬機(jī),但是這個(gè)虛擬機(jī)沒有操作系統(tǒng)和設(shè)備(操作系統(tǒng)可以共享的)。
一個(gè)沒有操作系統(tǒng)和設(shè)備的虛擬機(jī)怎么會(huì)如此火爆呢?不是因?yàn)閏ontainer技術(shù)本身有多厲害,而是因?yàn)閏ontainer技術(shù)目前解決了軟件行業(yè)的最大問題之一:應(yīng)用的共享,配置管理和維護(hù)(還有應(yīng)用的隔離,效率等等),不管是在物理機(jī)環(huán)境還是云環(huán)境。
通俗一點(diǎn)兒說,就是container技術(shù),你無論在云環(huán)境,還是其它環(huán)境安裝一個(gè)SAP系統(tǒng)都和在app store上安裝一個(gè)微信差不多簡(jiǎn)單。這個(gè)很吸引人吧。所以不管你是軟件開發(fā)公司,集成公司,服務(wù)公司,電商,還是云計(jì)算公司,都跑來跟風(fēng)(包括google,亞馬遜,易貝,微軟,IBM……)。大公司里,不跟風(fēng)的,也就剩HP等為數(shù)不多的公司。
那Container如何做到實(shí)現(xiàn)應(yīng)用的部署和隔離呢?它把應(yīng)用和應(yīng)用關(guān)聯(lián)的lib庫都裝在container里面,這個(gè)container可以在某個(gè)操作系統(tǒng)上跑,而container內(nèi)的東西和container外的東西是隔離的。大家很快會(huì)想到,這不就是虛擬機(jī)嗎?Container和虛擬機(jī)看上去差不多,但是還是有些不同的。
和虛擬機(jī)相比,container不僅更輕量,而且配置簡(jiǎn)化了很多(不用考慮操作系統(tǒng)和設(shè)備的配置)。這樣做有2個(gè)好處。
一個(gè)是寫應(yīng)用的人不用管操作系統(tǒng)的事了(我只會(huì)寫Java,不懂Linux,沒關(guān)系,你把JAVA相關(guān)的配置搞好就好了),因?yàn)閼?yīng)用都在container里面。另一個(gè)好處是,你的container既可以部署在筆記本的操作系統(tǒng)上,也可以部署到云環(huán)境,只要操作系統(tǒng)一樣,其它區(qū)別都沒關(guān)系。并且不需要安裝,解壓等等(這個(gè)類似于虛擬機(jī),但是虛擬機(jī)要考慮虛擬機(jī)容器的不同,而對(duì)于container,只要操作系統(tǒng)一樣就行了)。從配置管理來看,Container可以做增量的管理。
剛才是從應(yīng)用共享和部署的角度看container技術(shù)。從更大的影響來講,container技術(shù)會(huì)影響我們整個(gè)軟件的開發(fā)和管理方式,我拿汽車做一個(gè)類比,我們過去的企業(yè)級(jí)軟件(或者叫復(fù)雜軟件),軟件生產(chǎn)的很多工作都是裝配和調(diào)試,由于IT系統(tǒng)配置相關(guān)的復(fù)雜性(和汽車相似,一大堆零部件),軟件的管理和維護(hù)也非常復(fù)雜,軟件的發(fā)布會(huì)牽涉到一大堆部門,軟件的開發(fā),集成,和其它工具的集成,還有運(yùn)維,測(cè)試等等。由于軟件本身是需要改進(jìn)和升級(jí)的,在這種基于裝配和調(diào)試的生產(chǎn)方式下,軟件的管理和維護(hù)工作不僅復(fù)雜而且工作量大。而基于container和Docker技術(shù),未來應(yīng)用軟件的主要工作會(huì)轉(zhuǎn)變?yōu)檎麄(gè)部件的替換,裝配工作在開發(fā)階段就一次完成了。管理工作的復(fù)雜性必然大大降低。軟件產(chǎn)品的工業(yè)化水平也會(huì)大大提高。
另一方面,站在程序員的角度,過去軟件的管理和共享,主要是在代碼層面,例如github,未來的管理和共享,是在應(yīng)用層面,類似于google app store.程序員和最終用戶的距離會(huì)非常近。最終用戶也有可能自己搭建SAP這樣的系統(tǒng),這種變化的影響會(huì)非常深遠(yuǎn)。
另外,從效率的角度,container也可以更有效地利用機(jī)器資源,這對(duì)于云計(jì)算的服務(wù)商來說,是至關(guān)重要的。
運(yùn)營(yíng)商的困擾
現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)體系結(jié)構(gòu)的復(fù)雜性,對(duì)于運(yùn)營(yíng)商來說是一個(gè)潛在的問題。大多數(shù)網(wǎng)絡(luò)問題都與連接性能有關(guān)。兩個(gè)能夠連接的斷電,卻不能相互連接,是一類問題。還有就是,兩個(gè)端點(diǎn)能夠連接,但卻沒有像預(yù)期的那樣快速地進(jìn)行連接,這又是問題。
可以通過檢索數(shù)據(jù)包的方法,查詢網(wǎng)絡(luò)的連通性,從而進(jìn)行故障排除。從一個(gè)網(wǎng)絡(luò)設(shè)備到另一個(gè)網(wǎng)絡(luò)設(shè)備,跟蹤數(shù)據(jù)包到達(dá)目的地的路徑。當(dāng)實(shí)際的IP端點(diǎn)已知時(shí),查詢起來就相對(duì)簡(jiǎn)單。
在現(xiàn)代數(shù)據(jù)中心,底層是用來傳輸VXLAN或其他覆蓋包的。除此之外,我們還添加了防火墻規(guī)則,然后可能是網(wǎng)絡(luò)地址轉(zhuǎn)換或代理服務(wù);包走變得更加困難,充滿了細(xì)微的差別。要診斷連接問題,操作人員需要知道數(shù)據(jù)包的起點(diǎn)和終點(diǎn)——包括容器技術(shù)、虛擬機(jī)或裸機(jī)主機(jī)、管理數(shù)據(jù)包、封裝包以及要遵循的服務(wù)鏈的防火墻策略。
假設(shè)操作人員能夠理解應(yīng)用程序流,并且在一個(gè)平面的、無豎井的IT組織中工作,看起來還不是那么糟糕,但也不容易。在橋接和路由表中查找媒體訪問控制和IP地址只是排除更復(fù)雜的故障過程中很小的一部分。 事實(shí)上,增加現(xiàn)代化的基礎(chǔ)設(shè)施的步伐永遠(yuǎn)跟不上技術(shù)發(fā)展的步伐,運(yùn)營(yíng)商總在解決過去發(fā)生的問題,而過去發(fā)生的問題,恰恰很難改造。
性能挑戰(zhàn)更難診斷。 觸摸給定會(huì)話的網(wǎng)絡(luò)設(shè)備的數(shù)量可能涉及虛擬操作系統(tǒng),虛擬機(jī)管理程序軟交換機(jī),虛擬防火墻,機(jī)架頂交換機(jī),脊柱交換機(jī),然后一直到另一端點(diǎn)。
當(dāng)一些工作負(fù)載在公共云中時(shí),事情就變得更加復(fù)雜了。將基礎(chǔ)設(shè)施或平臺(tái)作為服務(wù)的一個(gè)服務(wù),意味著為我們的故障排除方程添加高延遲和額外的隧道。
業(yè)界的反應(yīng)是我們被IP所困。由于我們?cè)谕瑫r(shí)需要額外的功能的同時(shí)又被困在IP里,所以覆蓋在這里。覆蓋層使我們能夠引導(dǎo)和隔離流量,這種功能是很重要的。有了它,我們就可以將我們的基礎(chǔ)設(shè)施看作是資源池,隨意地添加和減去容量。然后,這個(gè)問題就變成了管理我們?cè)诃h(huán)境中添加的網(wǎng)絡(luò)復(fù)雜度的一個(gè)問題。
網(wǎng)絡(luò)行業(yè)已經(jīng)從幾個(gè)方面對(duì)這個(gè)挑戰(zhàn)進(jìn)行了挑戰(zhàn)。第一個(gè)是接受。如果我們同意復(fù)雜性將繼續(xù)存在,那么我們將提供一些工具,讓我們能夠發(fā)現(xiàn)或可視化網(wǎng)絡(luò)上正在發(fā)生的事情。
例如,Cisco為操作人員提供了增強(qiáng)的工具,以解決其以應(yīng)用程序?yàn)橹行牡幕A(chǔ)設(shè)施平臺(tái)上的端到端連接問題。VMware最近收購了Arkin,這是一種可視化工具,它將工作負(fù)載與防火墻策略和VXLAN分割相關(guān)聯(lián),并與自然語言搜索引擎相結(jié)合。
在現(xiàn)代數(shù)據(jù)中心平臺(tái)中,有效的故障排除和可視化工具是越來越多的優(yōu)點(diǎn)。然而,一些人通過創(chuàng)建轉(zhuǎn)發(fā)方案來避免這種復(fù)雜性,如果可能的話,避免覆蓋。
例如,Romana.io開源項(xiàng)目依賴于分層IP尋址方案,結(jié)合基于主機(jī)的防火墻規(guī)則來創(chuàng)建分段和中央安全策略。 開源項(xiàng)目Calico是類似的。 Romana.io和Project Calico都非常有趣,因?yàn)樗鼈兲峁┝藬U(kuò)展到大數(shù)據(jù)中心的轉(zhuǎn)發(fā)方案,同時(shí)仍然處理安全性和分段要求,而且它們沒有覆蓋。
也許最大的問題不在于如何處理網(wǎng)絡(luò)復(fù)雜性,而是關(guān)于人們支持解決方案。 有一個(gè)想法,自動(dòng)化將允許IT人員變薄。 作為一個(gè)20年IT基礎(chǔ)設(shè)施的老將,我看不到這樣的。 極大的復(fù)雜性需要很大的支持。 當(dāng)魔術(shù)變得側(cè)面時(shí),組織不會(huì)想要與供應(yīng)商保持聯(lián)系。 他們會(huì)希望讓那些知道系統(tǒng)的專業(yè)人士準(zhǔn)備好解決什么壞事。