<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微服務(wù)的下一步,離不開服務(wù)網(wǎng)格

          共 2743字,需瀏覽 6分鐘

           ·

          2021-01-15 13:19

          來源:http://www.360doc.com/content/20/0918/06/46368139_936322950.shtml


          軟件行業(yè)走了很長一段路,在整個(gè)過程中,軟件體系結(jié)構(gòu)也已經(jīng)發(fā)展了很多。經(jīng)歷了1層(單節(jié)點(diǎn)),2層(客戶端/服務(wù)器),3層和分布式,我們?cè)诖诉^程中看到了一些不同的軟件架構(gòu)模式。

          微服務(wù)面臨的挑戰(zhàn)

          大多數(shù)軟件公司,正從單體架構(gòu)(Monolithic)過渡到微服務(wù)架構(gòu)(Microservices),而微服務(wù)架構(gòu)(Microservices)也正在逐步接管軟件行業(yè)。單體架構(gòu)雖然有很多好處,但在滿足現(xiàn)代軟件開發(fā)需求時(shí)也有很多缺點(diǎn)。

          微服務(wù)架構(gòu)使我們能夠更頻繁,更獨(dú)立地部署應(yīng)用程序,并可靠地滿足現(xiàn)代軟件應(yīng)用程序開發(fā)要求。

          將單體應(yīng)用分解為微服務(wù)應(yīng)用

          微服務(wù)架構(gòu)幾乎解決了單體架構(gòu)的所有缺點(diǎn)。微服務(wù)提供了故障隔離,滿足應(yīng)用更小,更快的部署,具備應(yīng)用的可伸縮性,使得不同服務(wù)可以采用不同的開發(fā)技術(shù),提高了開發(fā)效率,滿足了以業(yè)務(wù)為中心的需求。

          盡管微服務(wù)架構(gòu)相對(duì)于其他架構(gòu)具有許多優(yōu)勢,但它也面臨著一系列挑戰(zhàn)。在微服務(wù)體系結(jié)構(gòu)中,它必須處理與設(shè)計(jì)分布式系統(tǒng)時(shí)遇到的問題。

          微服務(wù)架構(gòu)背后的思想是,我們將擁有多個(gè)獨(dú)立的較小服務(wù)集,每個(gè)服務(wù)提供單獨(dú)的業(yè)務(wù)功能,而不是擁有一個(gè)大型的單個(gè)代碼庫。通過這種方法,現(xiàn)代軟件應(yīng)用程序?qū)⑿枰獛资畟€(gè)、甚至數(shù)百個(gè)單獨(dú)服務(wù)的協(xié)同工作。

          通過微服務(wù)架構(gòu),引入了網(wǎng)絡(luò)依賴,并引發(fā)了可靠性問題。網(wǎng)絡(luò)可靠性,延遲,帶寬和網(wǎng)絡(luò)安全性,是我們必須處理的一些與網(wǎng)絡(luò)相關(guān)的挑戰(zhàn)。

          在服務(wù)之間實(shí)現(xiàn)通信也將是一項(xiàng)艱巨的任務(wù)。隨著服務(wù)數(shù)量的增加,我們必須處理它們之間的交互。除了服務(wù)之間的通信外,我們還必須處理整個(gè)系統(tǒng)運(yùn)行狀況的監(jiān)視,容錯(cuò),日志記錄和遙測功能,處理多點(diǎn)故障等等。使用微服務(wù)架構(gòu),由于我們必須處理許多服務(wù)間通信和基礎(chǔ)網(wǎng)絡(luò),因此調(diào)試問題可能會(huì)更加棘手。

          隨著基于第三方類庫和組件的引入,克服了與微服務(wù)體系結(jié)構(gòu)有關(guān)的上述挑戰(zhàn),每個(gè)服務(wù)也都具備了這些通用功能(監(jiān)視,運(yùn)行狀況檢查,日志記錄,遙測等),使得服務(wù)到服務(wù)的通信順暢且可靠。但是,將這些功能整合到每一項(xiàng)服務(wù)中,這在開發(fā)和維護(hù)上都需要付出很多努力。

          開發(fā)人員使用第三方類庫和組件(例如Eureka,Ribbon,Hystrix)來提供這些通用功能,例如服務(wù)發(fā)現(xiàn),負(fù)載均衡,斷路器,日志記錄和度量,遙測等。

          結(jié)合了業(yè)務(wù)功能和網(wǎng)絡(luò)相關(guān)功能的微服務(wù)

          但是,使用第三方庫和組件會(huì)帶來一系列不同的挑戰(zhàn),例如:

          • 緊密耦合-這些第三方庫/組件的編碼和配置與服務(wù)中的業(yè)務(wù)功能緊密相關(guān)?,F(xiàn)在,應(yīng)用程序代碼是業(yè)務(wù)功能和這些其他庫/組件配置的混合。

          • 編碼/配置的復(fù)雜性增加-使用的第三方庫/組件,可能必須使用不同的編程和配置語言集

          • 可維護(hù)性差—每當(dāng)這些外部庫/組件升級(jí)時(shí),我們都必須更新應(yīng)用程序代碼,對(duì)其進(jìn)行驗(yàn)證并部署這些更改

          • 調(diào)試/故障排除復(fù)雜度增加-現(xiàn)在服務(wù)是與第三方庫/組件的混合,如果出現(xiàn)應(yīng)用故障,開發(fā)人員必須花費(fèi)大量時(shí)間來了解代碼并排查問題

          沒有服務(wù)網(wǎng)格體系結(jié)構(gòu)的微服務(wù)

          盡管微服務(wù)架構(gòu)提供了很多好處,但是開發(fā)人員在面對(duì)上述挑戰(zhàn)時(shí)也面臨很多困難。這些挑戰(zhàn)促使開發(fā)人員找到了更好的替代方案–Service Mesh(服務(wù)網(wǎng)格)。

          微服務(wù)的解決方案

          服務(wù)網(wǎng)格可以定義為處理微服務(wù)架構(gòu)中服務(wù)間通信的專用基礎(chǔ)結(jié)構(gòu)層,從而降低了上述挑戰(zhàn)帶來的復(fù)雜性。Service Mesh使我們能夠成功,高效地運(yùn)行分布式微服務(wù)架構(gòu),并提供保護(hù),連接和監(jiān)視微服務(wù)的統(tǒng)一方法。

          服務(wù)網(wǎng)格背后的想法非常簡單。不要在服務(wù)代碼中增加其他與基礎(chǔ)架構(gòu)/網(wǎng)絡(luò)相關(guān)的細(xì)節(jié),而讓它僅關(guān)注其必須執(zhí)行的業(yè)務(wù)功能。

          通常,Service Mesh提供以下功能:

          • 負(fù)載均衡

          • 服務(wù)發(fā)現(xiàn)

          • 健康檢查

          • 認(rèn)證方式

          • 流量管理和路由

          • 斷路器和故障轉(zhuǎn)移

          • 安全管理

          • 指標(biāo)收集和監(jiān)控

          • 故障注入

          有了Service Mesh,我們不必使用任何第三方庫/組件,就可以在每個(gè)微服務(wù)中提供與網(wǎng)絡(luò)相關(guān)的通用功能,例如配置,路由,遙測,記錄,斷路等。Service Mesh將把那些與網(wǎng)絡(luò)相關(guān)的通用功能抽象/外部化為一個(gè)單獨(dú)的組件/層,稱為“服務(wù)代理”。

          服務(wù)網(wǎng)格將應(yīng)用程序中使用第三方庫/組件的復(fù)雜性解耦。

          現(xiàn)在,開發(fā)人員可以根據(jù)與應(yīng)用程序或網(wǎng)絡(luò)相關(guān)的問題輕松排查任何問題的根本原因,從而使他們的生活變得異常便捷。借助Service Mesh架構(gòu),業(yè)務(wù)功能和與網(wǎng)絡(luò)相關(guān)的功能之間的職責(zé)分工清晰。

          具有服務(wù)代理(Sidecar)的微服務(wù)

          通常,Sidecar模式用于實(shí)現(xiàn)服務(wù)網(wǎng)格體系結(jié)構(gòu)。在這種模式下,我們可以在服務(wù)旁邊部署服務(wù)網(wǎng)格代理。服務(wù)代理的Sidecar將復(fù)雜性從應(yīng)用程序中抽象出來,并處理服務(wù)發(fā)現(xiàn),流量管理,負(fù)載均衡,斷路器等功能。

          具有服務(wù)網(wǎng)格架構(gòu)的基于微服務(wù)的解決方案

          總而言之,采用基于服務(wù)網(wǎng)格架構(gòu)的微服務(wù),開發(fā)人員:

          • 無需擔(dān)心使用任何第三方庫/組件來提供與網(wǎng)絡(luò)相關(guān)的功能

          • 所有服務(wù)到服務(wù)的通信將通過稱為“服務(wù)代理”的組件/層,因此我們不必在每個(gè)服務(wù)中都實(shí)現(xiàn)它

          • 將業(yè)務(wù)功能與與網(wǎng)絡(luò)相關(guān)的功能分離

          • 僅關(guān)注業(yè)務(wù)功能,而無需擔(dān)心與網(wǎng)絡(luò)相關(guān)的基礎(chǔ)功能,讓服務(wù)網(wǎng)格為你處理

          • 無需擔(dān)心服務(wù)網(wǎng)格的開發(fā),因?yàn)榉?wù)網(wǎng)格基于開放標(biāo)準(zhǔn),例如HTTP,TCP,RPC,gRPC等。

          結(jié)論

          微服務(wù)架構(gòu)由于其優(yōu)于其他架構(gòu)模式的優(yōu)勢,正在積極地控制軟件工程行業(yè)。隨著越來越多的組織從單體架構(gòu)過渡到微服務(wù)架構(gòu),作為開發(fā)人員,我們需要了解微服務(wù)架構(gòu)中的挑戰(zhàn)并找到解決方法。Service Mesh架構(gòu)解決了微服務(wù)架構(gòu)引入遇到的一些挑戰(zhàn)。

          現(xiàn)在我們知道了服務(wù)網(wǎng)格在微服務(wù)架構(gòu)中的作用和重要性,下面讓我們看一下可以在下一次開發(fā)活動(dòng)中使用的服務(wù)網(wǎng)格產(chǎn)品/平臺(tái)。Linkerd, Envoy Proxy, Istio, Consul, Kuma和 Open Service Mesh(OSM)是我們可以使用的一些領(lǐng)先的開源的Service Mesh平臺(tái)。它們中的大多數(shù)經(jīng)過了大量測試,可以投入生產(chǎn)使用。

          - END -


          ?推薦閱讀?

          Kubernetes生產(chǎn)環(huán)境最佳實(shí)踐
          主流日志采集器,陰暗潮濕的地底世界
          使用GitLab CI和Docker自動(dòng)部署SpringBoot應(yīng)用
          記一次 Linux服務(wù)器被入侵后的排查思路
          Nginx為什么快到根本停不下來?
          用了3年Kubernetes,我們得到的5個(gè)教訓(xùn)
          Linux 運(yùn)維必備的 40 個(gè)命令總結(jié),收好了~



          點(diǎn)亮,服務(wù)器三年不宕機(jī)

          瀏覽 63
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线啊v视频 | 国产鸡巴操逼视频 | 青娱乐成人视频 | 老女人操逼视频网站 | 日韩欧美中文字幕视频 |