国产精品免费久久久久电影院_亚洲日韩蜜桃av无码一二三区_AV在线无码免费特黄毛片_亚洲欧美日韩电影在线专区_福利小视频午夜福利一区二区中文字幕_在线免费观看黄黄色视频_欧美菊爆视频在线观看免费_婷婷六月丁香五月_久久伊人精品中文字幕有码_强奸国产无码激情

kaiyun開云創(chuàng)新:微服務(wù)實施及微框架 SpringBoot 實踐

2022-07-12

904

微服務(wù)(Microservice),一種用于構(gòu)建應(yīng)用的分布式架構(gòu)框架,其解決了傳統(tǒng)軟件開發(fā)面臨著很多的問題,比如:代碼重復(fù)率高、代碼龐大難以維護、無法快速迭代、測試成本高、可伸縮性差、可靠性差、模塊間高度依賴等。


什么是微服務(wù)?


ThoughtWorks 首席科學(xué)家馬丁·福勒(Martin Fowler)曾說過:微服務(wù)架構(gòu)風(fēng)格是以一組小服務(wù)來開發(fā)單個應(yīng)用程序的方法,每一個服務(wù)運行在自己獨立的進程中并且使用輕量的方法通信,通常是一個HTTP API接口。這些服務(wù)圍繞相關(guān)業(yè)務(wù)范圍構(gòu)建并且由全自動化部署機器獨立部署。這些服務(wù)只需要最低限度的管理,可以用不同的編程語言去編寫并且使用不同的數(shù)據(jù)存儲技術(shù)。


聊到微服務(wù)架構(gòu),不得不說說上一代傳統(tǒng)單體架構(gòu)。單塊應(yīng)用目前應(yīng)用還是較多的,它部署容易,但任何改動都會牽一發(fā)動全身。哪怕是對應(yīng)用程序一個小地方的改變,都需要整個單塊應(yīng)用被重新構(gòu)建和部署。如要實現(xiàn)縮放,需要縮放整個應(yīng)用程序而不是應(yīng)用程序的某一部分,這要求更多的資源。


微服務(wù)實施

單體架構(gòu) VS 微服務(wù)框架


微服務(wù)架構(gòu)的通用特性


根據(jù)MartinFowler的分析,微服務(wù)架構(gòu)具有一些通用特性,但并非所有微服務(wù)架構(gòu)應(yīng)用都必須具備所有這些特性。


  • 1、通過服務(wù)實現(xiàn)組件化(Componentizationvia Services):組件即可以被獨立替換和升級的軟件單;
  • 2、圍繞業(yè)務(wù)能力組織服務(wù)(Organizedaround Business Capabilities):微服務(wù)團隊的組織結(jié)構(gòu)必須是跨功能的(如:既管應(yīng)用,也管數(shù)據(jù)庫)、強搭配的DevOps開發(fā)運維一體化團隊;
  • 3、產(chǎn)品而非項目模式(Productsnot Projects):“誰開發(fā),誰運營”的開發(fā)運維一體化方法;
  • 4、智能端點與管道扁平化(Smartendpoints and dumb pipes):指采用輕量級異步通訊機制;
  • 5、“去中心化”治理(DecentralizedGovernance):使用合適的工具完成各自的任務(wù),每個微服務(wù)可以考慮選用最佳工具完成。微服務(wù)的技術(shù)標準傾向于尋找其他開發(fā)者已成功驗證解決類似問題的技術(shù);
  • 6、“去中心化”數(shù)據(jù)管理(DecentralizedData Management);
  • 7、基礎(chǔ)設(shè)施自動化(InfrastructureAutomation);
  • 8、故障處理設(shè)計(Designfor failure):容錯機制;
  • 9、演進式的設(shè)計(EvolutionaryDesign)。


為什么要采用微服務(wù)架構(gòu)?


軟件架構(gòu)的發(fā)展經(jīng)歷了從單體結(jié)構(gòu)、垂直架構(gòu)、SOA架構(gòu)到微服務(wù)架構(gòu)的過程,各個架構(gòu)的特點如下圖所示:


各個架構(gòu)特點

各架構(gòu)特點


相對于傳統(tǒng)單體架構(gòu)來說,微服務(wù)架構(gòu)有著絕對的優(yōu)勢,企業(yè)應(yīng)用向微服務(wù)架構(gòu)演進的趨勢不可逆轉(zhuǎn)。


傳統(tǒng)架構(gòu)VS微服務(wù)架構(gòu)

傳統(tǒng)架構(gòu) VS 微服務(wù)架構(gòu)


微服務(wù)架構(gòu)的優(yōu)點


  • 1、每個服務(wù)都比較簡單,只關(guān)注于一個業(yè)務(wù)功能。
  • 2、微服務(wù)架構(gòu)方式是松耦合的,可以提供更高的靈活性。
  • 3、微服務(wù)可通過最佳及最合適的不同的編程語言與工具進行開發(fā),能夠做到有的放矢地解決針對性問題。
  • 4、每個微服務(wù)可由不同團隊獨立開發(fā),互不影響,加快推出市場的速度。
  • 5、微服務(wù)架構(gòu)是持續(xù)交付(CD)的巨大推動力,允許在頻繁發(fā)布不同服務(wù)的同時保持系統(tǒng)其他部分的可用性和穩(wěn)定性。


與此同時,相比單體架構(gòu)的簡單部署和輕量,微服務(wù)架構(gòu)也存在一些挑戰(zhàn):


  • 1、運維開銷及成本增加;
  • 2、必須有堅實的DevOps開發(fā)運維一體化技能
  • 3、隱式接口及接口匹配問題
  • 4、代碼重復(fù)
  • 5、分布式系統(tǒng)的復(fù)雜性
  • 6、異步機制
  • 7、可測性的挑戰(zhàn)


因此,企業(yè)應(yīng)用架構(gòu)使用微服務(wù)的先決條件要提前考慮到位。


使用微服務(wù)的先決條件


當軟件的復(fù)雜度很低的時候,單體架構(gòu)下的生產(chǎn)力是要高于微服務(wù)架構(gòu)的,但隨著復(fù)雜度的不斷增加,無論是單體應(yīng)用還是微服務(wù)應(yīng)用的生產(chǎn)力都會下降,只是微服務(wù)架構(gòu)的下降會相對緩慢一些。

如果長期業(yè)務(wù)規(guī)劃不需要微服務(wù)架構(gòu)或者團隊不具備實施微服務(wù)一些基本的條件,不建議實施微服務(wù),或者應(yīng)用從試點入手,逐步在團隊中推行微服務(wù)架構(gòu)。


如何實施微服務(wù)架構(gòu)


微服務(wù)架構(gòu)4大設(shè)計原則:


· AKF拆分:AKF擴展立方體(Scalability Cube),是《架構(gòu)即未來》一書中提出的可擴展模型,這個立方體有三個軸線,每個軸線描述擴展性的一個維度,他們分別是產(chǎn)品、流程和團隊。



· 前后端分離:前后端分離原則,簡單來講就是前端和后端的代碼分離也就是技術(shù)上做分離,推薦的模式是最好直接采用物理分離的方式部署,進一步促使進行更徹底的分離。



· 無狀態(tài)服務(wù):首先說一下什么是狀態(tài):如果一個數(shù)據(jù)需要被多個服務(wù)共享,才能完成一筆交易,那么這個數(shù)據(jù)被稱為狀態(tài)。進而依賴這個“狀態(tài)”數(shù)據(jù)的服務(wù)被稱為有狀態(tài)服務(wù),反之稱為無狀態(tài)服務(wù)。那么這個無狀態(tài)服務(wù)原則并不是說在微服務(wù)架構(gòu)里就不允許存在狀態(tài),表達的真實意思是要把有狀態(tài)的業(yè)務(wù)服務(wù)改變?yōu)闊o狀態(tài)的計算類服務(wù),那么狀態(tài)數(shù)據(jù)也就相應(yīng)的遷移到對應(yīng)的“有狀態(tài)數(shù)據(jù)服務(wù)”中。




· Rest 通信風(fēng)格:作為一個原則來講本來應(yīng)該是個“無狀態(tài)通信原則”,在這里推薦一個實踐優(yōu)選的 Restful 通信風(fēng)格 ,因為他有很多好處:


  • 1、無狀態(tài)協(xié)議 HTTP,具備先天優(yōu)勢,擴展能力很強。例如需要安全加密是,有現(xiàn)成的成熟方案 HTTPS 可用。
  • 2、JSON 報文序列化,輕量簡單,人與機器均可讀,學(xué)習(xí)成本低,搜索引擎友好。
  • 3、語言無關(guān),各大熱門語言都提供成熟的 Restful API 框架,相對其他的一些 RPC 框架生態(tài)更完善。
  • 4、當然在有些特殊業(yè)務(wù)場景下,也需要采用其他的 RPC 框架,如 thrift、avro-rpc、grpc。但絕大多數(shù)情況下 Restful 就足夠用了。



行云系統(tǒng)設(shè)計的微服務(wù)實踐


kaiyun開云創(chuàng)新基于微框架 SpringBoot 實踐,涵蓋了微服務(wù)模塊50個,多語言開發(fā)框架,多協(xié)議支持,并且應(yīng)用基于容器技術(shù)等。


SpringBoot 實踐


主要模塊有:


Mart — 應(yīng)用商店

Factory—應(yīng)用工廠

Composer—設(shè)計器

APIGateway—API網(wǎng)關(guān)

Admin—運維中心

DNS—外部DNS服務(wù)

Orca—調(diào)度器

Blueprint Repo—藍圖存儲

Internal DNS—內(nèi)部DNS服務(wù)

Turtle —策略管理

Metrics—統(tǒng)計數(shù)據(jù)

Alert—監(jiān)控告警

杭州—區(qū)域,包括容器集群等

Gateway—服務(wù)接入網(wǎng)關(guān)


SpringBoot 實踐

行云 SpringBoot 實踐架構(gòu)圖


總結(jié)


當前,以微服務(wù)、DevOps、容器、多云業(yè)務(wù)管理為代表的云原生技術(shù)已經(jīng)廣泛成熟應(yīng)用,成為加速企業(yè)數(shù)字化業(yè)務(wù)高效創(chuàng)新、實現(xiàn)企業(yè)數(shù)字化轉(zhuǎn)型的最佳技術(shù)支撐。而信創(chuàng)支持、國產(chǎn)化支持,是中國企業(yè)數(shù)字化轉(zhuǎn)型不得不滿足的基本要求。更有專家指出,在關(guān)乎企業(yè)生存的必選項“數(shù)字化轉(zhuǎn)型”以及國家信創(chuàng)戰(zhàn)略的共同沖擊下,企業(yè)需要改變現(xiàn)有業(yè)務(wù)和IT的架構(gòu),更快速地應(yīng)對挑戰(zhàn)、響應(yīng)變化,增強自身的競爭力。


-------------

免費獲取《微服務(wù)實施指南》,請點擊>






技術(shù)交流
我們建立了多個云原生技術(shù)交流群,其中有來自O(shè)racle、Citrix、華為、騰訊等國內(nèi)外云計算專家,立即掃碼,拉你進群。目前已有2000+開發(fā)者加入我們......
云原生廠商 云原生技術(shù)服務(wù)商
在云原生時代,kaiyun開云創(chuàng)新致力于通過賦能開發(fā)者,實現(xiàn)企業(yè)快速迭代與交付,大幅提升創(chuàng)新效率。
產(chǎn)品下載