廣西Nginx微服務(wù)架構(gòu)運(yùn)維

來(lái)源: 發(fā)布時(shí)間:2022-09-05

    ThoughtWorks也在極力倡導(dǎo)開發(fā)、設(shè)計(jì)、部署、運(yùn)維一體化的DEVOPS文化理念,并通過(guò)豐富的咨詢和交付成果來(lái)幫助企業(yè)研發(fā)團(tuán)隊(duì)更好地實(shí)施微服務(wù)架構(gòu)的開發(fā)。那么在編碼測(cè)試方面,又有什么招來(lái)保證微服務(wù)架構(gòu)下系統(tǒng)的質(zhì)量?本文將從開發(fā)測(cè)試的視角來(lái)探討如何在微服務(wù)架構(gòu)下通過(guò)不一樣的測(cè)試策略來(lái)盡可能的保證系統(tǒng)的質(zhì)量。2.單體應(yīng)用測(cè)試實(shí)踐當(dāng)我們的意識(shí)中只存在一樣?xùn)|西的時(shí)候,我們便可以不假思索的拿來(lái)就用。在單體時(shí)代,對(duì)于開發(fā)-測(cè)試-部署,業(yè)界已經(jīng)具備了一套很成熟的解決方案?;谶@種方案,當(dāng)一個(gè)敏捷開發(fā)的小Team開始構(gòu)建一個(gè)應(yīng)用之前,CI搭建的過(guò)程也會(huì)變得非常簡(jiǎn)單:CI只需要從一個(gè)代碼庫(kù)中去pull代碼,然后編譯-測(cè)試-部署,它的流程可以簡(jiǎn)化成:在這種單線流水線模式下,如果團(tuán)隊(duì)的自動(dòng)化實(shí)踐做得很好,開發(fā)人員只需要關(guān)注自己編寫代碼時(shí)所編寫的測(cè)試的質(zhì)量和數(shù)量。整個(gè)應(yīng)用的測(cè)試策略簡(jiǎn)單直接:保證足夠的單元測(cè)試的覆蓋率,保持一定數(shù)量的Servcie測(cè)試,添加一些重要業(yè)務(wù)流程的E2E測(cè)試。3.微服務(wù)測(cè)試的演變微服務(wù)架構(gòu)是一種演進(jìn)式架構(gòu),開發(fā)團(tuán)隊(duì)跟領(lǐng)域**在一起進(jìn)行業(yè)務(wù)分析(EventStorming),從而劃分出的服務(wù),系統(tǒng)一開始確定為服務(wù)的數(shù)量可能是幾個(gè)。這種架構(gòu)使得每個(gè)服務(wù)都可以有專門開發(fā)團(tuán)隊(duì)來(lái)開發(fā)。開發(fā)者可以自由選擇開發(fā)技術(shù),提供API服務(wù)。廣西Nginx微服務(wù)架構(gòu)運(yùn)維

    微服務(wù)也指一種種松耦合的、有一定的有界上下文的面向服務(wù)架構(gòu)。也就是說(shuō),如果每個(gè)服務(wù)都要同時(shí)修改,那么它們就不是微服務(wù),因?yàn)樗鼈兙o耦合在一起;如果你需要掌握一個(gè)服務(wù)太多的上下文場(chǎng)景使用條件,那么它就是一個(gè)有上下文邊界的服務(wù),這個(gè)定義來(lái)自DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)。相對(duì)于單體架構(gòu)和SOA,它的主要特點(diǎn)是組件化、松耦合、自治、去中心化,體現(xiàn)在以下幾個(gè)方面:一組小的服務(wù)服務(wù)粒度要小,而每個(gè)服務(wù)是針對(duì)一個(gè)單一職責(zé)的業(yè)務(wù)能力的封裝,專注做好一件事情。部署運(yùn)行和擴(kuò)展每個(gè)服務(wù)能夠被部署并運(yùn)行在一個(gè)進(jìn)程內(nèi)。這種運(yùn)行和部署方式能夠賦予系統(tǒng)靈活的代碼組織方式和發(fā)布節(jié)奏,使得快速交付和應(yīng)對(duì)變化成為可能。開發(fā)和演化技術(shù)選型靈活,不受遺留系統(tǒng)技術(shù)約束。合適的業(yè)務(wù)問(wèn)題選擇合適的技術(shù)可以演化。服務(wù)與服務(wù)之間采取與語(yǔ)言無(wú)關(guān)的API進(jìn)行集成。相對(duì)單體架構(gòu),微服務(wù)架構(gòu)是更面向業(yè)務(wù)創(chuàng)新的一種架構(gòu)模式。團(tuán)隊(duì)和自治團(tuán)隊(duì)對(duì)服務(wù)的整個(gè)生命周期負(fù)責(zé),工作在的上下文中,自己決策自己治理,而不需要統(tǒng)一的指揮中心。團(tuán)隊(duì)和團(tuán)隊(duì)之間通過(guò)松散的社區(qū)部落進(jìn)行銜接。我們可以看到整個(gè)微服務(wù)的思想就如我們現(xiàn)在面對(duì)信息、知識(shí)是一樣的:通過(guò)解耦我們所做的事情。石家莊Consul微服務(wù)架構(gòu)解決方案應(yīng)用是業(yè)務(wù)邏輯,由定義服務(wù)、域?qū)ο蠛褪录哪K完成。

    譬如有些團(tuán)隊(duì)的測(cè)試策略發(fā)生了下面的極端情況:軟件工程曾經(jīng)從未產(chǎn)出銀彈,相信未來(lái)也不會(huì),一種新的方案的誕生只是解決了已有方案的痛點(diǎn),好比微服務(wù)架構(gòu)解決了單體的那些痛點(diǎn)之后,卻又帶來(lái)了足夠的復(fù)雜性,從而對(duì)團(tuán)隊(duì)自身的能力提出了挑戰(zhàn)。在選擇測(cè)試策略的時(shí)候可以參考以下幾條原則:?jiǎn)卧獪y(cè)試成本低,運(yùn)行效率高,性價(jià)比非常高,始終擺在位。高層測(cè)試只是測(cè)試防護(hù)體系的第二防線。軟件開發(fā)是一項(xiàng)成本與收益的博弈活動(dòng),性價(jià)比高的方案應(yīng)該更加受到青睞。沒(méi)有的對(duì)與錯(cuò),根據(jù)自身項(xiàng)目工程和技術(shù)能力選擇適合團(tuán)隊(duì)的策略。其中第二條原則強(qiáng)調(diào):如果一個(gè)高層測(cè)試失敗了,不表明功能代碼中存在bug,還意味著單元測(cè)試的欠缺。因此,無(wú)論何時(shí)修復(fù)失敗的端到端測(cè)試,都應(yīng)該同時(shí)添加相應(yīng)的單元測(cè)試。11.寫在后微服務(wù)架構(gòu)的復(fù)雜度不體現(xiàn)在技術(shù)上,與之相輔相成的是系統(tǒng)的業(yè)務(wù)架構(gòu),而技術(shù)架構(gòu)總是服務(wù)于業(yè)務(wù)架構(gòu)。的測(cè)試策略和工程技術(shù)實(shí)踐讓我們更好地構(gòu)建復(fù)雜的架構(gòu)體系并克服它所帶來(lái)的挑戰(zhàn),而終決定一個(gè)系統(tǒng)成功與否在于人。所以,團(tuán)隊(duì)中每一個(gè)人應(yīng)該保持Open的心態(tài),持續(xù)學(xué)習(xí),提升自己的高度(技能和業(yè)務(wù)),掌握實(shí)施微服務(wù)的相關(guān)技能,比如利用DDD去做服務(wù)的劃分。

    服務(wù)一小再小世界上不變的是變化本身。----By斯賓塞.約翰遜萬(wàn)理同此,縱觀應(yīng)用形態(tài)發(fā)展歷程,從單機(jī)到網(wǎng)絡(luò)、從單體到服務(wù)化、到微服務(wù)、到Serverless,再到未來(lái),應(yīng)用的形態(tài)隨著業(yè)務(wù)驅(qū)動(dòng)和技術(shù)演化,一直在不斷變化。隨之而來(lái)的是業(yè)務(wù)需求的復(fù)雜化與多樣化,企業(yè)IT面臨著大規(guī)模、高并發(fā)、應(yīng)用快速創(chuàng)新等新難題,彈性與敏捷成為企業(yè)IT的迫切需求。在IT行業(yè)內(nèi)有兩個(gè)“不成熟”的理論:,每增加一行代碼就會(huì)帶來(lái)N種風(fēng)險(xiǎn);第二,任何問(wèn)題都可以采取增加一層抽象的方式解決。因此面對(duì)企業(yè)IT復(fù)雜的環(huán)境,“小而精”逐漸取代“大而全”,成為構(gòu)建企業(yè)服務(wù)的方式,這也導(dǎo)致軟件設(shè)計(jì)原則中的“高內(nèi)聚,低耦合”又開始成為不斷被高調(diào)吟誦的主角,微服務(wù)理念因此大行其道。微服務(wù)架構(gòu)為業(yè)務(wù)單元可開發(fā)和部署,使服務(wù)具備靈活的動(dòng)態(tài)處理機(jī)能,同時(shí)依賴高度抽象化的組件工具和多元化的通信機(jī)制,向用戶屏蔽所有服務(wù)之間的通信細(xì)節(jié)的這種思想提供了佳落地實(shí)踐。微服務(wù)的出現(xiàn)有效地縮短了服務(wù)上線周期,并且允許企業(yè)快速響應(yīng)客戶反饋,為客戶提供所期望的可靠服務(wù)。然而隨著企業(yè)業(yè)務(wù)的發(fā)展與擴(kuò)張與微服務(wù)的深入,服務(wù)數(shù)量向不可控的規(guī)模增長(zhǎng),服務(wù)數(shù)量的爆發(fā)式增長(zhǎng)。微服務(wù)是指開發(fā)單個(gè)小型但有業(yè)務(wù)功能的服務(wù)每個(gè)服務(wù)有自己處理和輕量通訊機(jī)制可以部署在單個(gè)多個(gè)服務(wù)器上。

    Docker)與微服務(wù)?Image管理?系統(tǒng)安全管理?授權(quán)管理?系統(tǒng)成熟度?社區(qū)成熟度開發(fā)方式影響隨著持續(xù)交付概念推廣以及Docker容器普及,微服務(wù)將這兩種理念和技術(shù)結(jié)合起來(lái),形成新的微服務(wù)+API+平臺(tái)的開發(fā)模式,提出了容器化微服務(wù)的持續(xù)交付概念。下圖傳統(tǒng)Monolithic的DevOps開發(fā)隊(duì)伍方式:這種整體型架構(gòu)要求產(chǎn)品隊(duì)伍橫跨產(chǎn)品管理Dev開發(fā)QADBA以及系統(tǒng)運(yùn)營(yíng)管理,而微服務(wù)架構(gòu)引入以后,如下圖:微服務(wù)促進(jìn)了DevOps方式的重組,將一個(gè)大臃腫的整體產(chǎn)品開發(fā)隊(duì)伍切分為根據(jù)不同微服務(wù)的劃分的產(chǎn)品隊(duì)伍,以及一個(gè)大的整體的平臺(tái)隊(duì)伍負(fù)責(zé)運(yùn)營(yíng)管理,兩者之間通過(guò)API交互,做到了松耦合隔絕。首先需要考慮構(gòu)建DevOps能力,這是保證微服務(wù)架構(gòu)在持續(xù)交付和應(yīng)對(duì)復(fù)雜運(yùn)維問(wèn)題的動(dòng)力之源;其次保持服務(wù)持續(xù)演進(jìn),使之能夠快速、低成本地被拆分和合并,以快速響應(yīng)業(yè)務(wù)的變化;同時(shí)要保持團(tuán)隊(duì)和架構(gòu)對(duì)齊。微服務(wù)貌似是技術(shù)層面的變革,但它對(duì)團(tuán)隊(duì)結(jié)構(gòu)和組織文化有很強(qiáng)的要求和影響。識(shí)別和構(gòu)建匹配架構(gòu)的團(tuán)隊(duì)是解決問(wèn)題的另一大支柱。后,打造持續(xù)改進(jìn)的自組織文化是實(shí)施微服務(wù)的關(guān)鍵基石。只有持續(xù)改進(jìn),持續(xù)學(xué)習(xí)和反饋,持續(xù)打造這樣一個(gè)文化氛圍和團(tuán)隊(duì),微服務(wù)架構(gòu)才能持續(xù)發(fā)展下去。構(gòu)建復(fù)雜的應(yīng)用真的是非常困難。單體式的架構(gòu)更適合輕量級(jí)的簡(jiǎn)單應(yīng)用。四川金融微服務(wù)架構(gòu)服務(wù)中心

微服務(wù)架構(gòu)模式是每個(gè)微服務(wù)的部署。開發(fā)者不再需要協(xié)調(diào)其它服務(wù)部署對(duì)本服務(wù)的影響。廣西Nginx微服務(wù)架構(gòu)運(yùn)維

    從這些契約可以生成存根,此后消費(fèi)者團(tuán)隊(duì)可以在構(gòu)建過(guò)程中重復(fù)使用它們。消費(fèi)者和生產(chǎn)者都需要驗(yàn)證契約。CDCT強(qiáng)調(diào)契約由消費(fèi)者來(lái)驅(qū)動(dòng),并由雙方共同遵守,是共同遵守。那么如何保證共同遵守呢?敏捷宣言中提到可工作的軟件優(yōu)于面面俱到的文檔。引入Contract概念的測(cè)試會(huì)定義一個(gè)Contract文檔(JSON協(xié)議文件)。對(duì)于消費(fèi)方,該文檔被用作測(cè)試斷言依據(jù),文檔被轉(zhuǎn)換成一個(gè)可工作的軟件(可執(zhí)行的測(cè)試套件:修改文檔會(huì)導(dǎo)致測(cè)試失?。6鴮?duì)于服務(wù)提供方,因?yàn)闇y(cè)試的斷言與Contract文檔沒(méi)有強(qiáng)制關(guān)聯(lián),它多只能是一個(gè)面面俱到的文檔。所以,只有當(dāng)雙方都將文檔轉(zhuǎn)換成可工作的軟件時(shí),文檔的修改便會(huì)導(dǎo)致任意一方測(cè)試失敗,文檔才真正成為雙方共同遵守的契約(可工作的軟件總是可靠的,文檔卻有可能已經(jīng)過(guò)期)。消費(fèi)者驅(qū)動(dòng)契約測(cè)試中存在一個(gè)契約,雙方基于契約生成可工作的測(cè)試套件:CDCT具備了引入Contract概念集成測(cè)試的諸多優(yōu)點(diǎn),并且通過(guò)可工作的測(cè)試套件保證了契約的一致性和實(shí)時(shí)性。9.技術(shù)實(shí)踐運(yùn)籌帷幄之中,決勝千里之外。三國(guó)明星諸葛亮負(fù)責(zé)運(yùn)籌帷幄,關(guān)、張、趙等武將負(fù)責(zé)沖鋒陷陣,從而決勝千里之外的硝煙戰(zhàn)場(chǎng)。團(tuán)隊(duì)確定了測(cè)試策略之后,應(yīng)當(dāng)交由工具來(lái)實(shí)施執(zhí)行。廣西Nginx微服務(wù)架構(gòu)運(yùn)維

首匯信息技術(shù)河北有限公司是一家有著雄厚實(shí)力背景、信譽(yù)可靠、勵(lì)精圖治、展望未來(lái)、有夢(mèng)想有目標(biāo),有組織有體系的公司,堅(jiān)持于帶領(lǐng)員工在未來(lái)的道路上大放光明,攜手共畫藍(lán)圖,在河北省等地區(qū)的商務(wù)服務(wù)行業(yè)中積累了大批忠誠(chéng)的客戶粉絲源,也收獲了良好的用戶口碑,為公司的發(fā)展奠定的良好的行業(yè)基礎(chǔ),也希望未來(lái)公司能成為*****,努力為行業(yè)領(lǐng)域的發(fā)展奉獻(xiàn)出自己的一份力量,我們相信精益求精的工作態(tài)度和不斷的完善創(chuàng)新理念以及自強(qiáng)不息,斗志昂揚(yáng)的的企業(yè)精神將**首匯信息供應(yīng)和您一起攜手步入輝煌,共創(chuàng)佳績(jī),一直以來(lái),公司貫徹執(zhí)行科學(xué)管理、創(chuàng)新發(fā)展、誠(chéng)實(shí)守信的方針,員工精誠(chéng)努力,協(xié)同奮取,以品質(zhì)、服務(wù)來(lái)贏得市場(chǎng),我們一直在路上!