云集技術學社|帶你了解微服務、服務治理實踐

12月28日,深信服容器云產(chǎn)品研發(fā)部研發(fā)負責人Jacky在信服云《云集技術學社》系列直播課上進行了《微服務、服務治理實踐》的分享,詳細介紹了微服務產(chǎn)生的背景,微服務的特點、實施策略、設計和治理。以下是他分享內容摘要,想要了解更多可以關注“深信服科技”公眾號觀看直播回放。

看點一:微服務產(chǎn)生的背景和過程

在數(shù)字化轉型的大背景下,微服務正在成為企業(yè)未來架構的核心,很多互聯(lián)網(wǎng)巨頭都采用微服務方式構建業(yè)務應用。

微服務的產(chǎn)生背景源于單體架構無法滿足互聯(lián)網(wǎng)快速迭代的需要。伴隨著業(yè)務和數(shù)據(jù)的增長,所有程序都運行在同一主機上,單體架構會導致應用程序的橫向擴展會變得越來越吃力,成本越來越高。應用程序的復雜性逐漸增加以及功能越來越多,使得團隊如果嘗試引入新的框架技術或者對現(xiàn)有技術棧升級,通常會面臨不小的風險。在這樣的背景下,微服務出現(xiàn)了。

看點二:微服務的特點

微服務架構有三個特點,分別是“微”、分布式、共享

微服務的“微”體現(xiàn)在其單一職責和獨立自治,微服務可以自己進行部署、升級、擴容等操作。

由于獨立自治,它的第二個特點就是分布式,即微服務是去中心化的,服務之間是對等關系,然后用輕量級的這種通信將API能力共享出去?;?strong>共享服務可以快速組裝創(chuàng)新出新的能力。

微服務使大型的復雜應用程序可以持續(xù)交付與持續(xù)部署。每個服務都相對較小并容易維護。微服務可以獨立服務、獨立部署,更容易實驗和采納新的技術,也有著更好的容錯性與可靠性。

但是不是所有的系統(tǒng)都要采用微服務架構。對于微服務來說,服務越小,獨立性更好,但是相應的服務數(shù)量就越多。每個服務都需要獨立的配置部署監(jiān)控、日志收集等,成本呈指數(shù)級增長。

微服務經(jīng)常使用異步編程、消息隊列及并行處理,如果要求一個操作必須是同步且具有事物性,就需要管理好相關聯(lián)服務及分布式事務操作。微服務的測試也比較困難,無論人工還是自動測試,通常都很難以一致的方式重現(xiàn)微服務應用環(huán)境。

作為一種分布式系統(tǒng),微服務帶來如網(wǎng)絡延遲、容錯性、消息序列化等一系列問題。當把傳統(tǒng)的系統(tǒng)拆分成多個相互協(xié)作的獨立服務后 ,隨著服務數(shù)量的增多,如何清晰明了地展示服務之間的依賴關系,逐漸成為挑戰(zhàn)。

因此要開發(fā)高質量的微服務,需要從組織流程、技術架構、平臺工具、工程方法4個方面去保證。

看點三:微服務實施策略

微服務落地實施第一個是需要組建全功能小團隊。團隊需要圍繞每個微服務的實施進行組織和團隊間協(xié)作。團隊還應該把關注點放在將他們實施的服務作為產(chǎn)品上,提供持續(xù)的支持,而不是一個離散的小項目,直接地對其實施的微服務負責。

第二,要有容器云平臺和CICD全套工具鏈。

第三,要有指導方法,比如說基于 DDD 的設計方法和服務化設計演進方案。

第四,要有技術架構,例如微服務的治理框架。

看點四:業(yè)務微服務化設計全景圖

2004年,著名建模專家 Eric Evans 發(fā)表了Domain-Driven Design: Tackling Complexity in the Heart of Software,書中提出了領域驅動設計(簡稱DDD)的概念。DDD 是基于面向對象分析與設計的技術,對技術架構進行了分層規(guī)劃,同時對每個類進行了策略和類型的劃分。

微服務也是基于DDD的設計方法來指導全流程的設計。首先是通過需求分析,了解產(chǎn)品的定位和業(yè)務場景,然后進行領域設計,通過事件風暴聚合設計、服務地圖分層模型進行業(yè)務流程的梳理和微服務的劃分。

劃分完之后,對每一個微服務進行對象的建模和技術架構的選型,最后進入到DevOps的迭代功能迭代開發(fā)。

看點五:微服務的治理

微服務的治理,其實是服務治理簡史的梳理。從單體應用開始,單體應用沒有服務的概念,不算是“服務治理”,復雜度來自于自身內部組件,由于組件的管理需要衍生出“組件治理”的需求,只需要維護組件和服務流程。

然后是SOA服務治理,企業(yè)SOA架構是對ESB總線進行整合。主要解決已有系統(tǒng)的整合(互聯(lián)互通)問題。在技術實現(xiàn)及流程上企業(yè)SOA架構繁瑣復雜、治理成本高。但其覆蓋面廣、涵蓋企業(yè)IT各方面和IT治理重疊度高。SOA的缺點是手工治理比較重大、自動化程度不足。

進入到互聯(lián)網(wǎng)時代后,互聯(lián)網(wǎng)服務化伴隨業(yè)務拆分應運而生,主要解決業(yè)務快速響應及系統(tǒng)復雜性擴散問題,聚焦線上服務的生命周期治理,強調自動化。互聯(lián)網(wǎng)服務化的實現(xiàn)五花八門,雖然有標桿卻沒有統(tǒng)一標準。

到了微服務時代,隨著理論、技術、工具的進步,出現(xiàn)了微服務的治理平臺。基于一些大的平臺和框架,微服務和容器技術和敏捷開發(fā)它就緊密的結合在了一起。

微服務不僅僅是服務化架構的延伸,組織架構、管理策略、研發(fā)模式、測試、運維等領域都要做出響應的調整,為微服務架構的落地創(chuàng)造合適的“土壤”。這時,微服務時代就出現(xiàn)了線上線下一體、全生命周期的立體化治理和強調自動化、智能化的理念。這也是區(qū)別于互聯(lián)網(wǎng)服務化的地方。

本期內容干貨滿滿,是否意猶未盡?想學習云計算的更多內容嗎?敬請鎖定“深信服科技”公眾號,云集技術學社還將邀請更多的專家,分享他們對云計算技術的理解和實踐經(jīng)驗。

(免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產(chǎn)權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )