用友云服務治理平臺應勢而生
用友云主要面向企業級應用,在TOB領域有獨特的技術特色和要求,且用友云下的微服務治理需要和自身的DevOps平臺、容器云平臺及數據平臺進行協同和能力聚合。在借鑒和吸收其他產品的優勢的同時,用友云服務治理平臺團隊針對自身產品需要做了完善和適配,充分的和用友云開發者中心、數據平臺、租戶中心、用戶中心等結合,推出了更適合自身的用友云服務治理平臺。
用友云服務治理平臺是用友云平臺(iuap)基礎平臺服務(gPaaS)的一個核心能力。企業在向“互聯化”方向轉型的過程中,軟件產品的開發需求變更越來越頻繁,對技術中臺要求越來越強烈,統一的gPaaS基礎能力逐漸被認可,越來越多的企業期望有一個基礎平臺去支撐企業快速增長的業務。gPaaS基礎平臺是iuap產品家族的一部分,提供了DevOps能力、容器云能力、服務治理能力、微服務編排能力。gPaaS基礎平臺簡化了多種基礎設施帶來的復雜性,打通了開發運維一體化流程,提供傳統服務架構向微服務架構轉變及服務治理的最佳方法論和工具集,支持微服務可視化編排。
伴隨互聯網、云計算、大數據等技術的快速發展,越來越多的企業在信息化之后,將企業上云和數字化提上日程。隨之而來,軟件架構的微服務方式重構、應用的自動化運維、容器化等強烈需求,催生出了眾多的PaaS平臺。
服務治理平臺難點突顯
同時,針對微服務,也涌現出了許多RPC框架和微服務治理平臺,各個框架和平臺都有各自的優勢和自身獨特的適應場景。
相比于單體應用和SOA架構,微服務的小團隊開發運維、復雜度可控制、獨立擴縮、可靈活組合等等優勢也逐漸凸顯,被廣大架構師和技術人員引入和推崇。但同時也引出了配置繁雜、事務不可控等諸多問題,如何恰當的解決微服務中暴露出的各種問題,成為各服務治理平臺的重點和難點。
軟件架構在微服務之前,各個服務通過RestFul接口或者RPC進行互聯和調用,進行功能的服務化和解耦,諸多成熟的RPC框架被引入,例如:
RPC調用是微服務治理的基礎,但單單RPC不能稱為微服務,微服務的核心功能還應該包含服務注冊、發現,動態和可視化配置,限流熔斷,鏈路追蹤、分析,異步調用,數據一致性處理,API網關等等。
上文中所介紹的不同廠商的框架和產品,都圍繞著以上核心功能,進行了實現和融合。各個產品都有不同的復雜度和局限性,并和自身廠商的其它產品聯系密切。
用友云服務治理平臺具有以下特色:
用友服務治理平臺從2015年立項以來,經過團隊的不斷打磨,已經發展了幾個版本。上支持的應用數量已達到900多個,API數量已經接近三萬個。目前,使用服務治理平臺的云產品和組織包括資金云、財務云、人力云、協同云、用友審計、用友能源等,支持的大型項目包括中建、中廣核、DIWORK等。
用友云服務治理平臺提供RPC調用框架、異步調用框架、服務注冊發現、配置中心、元數據、一致性框架等基礎中間件,并預留了插件機制的擴展,方便開發者使用和集成;也從中間件容器層面提供類隔離和組件加載機制,盡量避免和業務應用引用的三方組件版本沖突;提供統一的門戶入口,可視化的管理和查看遠程服務的接口信息、調用鏈路日志、統計信息、評價信息,動態的控制具體接口和方法的權限和流量限制;提供限流、鏈路追蹤等組件保證服務的穩定和可用性。
同時,在外圍還支持和服務網關API Link的對接,支持使用IDE進行微服務的編排和一鍵發布。
它由幾大核心技術模塊構成:注冊中心,元數據、控制臺、配置中心、基礎SDK、鏈路計算、限流熔斷、異步調用和一致性適配組件,IUAP和DUBBOX適配組件等,大致可以分為兩類:微服務SDK(middleware)和后端支撐服務。
微服務SDK: 各個組件通過核心的插件機制和類加載機制整合在一起,形成整體對外提供服務,具有兩大鮮明特性:1:支持SPI方式擴展的插件機制,靈活組合,易于擴展;2:基于ClassLoder的類隔離機制,組件分離,避免沖突。通過服務治理平臺的SDK,業務方可以簡單快速的集成微服務的能力到業務工程,達到技術架構的微服務化的目的。
后端支撐:后端支撐較為核心的包括注冊中心、元數據、控制臺和鏈路計算、監控、配置中心、權限管控等。
用友云平臺的微服務治理團隊針對阿里云平臺推出的分布式服務調用和管控平臺EDAS的架構進行分析和對比,借鑒其優勢的同時,結合自身特點,對各個模塊進行拆分,并在異步調用、多套環境支持、去容器依賴等方面進行了針對性的適配;同時在支持與開發者中心、用戶中心、權限中心等服務結合方面做了擴展,支持輕量化的獨立部署,為平臺的專屬化減輕了負擔。
解決微服務落地難題
用友云服務治理平臺的幾大核心功能包含基礎的RPC框架、注冊中心元數據、配置中心、鏈路追蹤、異步和一致性、限流熔斷等。
服務治理平臺在實現和落地微服務的幾個核心功能的過程中,也遇到一些難點,這也是眾多廠家和平臺共同的難點。針對這些關鍵點,用友云提出了適合自身場景的多種合理的解決方案并實現:
一,類隔離機制和插件機制:
JAVA 版的SDK,在和各種業務應用整合的同時,會遇到很多三方組件版本沖突的問題,給業務整合方帶來了困擾。用友云服務治理平臺自3.5 版本開始對其進行了優化,引入了類隔離機制,推出了冰山(iceberg)思想,內部自身加載其依賴的三方組件,不對外部的業務三方引用造成沖突,大大簡化了集成的難度。
同時,服務治理平臺各個組件使用插件(plugin)機制進行組合,為后續的擴展和能力增強打好基礎。
二,動態配置:
業務應用的微服務化拆分,使得業務工程的配置文件更加繁多和分離,微服務的權限和流量的實時控制,也需要動態的管理各項配置。所以配置中心的后端服務和前端SDK體現出更重要的作用。
服務治理平臺的SDK為每個使用的客戶端,內置了配置中心的SDK,其使用長輪詢的方式,近實時的感知遠程配置文件的變化,從而及時的響應變化。云端的操作提供RestFul接口和可視化界面,操作簡單實用。
三,異步調用數據最終一致性:
異步調用框架提供可靠消息組件,完善了隊列的權限認證體系,簡化了異步調用的開發方式,業務開發只需要簡單配置和注解,即可完成異步操作。同時,異步事務控制臺可以在云端可視化的下發命令,提供錯誤事務的重試機制。
服務治理平臺的SDK,將eos、cc等適配組件有機結合,一體化對外提供服務:
微服務治理發展趨勢和展望
服務治理平臺經過長時間的發展和磨練,已經在分布式服務調用、運維管控和服務治理、生命周期管理和統一控制臺、數字化監控和運營、開發支持擴展和兼容等等大方面有沉淀和輸出。我們也和其他成熟的產品及框架進行對比,吸收和優化,構建和完善自身的微服務能力體系。
但同時,我們要把握好技術的發展趨勢,站在發展前沿。未來將在支持服務搜索和集市、對服務編排和網關更有效的組合、服務網格、服務監控等方面繼續拓展。
用友云服務治理平臺的發展并非原生和獨立的。服務治理平臺、DevOps平臺、容器云平臺合力,成為各個云產品和服務成功上云的三把尖刀,為其底層的技術支撐提供了強有力的保障。相信三把尖刀也會在技術中臺中體現出越來越重要的價值。
對內有機整合,對外需要擴展和延伸,服務治理平臺和API Link、服務編排等在微服務外圍合理組合,使得微服務的利用率更高、可組合性更強。
服務治理平臺,作為用友云平臺下 3+2戰略 (技術中臺、業務中臺、數據中臺 + 混合云、生態鏈)下的技術中臺核心產品,也必將展示出更強的戰斗力。