相比于單體應用和SOA架構,微服務的小團隊開發(fā)運維、復雜度可控制、獨立擴縮、可靈活組合等等優(yōu)勢也逐漸凸顯,被廣大架構師和技術人員引入和推崇。但同時也引出了配置繁雜、事務不可控等諸多問題,如何恰當?shù)慕鉀Q微服務中暴露出的各種問題,成為各服務治理平臺的重點和難點。
軟件架構在微服務之前,各個服務通過RestFul接口或者RPC進行互聯(lián)和調(diào)用,進行功能的服務化和解耦,諸多成熟的RPC框架被引入,例如:
用友云服務治理平臺應勢而生
用友云主要面向企業(yè)級應用,在TOB領域有獨特的技術特色和要求,且用友云下的微服務治理需要和自身的DevOps平臺、容器云平臺及數(shù)據(jù)平臺進行協(xié)同和能力聚合。在借鑒和吸收其他產(chǎn)品的優(yōu)勢的同時,用友云服務治理平臺團隊針對自身產(chǎn)品需要做了完善和適配,充分的和用友云開發(fā)者中心、數(shù)據(jù)平臺、租戶中心、用戶中心等結合,推出了更適合自身的用友云服務治理平臺。
用友云服務治理平臺是用友云平臺(iuap)基礎平臺服務(gPaaS)的一個核心能力。企業(yè)在向“互聯(lián)化”方向轉(zhuǎn)型的過程中,軟件產(chǎn)品的開發(fā)需求變更越來越頻繁,對技術中臺要求越來越強烈,統(tǒng)一的gPaaS基礎能力逐漸被認可,越來越多的企業(yè)期望有一個基礎平臺去支撐企業(yè)快速增長的業(yè)務。gPaaS基礎平臺是iuap產(chǎn)品家族的一部分,提供了DevOps能力、容器云能力、服務治理能力、微服務編排能力。gPaaS基礎平臺簡化了多種基礎設施帶來的復雜性,打通了開發(fā)運維一體化流程,提供傳統(tǒng)服務架構向微服務架構轉(zhuǎn)變及服務治理的最佳方法論和工具集,支持微服務可視化編排。
用友云服務治理平臺具有以下特色:
用友云服務治理平臺提供RPC調(diào)用框架、異步調(diào)用框架、服務注冊發(fā)現(xiàn)、配置中心、元數(shù)據(jù)、一致性框架等基礎中間件,并預留了插件機制的擴展,方便開發(fā)者使用和集成;也從中間件容器層面提供類隔離和組件加載機制,盡量避免和業(yè)務應用引用的三方組件版本沖突;提供統(tǒng)一的門戶入口,可視化的管理和查看遠程服務的接口信息、調(diào)用鏈路日志、統(tǒng)計信息、評價信息,動態(tài)的控制具體接口和方法的權限和流量限制;提供限流、鏈路追蹤等組件保證服務的穩(wěn)定和可用性。
同時,在外圍還支持和服務網(wǎng)關API Link的對接,支持使用IDE進行微服務的編排和一鍵發(fā)布。
微服務SDK: 各個組件通過核心的插件機制和類加載機制整合在一起,形成整體對外提供服務,具有兩大鮮明特性:1:支持SPI方式擴展的插件機制,靈活組合,易于擴展;2:基于ClassLoder的類隔離機制,組件分離,避免沖突。通過服務治理平臺的SDK,業(yè)務方可以簡單快速的集成微服務的能力到業(yè)務工程,達到技術架構的微服務化的目的。
后端支撐:后端支撐較為核心的包括注冊中心、元數(shù)據(jù)、控制臺和鏈路計算、監(jiān)控、配置中心、權限管控等。
解決微服務落地難題
用友云服務治理平臺的幾大核心功能包含基礎的RPC框架、注冊中心元數(shù)據(jù)、配置中心、鏈路追蹤、異步和一致性、限流熔斷等。
服務治理平臺在實現(xiàn)和落地微服務的幾個核心功能的過程中,也遇到一些難點,這也是眾多廠家和平臺共同的難點。針對這些關鍵點,用友云提出了適合自身場景的多種合理的解決方案并實現(xiàn):
一,類隔離機制和插件機制:
JAVA 版的SDK,在和各種業(yè)務應用整合的同時,會遇到很多三方組件版本沖突的問題,給業(yè)務整合方帶來了困擾。用友云服務治理平臺自3.5 版本開始對其進行了優(yōu)化,引入了類隔離機制,推出了冰山(iceberg)思想,內(nèi)部自身加載其依賴的三方組件,不對外部的業(yè)務三方引用造成沖突,大大簡化了集成的難度。
二,動態(tài)配置:
業(yè)務應用的微服務化拆分,使得業(yè)務工程的配置文件更加繁多和分離,微服務的權限和流量的實時控制,也需要動態(tài)的管理各項配置。所以配置中心的后端服務和前端SDK體現(xiàn)出更重要的作用。
異步調(diào)用框架提供可靠消息組件,完善了隊列的權限認證體系,簡化了異步調(diào)用的開發(fā)方式,業(yè)務開發(fā)只需要簡單配置和注解,即可完成異步操作。同時,異步事務控制臺可以在云端可視化的下發(fā)命令,提供錯誤事務的重試機制。
服務治理平臺經(jīng)過長時間的發(fā)展和磨練,已經(jīng)在分布式服務調(diào)用、運維管控和服務治理、生命周期管理和統(tǒng)一控制臺、數(shù)字化監(jiān)控和運營、開發(fā)支持擴展和兼容等等大方面有沉淀和輸出。我們也和其他成熟的產(chǎn)品及框架進行對比,吸收和優(yōu)化,構建和完善自身的微服務能力體系。
用友云服務治理平臺的發(fā)展并非原生和獨立的。服務治理平臺、DevOps平臺、容器云平臺合力,成為各個云產(chǎn)品和服務成功上云的三把尖刀,為其底層的技術支撐提供了強有力的保障。相信三把尖刀也會在技術中臺中體現(xiàn)出越來越重要的價值。