IT網(wǎng)絡(luò)安全運(yùn)維端口復(fù)用原理及防范小知識(shí)
2020-04-28 17:26 作者:艾銻無(wú)限 瀏覽量:
IT網(wǎng)絡(luò)安全運(yùn)維 | 端口復(fù)用原理及防范
作為
IT運(yùn)維平時(shí)工作會(huì)接觸到各種成熟的架構(gòu),下面總結(jié)一下對(duì)微服務(wù)架構(gòu)整體的一個(gè)淺層次認(rèn)知,主要包括以下9個(gè)方面認(rèn)知。供廣大
IT運(yùn)維參考。
一.微服務(wù)
①什么是微服務(wù)?
微服務(wù)就是一些協(xié)同工作的小而自治的服務(wù),稱(chēng)之為分布式系統(tǒng),是SOA(面向服務(wù)的架構(gòu))架構(gòu)的一種實(shí)現(xiàn)方法。
單個(gè)服務(wù)多小合適?應(yīng)該考慮這些因素:服務(wù)越小,服務(wù)架構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)也就越明顯。使用的服務(wù)越小,獨(dú)立性帶來(lái)的好處越多,但是管理大量的微服務(wù)也會(huì)越復(fù)雜。
單個(gè)服務(wù)的自治性特點(diǎn)。一個(gè)服務(wù)就是一個(gè)獨(dú)立的實(shí)體。每一個(gè)服務(wù)暴露出API,服務(wù)之間以網(wǎng)絡(luò)為媒介通過(guò)這些API調(diào)用進(jìn)行通信。從而加強(qiáng)了服務(wù)之間的隔離性,避免緊耦合。
②微服務(wù)帶來(lái)的好處?
(1)技術(shù)異構(gòu)性。
不同的服務(wù)使用最適合該服務(wù)的技術(shù)。如果系統(tǒng)中的某一部分需要做性能提升,可以使用性能更好的技術(shù)棧重構(gòu)該服務(wù)。如系統(tǒng)中不同的服務(wù)可以使用不同的數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)。微服務(wù)可以幫助我們更快地采用新技術(shù),并降低風(fēng)險(xiǎn)。
(2)彈性。
彈性工程學(xué)的一個(gè)關(guān)鍵概念是壁艙。如果系統(tǒng)中一個(gè)組件不可用了,但并沒(méi)有導(dǎo)致級(jí)聯(lián)故障,那么系統(tǒng)的其他部分還可以正常運(yùn)行。服務(wù)的邊界就是一個(gè)很顯然的壁艙。微服務(wù)可以很好的處理服務(wù)不可用和功能降級(jí)問(wèn)題。微服務(wù)以網(wǎng)絡(luò)為媒介進(jìn)行RPC通信,網(wǎng)絡(luò)會(huì)是瓶頸問(wèn)題。
(3)易拓展。
微服務(wù)架構(gòu)相比單系統(tǒng)來(lái)說(shuō)更易拓展。
(4)易部署。
微服務(wù)部署風(fēng)險(xiǎn)低,效率高。
(5)易管理。
微服務(wù)架構(gòu),更易實(shí)現(xiàn)團(tuán)隊(duì)自治,開(kāi)發(fā)效率更高,維護(hù)成本更低。
(6)可重用。
微服務(wù)架構(gòu),對(duì)于獨(dú)立的服務(wù),可實(shí)現(xiàn)可重用,易于組合的目的。
(7)易重構(gòu)。
開(kāi)發(fā)團(tuán)隊(duì)在必要的時(shí)候可以輕易實(shí)現(xiàn)對(duì)單個(gè)服務(wù)的重構(gòu)或重寫(xiě),或刪除不再使用的服務(wù)。
③相關(guān)術(shù)語(yǔ)。
(1)SOA(Service-Oriented Architecture,面向服務(wù)的架構(gòu))。實(shí)施SOA通常要考慮:通信協(xié)議的選擇,第三方中間件的選擇,服務(wù)粒度的劃分等。
(2)OSGI(Open Source Gateway Initiative,開(kāi)放服務(wù)網(wǎng)關(guān)協(xié)議)。OSGI是一種模塊分解技術(shù),強(qiáng)調(diào)模塊生命周期管理,允許在一個(gè)進(jìn)程內(nèi)部進(jìn)行模塊劃分,創(chuàng)建出相對(duì)隔離的模塊避免耦合。Java9已加入這個(gè)特性。但不推薦這么做。
二.建模微服務(wù)
①好的微服務(wù)特點(diǎn)?
(1)松耦合
服務(wù)之間松耦合,要求能夠做到能夠修改及部署單個(gè)服務(wù)而不需要修改系統(tǒng)的其它服務(wù)。一個(gè)松耦合的服務(wù)應(yīng)該盡可能少的知道與之協(xié)作的服務(wù)的信息。否則服務(wù)之間過(guò)度通信會(huì)導(dǎo)致緊耦合。
(2)高內(nèi)聚
把相關(guān)的行為聚集在一起,把不相關(guān)的行為放在別處。達(dá)到這樣的目的,當(dāng)需要修改某個(gè)行為時(shí),最好只對(duì)一個(gè)服務(wù)進(jìn)行修改,而不需修改其它服務(wù),達(dá)到快速發(fā)布,降低風(fēng)險(xiǎn),快速交付。所以找到問(wèn)題的邊界,確定劃分服務(wù)的粒度是關(guān)鍵。
②建模微服務(wù)
建模微服務(wù),應(yīng)該以服務(wù)所提供的功能為出發(fā)點(diǎn),進(jìn)行微服務(wù)的建模。
三.集成服務(wù)
微服務(wù),每一個(gè)單獨(dú)的服務(wù)所提供的功能相對(duì)單一,但每一個(gè)服務(wù)的的功能實(shí)現(xiàn)可能要集成其它服務(wù)的功能。集成是微服務(wù)架構(gòu)中一種常用的手段。
①服務(wù)之間的通信方式-同步/異步
(1)同步
使用同步通信,發(fā)起一個(gè)遠(yuǎn)程服務(wù)調(diào)用之后,調(diào)用方會(huì)阻塞自己并等待整個(gè)遠(yuǎn)程調(diào)用過(guò)程的完成,才可以返回。
同步調(diào)用,基于“請(qǐng)求/響應(yīng)”的模式。客戶(hù)端發(fā)起一個(gè)請(qǐng)求,然后等待響應(yīng)。
編排的架構(gòu)風(fēng)格,即采用同步調(diào)用,“請(qǐng)求/響應(yīng)”模式,可以清楚知道每一步的響應(yīng)結(jié)果,卻會(huì)導(dǎo)致系統(tǒng)臃腫,響應(yīng)耗時(shí),耦合度高。
(2)異步
使用異步通信,調(diào)用方不需要等待遠(yuǎn)程調(diào)用過(guò)程的完成,就可以返回。
異步調(diào)用,基于“事件發(fā)布”的模式。客戶(hù)端不是發(fā)起請(qǐng)求,而只是發(fā)布一個(gè)“事件”,并不知道誰(shuí)會(huì)對(duì)此事件作出響應(yīng)。
協(xié)同的架構(gòu)風(fēng)格,即采用異步調(diào)用,“事件發(fā)布”模式,可降低系統(tǒng)耦合度,響應(yīng)更快速;但需要額外的工作對(duì)對(duì)業(yè)務(wù)流程做跨服務(wù)監(jiān)控。
②同步通信實(shí)現(xiàn)技術(shù)-RPC/REST
RPC(Remote Procedure Call)遠(yuǎn)程過(guò)程調(diào)用;
REST(Representational State Transfer)表述性狀態(tài)轉(zhuǎn)移。
(1)RPC
遠(yuǎn)程調(diào)用,允許你進(jìn)行一個(gè)本地調(diào)用,但事實(shí)上結(jié)果是由某個(gè)遠(yuǎn)程服務(wù)器產(chǎn)生的。遠(yuǎn)程調(diào)用的協(xié)議種類(lèi)繁多,如Java RMI,Thrift,Protocol buffers等是使用二進(jìn)制作為消息的傳輸格式;SOAP使用XML作為消息的傳輸格式。
RPC會(huì)花費(fèi)時(shí)間對(duì)傳輸信息進(jìn)行封裝和解封裝,網(wǎng)絡(luò)通信耗時(shí)也是需要考慮的因素;通信雙方對(duì)使用的數(shù)據(jù)模型依賴(lài)較重,數(shù)據(jù)類(lèi)型會(huì)直接被序列化和反序列化,導(dǎo)致不再使用的字段無(wú)法被安全刪除。
RPC可以幫助你生成客戶(hù)端樁代碼,可以支持高級(jí)的序列化和反序列化機(jī)制,以及更加靈活的通信協(xié)議。
(2)REST
REST是受Web啟發(fā)產(chǎn)生的,能夠使客戶(hù)端和服務(wù)端對(duì)數(shù)據(jù)模型的依賴(lài)弱化,更加靈活。
REST風(fēng)格多用Http協(xié)議,數(shù)據(jù)傳輸格式靈活,JSON,XML及二進(jìn)制格式都可以。
③異步通信實(shí)現(xiàn)技術(shù)-MQ
異步通信,基于“事件發(fā)布”機(jī)制。耦合度低,伸縮性好;但編程的復(fù)雜性更高,常用的成熟技術(shù)手段是采用“消息隊(duì)列”實(shí)現(xiàn)。
④集成微服務(wù)考慮要素
(1)服務(wù)的響應(yīng)延時(shí)
(2)服務(wù)不可用,合理安全的功能降級(jí)
四.分解單個(gè)系統(tǒng)
分解單個(gè)臃腫的系統(tǒng),使其拆分成多個(gè)微服務(wù)。
①分離數(shù)據(jù)庫(kù)
建議先分離數(shù)據(jù)庫(kù)結(jié)構(gòu),再分離服務(wù)。
②慎重處理分布式事務(wù)
把單個(gè)系統(tǒng)拆分為多個(gè)微服務(wù),可能會(huì)產(chǎn)生分布式事務(wù)。分布式事務(wù)橫跨多個(gè)系統(tǒng),運(yùn)行在不同系統(tǒng)的不同進(jìn)程中。分布式事務(wù)通常通過(guò)重試和補(bǔ)償機(jī)制來(lái)達(dá)到最終的一致性。
五.部署
①CI(Continuous Integration)持續(xù)集成。
CI能夠保證新提交的代碼與已有的代碼進(jìn)行集成,從而讓所有人保持同步。通過(guò)CI能夠從已部署的構(gòu)建物回溯到響應(yīng)的代碼。把CI構(gòu)建和每個(gè)微服務(wù)映射起來(lái),每個(gè)服務(wù)獨(dú)立于其它服務(wù)進(jìn)行獨(dú)立部署。
②CD(Continuous Delivery)持續(xù)交付。
CD能夠檢查每次提交是否達(dá)到了部署到生產(chǎn)環(huán)境的要求,并持續(xù)的把這些信息反饋,它會(huì)把每次提交當(dāng)成候選發(fā)布版本來(lái)對(duì)待。
③實(shí)施藍(lán)/綠部署
藍(lán)綠部署時(shí),我們會(huì)部署兩份軟件,只有一份接受真正的請(qǐng)求。如把新新版本的服務(wù)用于接受請(qǐng)求,并保留舊版本一段時(shí)間,確保發(fā)生錯(cuò)誤時(shí),能夠快速恢復(fù)到舊的版本。
④金絲雀發(fā)布
金絲雀發(fā)布是指通過(guò)將部分生產(chǎn)流量引流到新部署的系統(tǒng),來(lái)驗(yàn)證系統(tǒng)是否按預(yù)期執(zhí)行。金絲雀發(fā)布與藍(lán)綠部署的不同之處在于,新舊版本共存時(shí)間更長(zhǎng),而且經(jīng)常會(huì)調(diào)整流量。
六.測(cè)試
①單元測(cè)試
單元測(cè)試,通常用來(lái)測(cè)試函數(shù)和方法調(diào)用。TDD(Test-Driven Design)測(cè)試驅(qū)動(dòng)開(kāi)發(fā),就屬于單元測(cè)試。
②服務(wù)測(cè)試
服務(wù)測(cè)試,是針對(duì)暴露的服務(wù)功能進(jìn)行測(cè)試。一個(gè)服務(wù)測(cè)試只測(cè)試其中一個(gè)單獨(dú)服務(wù)功能。
七.監(jiān)控
微服務(wù)會(huì)增加生產(chǎn)系統(tǒng)監(jiān)控的復(fù)雜性。監(jiān)控的的手段是:監(jiān)控單個(gè)服務(wù),然后聚合起來(lái)看整體。
如,對(duì)每一個(gè)微服務(wù)進(jìn)行埋點(diǎn)日志,然后聚合日志信息做整體分析;如對(duì)每一臺(tái)運(yùn)行的機(jī)器利用輔助監(jiān)控工具,統(tǒng)計(jì)的cpu,內(nèi)存等資源使用占比等信息。
八.安全
①身份驗(yàn)證和授權(quán)
身份驗(yàn)證和授權(quán)一種實(shí)現(xiàn)手段是,使用某種形式的SSO(Single Sign-On)單點(diǎn)登錄解決方案。當(dāng)請(qǐng)求試圖訪(fǎng)問(wèn)一個(gè)資源,它會(huì)被定向到一個(gè)身份提供者哪里進(jìn)行身份驗(yàn)證。這個(gè)身份提供者要求它提供用戶(hù)名和密碼,或是使用雙重身份驗(yàn)證。當(dāng)身份提供者確認(rèn)請(qǐng)求已通過(guò)身份驗(yàn)證,它會(huì)發(fā)消息給服務(wù)
提供者,讓服務(wù)提供者決定是否允許訪(fǎng)問(wèn)資源。
如常用的SAML和OpenID Connect等解決方案提供了這方面的能力。
②HTTP(S)基本身份驗(yàn)證
③攜帶密鑰形式的驗(yàn)證
④數(shù)據(jù)加密傳輸,如采用AES對(duì)稱(chēng)加密算法加密傳輸
⑤深度防御,如防火墻機(jī)制,網(wǎng)絡(luò)隔離等手段
九.微服架構(gòu)指導(dǎo)思想
①4個(gè)設(shè)計(jì)原則
(1)AKF拆分原則(指“負(fù)載均衡”,“數(shù)據(jù)分區(qū)”,拆分為微服務(wù))
(2)前后端分離
(3)無(wú)狀態(tài)服務(wù)
(4)Restful通信風(fēng)格
②一些實(shí)踐指導(dǎo)思想
斷路器思想:當(dāng)調(diào)用的服務(wù)失敗率(或由于超時(shí)導(dǎo)致,或由于服務(wù)不可用導(dǎo)致)達(dá)到設(shè)定閾值,啟動(dòng)快速失敗,當(dāng)恢復(fù)健康后,再重新調(diào)用。
冪等:錯(cuò)誤重試,考慮冪等,如果操作是冪等的,我們對(duì)其調(diào)用多次,不必?fù)?dān)心會(huì)有不利影響。
數(shù)據(jù)庫(kù)的架構(gòu):讀寫(xiě)分離,主從備份。
合理緩存策略:合理緩存,提升性能,災(zāi)備故障。
CAP架構(gòu)原則:如分布式事務(wù)要滿(mǎn)足CAP原則。
服務(wù)注冊(cè)與發(fā)現(xiàn):采用成熟的開(kāi)源套件構(gòu)建友好的服務(wù)注冊(cè)與發(fā)現(xiàn)。
艾銻無(wú)限科技專(zhuān)業(yè):IT外包、企業(yè)外包、北京IT外包、桌面運(yùn)維、弱電工程、網(wǎng)站開(kāi)發(fā)、wifi覆蓋方案,網(wǎng)絡(luò)外包,網(wǎng)絡(luò)管理服務(wù),網(wǎng)管外包,綜合布線(xiàn),服務(wù)器運(yùn)維服務(wù),中小企業(yè)it外包服務(wù),服務(wù)器維保公司,硬件運(yùn)維,網(wǎng)站運(yùn)維服務(wù)
以上文章由北京艾銻無(wú)限科技發(fā)展有限公司整理