11月28-29日,由中國社會科學院信息化研究中心和北京國脈互聯信息顧問有限公司聯合舉辦的“2018智慧中國年會”在北京隆重召開,以“數據賦能 智慧中國”為主題,共有來自全國部委、省、市、區縣電子政務、智慧城市、大數據主管領導、行業專家、企業代表、主流媒體千余人參會。

  本文系國脈技術總監潘超巧于11月29日上午在“2018智慧中國年會”分論壇--“微服務與數據賦能平臺構建與實踐研討會”上的演講,內容通過現場速記整理,未經本人審核。

blob.png

【國脈技術總監 潘超巧】

  伴隨著容器化的日臻成熟,微服務逐漸成為軟件開發的主流形態,大量的分布式、領域驅動設計的微服務被快速開發和部署,服務間呈現出搭積木的能力,使不同的業務通過重新組合數個微服務,就能實現新的業務場景。被越來越多的開發者推崇,很多互聯網行業巨頭、開源社區等都開始了微服務實踐。阿里巴巴、華為、騰訊、360等很多互聯網公司都采用了微服務開發實現業務場景。

  一、什么是微服務

  有些人認為微服務是“微信服務”的縮寫,因為現在微信比較火,其實不是。微服務,是一種軟件架構的形式。在這個架構中,微就是“微小”的意思,在這個架構中,復雜的應用程序是由多個小而獨立的進程組成,每一個進程通過獨立于語言的接口進行相互交流。這些服務較小、高度解耦且專注于完成一個小任務, 使得用模塊化方法建設系統更容易,降低開發難度、增強擴展性、便于敏捷開發。

  下面我列了微服務的幾個特點:①微服務有一套服務治理的解決方案,服務之間不耦合,可以隨時加入和剔除服務。②擁有獨立的基礎組件,業務單一、易于維護。③安全機制,微服務系統有一個完整的安全機制,包括用戶驗證、權限驗證、資源保護等。④每一個獨立的微服務都能夠集群化,且具有負載均衡的能力。⑤微服務的服務與服務之間,是通過HTTP協議或消息組件通信的,具有容錯的能力。

  二、為什么使用微服務

  那么我們為什么要使用微服務呢?我們可以先看一下左邊這個單體結構,一旦項目、功能變多,系統的耦合度也會逐漸增高,出現故障時無法隔離;系統復雜、錯綜交互,改一個功能,往往整個系統都需要修改;同時多套系統時,是重復地去制造各種輪子,比如軟件系統、數據庫、中間件等;是一個完全封閉的架構,升級和遷移的成本也非常高。

  微服務做到了一個解耦、故障降級熔斷保護措施,就像保險絲一樣;采用了模塊化開發,開發運維一體化,通過持續集成、持續交付、全自動化地進行部署;具有擴展性、高可用,在升級擴展中可以做到不中斷業務。

  簡單來說,微服務在應用中有四個好處:①每個模塊都是獨立部署的,所以簡單靈活。②每個服務專注和專業于它的內容,可以高效、可靠地去做到相應的服務;同時每個小模塊、小服務都可以由一個小團隊來負責。③微服務做到了單體的解耦,把耦合度降下來后,高內聚、更容易擴展。④采用微服務架構,開發語言沒有限制,你可以在這個服務里采用Java語言,在另一個服務里采用PHP語言,或者Python等其他語言,且開發工具也不受限制。

  傳統單體的開發模式,從計劃到開發有許多個模塊,在技術部門統一進行編譯、測試、發布,采用微服務的開發模式后,編譯可以由不同的小團隊來進行,因而多個部門就會形成一個線條狀的結構,可以走三條線,再加上持續交付的、自動部署的、多個環境的更新部署,從理想化的角度來說,十個團隊每年可以做到十萬次部署。

  三、微服務模塊化開發的好處

  模塊化到底有哪些好處呢?其實我們可以把模塊化當作一個拼裝的形式:①模塊可插拔,就像USB接口一樣,需要時插上,不需要時就拔除,不會產生相應的問題。②故障隔離,每個模塊都可以用一個分支去創建,不會造成代碼之間的沖突。③解耦,在模塊中增加或修改功能,只會影響當前模塊,不會影響整個應用。④動態部署,在運行時把模塊部署到應用中,快速修復故障,提高發布效率。⑤平臺系列,成為行業一流大數據平臺,每個平臺提供1-2項特色優勢數據服務。⑥多版本部署,可以在運行時同時部署某個模塊的新舊版本,進行AB TEST。⑦減少資源消耗,通過部署模塊的方式減少應用數量和機器數量。

  原來分步式架構在部署時比較麻煩,隨著科技的發展,Docker技術應運而生。Netflix云架構總監Adrian Cockcroft 說過“微服務和Docker的結合是一種顛覆”。通過Docker技術的獨立性、顆粒度、快速創建和銷毀及完善的管理工具,可以實現微服務的快速部署與擴容調度。我們現在做的項目,編程完成把JAR包打出來后,通過一個配置文件扔到Docker服務器上,阿里Docker云、有容云,丟上去運行,整個分布式會自動完成。微服務架構和Docker技術的結合,可以解決很多問題,譬如正在運行的一個項目,CPU和內存是正常的,突然用戶訪問量增大之后,通過容器技術,會自動響應,將兩個容器擴容為三個,從而降低CPU的消耗量。

  我的建議是,政府數據體系平臺架構可以采用微服務架構。當前政府系統/軟件數量多、標準體系復雜,還有很多配套系統之間存在重復的功能,系統之間耦合度比較嚴重,升級遷移的時候成本非常高,應用場景、參與的角色非常多。所以,大平臺、大系統需要采用微服務架構來解決這些問題。

  四、微服務開發框架

  我們可以看一下當前主流的微服務框架:第一個是我們國脈采用的Spring Cloud,它是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等操作提供了一種簡單的開發方式。

  第二個就是Dubbo,阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫集成,但目前從社區的活躍度來說,Spring Cloud更活躍,阿里的一些公司也在用Spring Cloud。第三個是剛剛出來的一個微服務架構--LSTIO,是 Google、IBM、Lyft首個共同聯合開源的項目,提供了統一的連接,安全,管理和監控微服務的方案。

  接下來講一下典型的微服務架構,是通過輕量的http協議關聯各個服務之間的關系,通過服務注冊與發現的機制,加上消息隊列,來訪問各類型數據庫,包括運維監控、實時認證等。這是基于K8S容器集群的微服務架構,是應對大系統的,包括自動部署服務、灰度發布服務、自動水平擴展服務、集群內負載均衡服務等,可以看到它采用多個數據庫、多個緩存服務器等等。

  五、基于微服務架構的賦能平臺實踐

 ?。ㄒ唬藴室幏?/strong>

  下面講下我們當前在做的一個賦能平臺實踐中的一些針對技術采用的標準規范。標準規范這塊我們分為六個層面:基礎設施、數據采集、數據存儲、數據處理、應用支撐、門戶展現?;A設施包括了存儲的設施、機房、計算機服務器等;數據采集,包括離線采集、實時采集、手工錄入等;數據存儲包括分步式數據庫、內存數據庫、關系數據庫;數據處理包括數據交換、清洗轉換、比對等,因為數據入庫后要保證數據質量,需要相關平臺支撐;最后到應用決策,通過手機端、web端把相關內容展示出來。

 ?。ǘ┻\維及安全管理保障

  運維安全管理保障方面,包括移動設備監控、移動應用管理、web應用監控和數據庫中間件監控等。

 ?。ㄈ┘夹g路線

  我們走的技術路線的整體結構主要包括開發技術、模型標準、運行環境、開發管理:①開發技術,主要是J2EE,結合微服務的高效性;②模型標準,就是我們倉頡數源在做的元數據標準,保證字段內容標準,加上跨語言的XML技術標準;③運行環境,包括容器技術、HTTP服務器等;④開發管理,開發運營一體化、可視化開發等。從而保證我們賦能平臺的穩定運營。

 ?。ㄋ模〢PI網關接入-安全

  我們通過API網關來保證系統的安全,因為所用接口、訪問、用戶都是先通過API網關來訪問我們的各個服務數據,API網關在我們整個架構中起到了非常重要的作用,包括統一接入、流量管控、業務隔離、安全防護等,其中它們各司其責。

  (五)功能結構

  最后是我們微服務賦能平臺的功能結構,包括了數據源、數據匯集、數據分析、數據應用四個層面。數據源層,就是說數據從哪來,一個是外部采集,包括我們公司7大平臺采集錄入的數據,還有一個是數據交換,我們OA系統里存在的一些數據,通過接口打通進行獲取,此外還有合作共享資源和其他數據;這些數據拿到后,我們進行質量檢測,包括編目、轉換、對比、清洗等;再到數據分析層,進行可視化、聚合統計、關聯分析、全文檢索、模型訓練、DSL分析引擎等技術操作;最終到應用層,進行運維管控,可以給公司提供趨勢預測、業務分析等服務。我們國脈已基于微服務開發完成或正在進行重構的產品有IEP(智慧賦能平臺)、倉頡數源數據元公共服務平臺、數據基因5.0版本、國策數據庫等。

  最后我總結一下,微服務可以為平臺整合提供強大的支撐;通過微服務的架構理念,可以為平臺、組織、不同技術團隊之間的融合,提供一個很好的技術框架基礎;通過模塊化的開放模式,大幅提高產品的可靠性、可拓展性;通過與Docker容器的結合,可以實現分布式項目的快速部署與搭建;通過一體化運維和持續集成、持續交互,可大大降低運維成本。我們國脈正在努力,應用微服務架構做出更多產品和解決方案。謝謝大家!

  附:國脈,是領先的大數據治理和數字政府專業提供商。創新提出“軟件+咨詢+平臺+數據+創新業務”五位一體服務模型,擁有數據基因和水巢DIPS兩大系列幾十項軟件產品,長期為中國智慧城市、智慧政府和智慧企業提供專業咨詢規劃和數據服務,廣泛服務于信息中心、大數據局、行政服務中心等政府客戶、中央企業和金融機構。自2004年成立以來,已在全國七大區域設立20余家分支機構、5大技術研發基地,服務客戶2000余家,執行項目5000余個,連續多年開展中國政府網站、智慧城市、互聯網+政務、營商環境等公益評估評選活動。被業界譽為中國信息化民間智庫知名品牌、電子政務優選咨詢機構,國內首倡智慧政府理念,首創智慧城市、數據治理、互聯網+政務評價體系,首推數據資產普查、全口徑數據資源目錄、數據元標準化、數源確認與供需對接、最多跑一次事項梳理、營商通等產品,信息資源編目、公共數據普查等業務全國占有率和影響力名居榜首。

  福利大放送:《數字政府周刊》、《數字政府白皮書2.0》、《第八屆(2018)中國智慧城市發展水平評估報告》、《第四屆中國“互聯網+政務”50強優秀實踐案例評選研究報告》、《首屆(2018)中國營商環境評估報告》可通過電子政務智庫公眾號及微店在線購買,歡迎訂購。

blob.png

微信掃一掃即可購買!

責任編輯:hongqiong