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