微服務能夠為混合云或多云部署帶來大量的好處,但是它們也能夠帶來與網絡、安全性等相關的新挑戰(zhàn)。
大多數(shù)IT企業(yè)已經開始認識到在開發(fā)和部署中實施軟件組件化的好處。在云中,組件化帶來了重要的優(yōu)勢,例如增加彈性和支持橫向擴展。
微服務(即通常在應用程序中共享的小型功能組件)能夠顯著地放大這些優(yōu)勢。但是,首先用戶必須正確地規(guī)劃、開發(fā)和部署微服務。
了解如何讓微服務起作用
如需開始規(guī)劃微服務,IT團隊需要了解微服務與以服務為導向架構中應用程序組件或元素的不同之處。微服務不是完整的應用組件;它們是在應用中作為服 務專為共享而設計的——這意味著多個應用能夠在同一時間內調用微服務的單個實例。微服務也是專為使用類似于網絡RESTful接口而設計的。
如果微服務不符合上述定義,那么它們可能不會提供很多好處的。當微服務能夠符合上述特點時,用戶需要在混合云或多個云部署中維護每一個微服務。
微服務對多云網絡的影響
因為微服務是小塊的功能組件,它們可以將應用程序分解成為對外部服務的很多個連續(xù)請求。這個用于訪問服務的網絡有可能引入傳輸延遲和其他網絡性能問 題。至關重要的是,鏈接微服務和使用它們提供服務質量(QoS)的應用的網絡連接需要支持用戶體驗。在用戶部署微服務之前,應跨用戶的混合云或多云環(huán)境測 試所有負載變化下的微服務運行性能。如果用戶的服務質量低于可接受水平,那么可變更網絡連接以矯正之。另外,用戶可以設計自己的應用部署過程以便于服務不 會移動到用戶網絡中的盲點。
混合云和多云應用中的網絡性能問題通常都與數(shù)據(jù)流量流經多云、或云和數(shù)據(jù)中心以及邊界點的方式相關??梢耘c用戶的云供應商進行溝通,讓用戶的VPN 供應商和數(shù)據(jù)中心團隊協(xié)力優(yōu)化網絡連接性。應特別謹慎處理多云應用,因為很多公共云供應商并不與其他供應商直接相連;他們會希望連接通過用戶的VPN或數(shù) 據(jù)中心網絡。如果在一個云中的一個應用使用了另一個云中的一個微服務,那么就存在著一個長傳輸延遲的潛在可能。如果用戶不能降低延遲時間,那么就應盡量避 免跨云供應商網絡的微服務訪問。用戶可能需要在每一個云環(huán)境中都部署一個服務副本,從而避免這樣的網絡性能問題。
多個應用程序訪問微服務還需要專門的優(yōu)化網絡。訪問微服務的最簡單方法就是假定擁有一個連接用戶所有云和數(shù)據(jù)中心的專用網絡。通過使用這種方法,用 戶可以在任何位置部署微服務,而應用可以使用標準IP機制——URL和域名服務(DNS)或其他服務目錄方法,來讓應用程序訪問它們。
當微服務在不同云供應商之間或在云供應商與數(shù)據(jù)中心之間遷移時,還會帶來另一個挑戰(zhàn)。通常情況下,這種遷移需要改變IP地址,這意味著微服務遷移后 必須將服務邏輯名稱關聯(lián)不同地址。應確保用戶有用于更換故障組件的工具和措施,從而對DNS或服務目錄項做出必要的修改,以便用戶的應用程序能夠在微服務 的新地址找到新服務。
安全地部署微服務
多個應用經常共享一個單一的微服務,這一事實帶來了混合云和多云環(huán)境中的另兩個挑戰(zhàn):安全性和合規(guī)性,以及狀態(tài)和無狀態(tài)行為。
由于應用在任何時候都在共享功能,所以具有嚴格合規(guī)性需求的應用程序就存在著違規(guī)風險。這是因為共享服務可能會為外人留下一個進入的窗口。由于遷移 微服務或在負載下復制微服務需要相當開放的尋址方法,所以用戶需要確保每一個微服務及其訪問的安全性。避免微服務混合要求安全性和合規(guī)性監(jiān)控的功能與其他 開放給更大社區(qū)的功能——讓它們成為兩個不同的微服務。
探索狀態(tài)和無狀態(tài)問題
狀態(tài)與無狀態(tài)問題是很復雜的,即便對于軟件架構師和開發(fā)人員來說亦是如此。應用程序通常支持包括多個步驟或狀態(tài)的交易型活動。例如,假設我們有一個 被稱為“兩個數(shù)相加”的服務。如果我們在一個請求中提出第一個數(shù),在另一個請求中提出第二個數(shù),而其他用戶可能會無意中在我們的兩個數(shù)之間引入他們自己的 數(shù)字,那么我們就會得到錯誤的答案。
如果微服務無法在向它發(fā)出的請求之間保存數(shù)據(jù),那么如有需要可令請求無狀態(tài)或者確保他們能夠以某種方式傳輸狀態(tài)。在我們的例子中,提供兩個待相加的 數(shù)字就可省去多次請求以及消除狀態(tài)行為風險。此外,還可以讓請求包含一個微服務能夠通過后端數(shù)據(jù)庫與狀態(tài)關聯(lián)的用戶ID。當提出我們的第一個數(shù)時,微服務 將在數(shù)據(jù)庫中記錄下這個數(shù)。然后,當提出第二個數(shù)時,微服務就能夠將兩個數(shù)相加并返回結果。
對于多功能性、敏捷性和靈活性總是有一個物有所值的價格的,而在混合云和多云中使用微服務則代表著我們研究領先優(yōu)勢的這三項特點。仔細規(guī)劃、盡量降低價格并部署可輕松擴展至復雜云未來的微服務。
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網頁分享至朋友圈。