12月28日,深信服容器云產(chǎn)品研發(fā)部研發(fā)負(fù)責(zé)人Jacky在信服云《云集技術(shù)學(xué)社》系列直播課上進(jìn)行了《微服務(wù)、服務(wù)治理實(shí)踐》的分享,詳細(xì)介紹了微服務(wù)產(chǎn)生的背景,微服務(wù)的特點(diǎn)、實(shí)施策略、設(shè)計(jì)和治理。以下是他分享內(nèi)容摘要,想要了解更多可以關(guān)注“深信服科技”公眾號(hào)觀看直播回放。
看點(diǎn)一:微服務(wù)產(chǎn)生的背景和過(guò)程
在數(shù)字化轉(zhuǎn)型的大背景下,微服務(wù)正在成為企業(yè)未來(lái)架構(gòu)的核心,很多互聯(lián)網(wǎng)巨頭都采用微服務(wù)方式構(gòu)建業(yè)務(wù)應(yīng)用。
微服務(wù)的產(chǎn)生背景源于單體架構(gòu)無(wú)法滿足互聯(lián)網(wǎng)快速迭代的需要。伴隨著業(yè)務(wù)和數(shù)據(jù)的增長(zhǎng),所有程序都運(yùn)行在同一主機(jī)上,單體架構(gòu)會(huì)導(dǎo)致應(yīng)用程序的橫向擴(kuò)展會(huì)變得越來(lái)越吃力,成本越來(lái)越高。應(yīng)用程序的復(fù)雜性逐漸增加以及功能越來(lái)越多,使得團(tuán)隊(duì)如果嘗試引入新的框架技術(shù)或者對(duì)現(xiàn)有技術(shù)棧升級(jí),通常會(huì)面臨不小的風(fēng)險(xiǎn)。在這樣的背景下,微服務(wù)出現(xiàn)了。
看點(diǎn)二:微服務(wù)的特點(diǎn)
微服務(wù)架構(gòu)有三個(gè)特點(diǎn),分別是“微”、分布式、共享。
微服務(wù)的“微”體現(xiàn)在其單一職責(zé)和獨(dú)立自治,微服務(wù)可以自己進(jìn)行部署、升級(jí)、擴(kuò)容等操作。
由于獨(dú)立自治,它的第二個(gè)特點(diǎn)就是分布式,即微服務(wù)是去中心化的,服務(wù)之間是對(duì)等關(guān)系,然后用輕量級(jí)的這種通信將API能力共享出去?;?strong>共享服務(wù)可以快速組裝創(chuàng)新出新的能力。
微服務(wù)使大型的復(fù)雜應(yīng)用程序可以持續(xù)交付與持續(xù)部署。每個(gè)服務(wù)都相對(duì)較小并容易維護(hù)。微服務(wù)可以獨(dú)立服務(wù)、獨(dú)立部署,更容易實(shí)驗(yàn)和采納新的技術(shù),也有著更好的容錯(cuò)性與可靠性。
但是不是所有的系統(tǒng)都要采用微服務(wù)架構(gòu)。對(duì)于微服務(wù)來(lái)說(shuō),服務(wù)越小,獨(dú)立性更好,但是相應(yīng)的服務(wù)數(shù)量就越多。每個(gè)服務(wù)都需要獨(dú)立的配置部署監(jiān)控、日志收集等,成本呈指數(shù)級(jí)增長(zhǎng)。
微服務(wù)經(jīng)常使用異步編程、消息隊(duì)列及并行處理,如果要求一個(gè)操作必須是同步且具有事物性,就需要管理好相關(guān)聯(lián)服務(wù)及分布式事務(wù)操作。微服務(wù)的測(cè)試也比較困難,無(wú)論人工還是自動(dòng)測(cè)試,通常都很難以一致的方式重現(xiàn)微服務(wù)應(yīng)用環(huán)境。
作為一種分布式系統(tǒng),微服務(wù)帶來(lái)如網(wǎng)絡(luò)延遲、容錯(cuò)性、消息序列化等一系列問(wèn)題。當(dāng)把傳統(tǒng)的系統(tǒng)拆分成多個(gè)相互協(xié)作的獨(dú)立服務(wù)后 ,隨著服務(wù)數(shù)量的增多,如何清晰明了地展示服務(wù)之間的依賴關(guān)系,逐漸成為挑戰(zhàn)。
因此要開(kāi)發(fā)高質(zhì)量的微服務(wù),需要從組織流程、技術(shù)架構(gòu)、平臺(tái)工具、工程方法4個(gè)方面去保證。
看點(diǎn)三:微服務(wù)實(shí)施策略
微服務(wù)落地實(shí)施第一個(gè)是需要組建全功能小團(tuán)隊(duì)。團(tuán)隊(duì)需要圍繞每個(gè)微服務(wù)的實(shí)施進(jìn)行組織和團(tuán)隊(duì)間協(xié)作。團(tuán)隊(duì)還應(yīng)該把關(guān)注點(diǎn)放在將他們實(shí)施的服務(wù)作為產(chǎn)品上,提供持續(xù)的支持,而不是一個(gè)離散的小項(xiàng)目,直接地對(duì)其實(shí)施的微服務(wù)負(fù)責(zé)。
第二,要有容器云平臺(tái)和CICD全套工具鏈。
第三,要有指導(dǎo)方法,比如說(shuō)基于 DDD 的設(shè)計(jì)方法和服務(wù)化設(shè)計(jì)演進(jìn)方案。
第四,要有技術(shù)架構(gòu),例如微服務(wù)的治理框架。
看點(diǎn)四:業(yè)務(wù)微服務(wù)化設(shè)計(jì)全景圖
2004年,著名建模專(zhuān)家 Eric Evans 發(fā)表了Domain-Driven Design: Tackling Complexity in the Heart of Software,書(shū)中提出了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(簡(jiǎn)稱(chēng)DDD)的概念。DDD 是基于面向?qū)ο蠓治雠c設(shè)計(jì)的技術(shù),對(duì)技術(shù)架構(gòu)進(jìn)行了分層規(guī)劃,同時(shí)對(duì)每個(gè)類(lèi)進(jìn)行了策略和類(lèi)型的劃分。
微服務(wù)也是基于DDD的設(shè)計(jì)方法來(lái)指導(dǎo)全流程的設(shè)計(jì)。首先是通過(guò)需求分析,了解產(chǎn)品的定位和業(yè)務(wù)場(chǎng)景,然后進(jìn)行領(lǐng)域設(shè)計(jì),通過(guò)事件風(fēng)暴、聚合設(shè)計(jì)、服務(wù)地圖、分層模型進(jìn)行業(yè)務(wù)流程的梳理和微服務(wù)的劃分。
劃分完之后,對(duì)每一個(gè)微服務(wù)進(jìn)行對(duì)象的建模和技術(shù)架構(gòu)的選型,最后進(jìn)入到DevOps的迭代功能迭代開(kāi)發(fā)。
看點(diǎn)五:微服務(wù)的治理
微服務(wù)的治理,其實(shí)是服務(wù)治理簡(jiǎn)史的梳理。從單體應(yīng)用開(kāi)始,單體應(yīng)用沒(méi)有服務(wù)的概念,不算是“服務(wù)治理”,復(fù)雜度來(lái)自于自身內(nèi)部組件,由于組件的管理需要衍生出“組件治理”的需求,只需要維護(hù)組件和服務(wù)流程。
然后是SOA服務(wù)治理,企業(yè)SOA架構(gòu)是對(duì)ESB總線進(jìn)行整合。主要解決已有系統(tǒng)的整合(互聯(lián)互通)問(wèn)題。在技術(shù)實(shí)現(xiàn)及流程上企業(yè)SOA架構(gòu)繁瑣復(fù)雜、治理成本高。但其覆蓋面廣、涵蓋企業(yè)IT各方面和IT治理重疊度高。SOA的缺點(diǎn)是手工治理比較重大、自動(dòng)化程度不足。
進(jìn)入到互聯(lián)網(wǎng)時(shí)代后,互聯(lián)網(wǎng)服務(wù)化伴隨業(yè)務(wù)拆分應(yīng)運(yùn)而生,主要解決業(yè)務(wù)快速響應(yīng)及系統(tǒng)復(fù)雜性擴(kuò)散問(wèn)題,聚焦線上服務(wù)的生命周期治理,強(qiáng)調(diào)自動(dòng)化?;ヂ?lián)網(wǎng)服務(wù)化的實(shí)現(xiàn)五花八門(mén),雖然有標(biāo)桿卻沒(méi)有統(tǒng)一標(biāo)準(zhǔn)。
到了微服務(wù)時(shí)代,隨著理論、技術(shù)、工具的進(jìn)步,出現(xiàn)了微服務(wù)的治理平臺(tái)?;谝恍┐蟮钠脚_(tái)和框架,微服務(wù)和容器技術(shù)和敏捷開(kāi)發(fā)它就緊密的結(jié)合在了一起。
微服務(wù)不僅僅是服務(wù)化架構(gòu)的延伸,組織架構(gòu)、管理策略、研發(fā)模式、測(cè)試、運(yùn)維等領(lǐng)域都要做出響應(yīng)的調(diào)整,為微服務(wù)架構(gòu)的落地創(chuàng)造合適的“土壤”。這時(shí),微服務(wù)時(shí)代就出現(xiàn)了線上線下一體、全生命周期的立體化治理和強(qiáng)調(diào)自動(dòng)化、智能化的理念。這也是區(qū)別于互聯(lián)網(wǎng)服務(wù)化的地方。
本期內(nèi)容干貨滿滿,是否意猶未盡?想學(xué)習(xí)云計(jì)算的更多內(nèi)容嗎?敬請(qǐng)鎖定“深信服科技”公眾號(hào),云集技術(shù)學(xué)社還將邀請(qǐng)更多的專(zhuān)家,分享他們對(duì)云計(jì)算技術(shù)的理解和實(shí)踐經(jīng)驗(yàn)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )