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

  本文系國脈技術(shù)總監(jiān)潘超巧于11月29日上午在“2018智慧中國年會”分論壇--“微服務(wù)與數(shù)據(jù)賦能平臺構(gòu)建與實踐研討會”上的演講,內(nèi)容通過現(xiàn)場速記整理,未經(jīng)本人審核。

blob.png

【國脈技術(shù)總監(jiān) 潘超巧】

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

  一、什么是微服務(wù)

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

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

  二、為什么使用微服務(wù)

  那么我們?yōu)槭裁匆褂梦⒎?wù)呢?我們可以先看一下左邊這個單體結(jié)構(gòu),一旦項目、功能變多,系統(tǒng)的耦合度也會逐漸增高,出現(xiàn)故障時無法隔離;系統(tǒng)復(fù)雜、錯綜交互,改一個功能,往往整個系統(tǒng)都需要修改;同時多套系統(tǒng)時,是重復(fù)地去制造各種輪子,比如軟件系統(tǒng)、數(shù)據(jù)庫、中間件等;是一個完全封閉的架構(gòu),升級和遷移的成本也非常高。

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

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

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

  三、微服務(wù)模塊化開發(fā)的好處

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

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

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

  四、微服務(wù)開發(fā)框架

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

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

  接下來講一下典型的微服務(wù)架構(gòu),是通過輕量的http協(xié)議關(guān)聯(lián)各個服務(wù)之間的關(guān)系,通過服務(wù)注冊與發(fā)現(xiàn)的機制,加上消息隊列,來訪問各類型數(shù)據(jù)庫,包括運維監(jiān)控、實時認證等。這是基于K8S容器集群的微服務(wù)架構(gòu),是應(yīng)對大系統(tǒng)的,包括自動部署服務(wù)、灰度發(fā)布服務(wù)、自動水平擴展服務(wù)、集群內(nèi)負載均衡服務(wù)等,可以看到它采用多個數(shù)據(jù)庫、多個緩存服務(wù)器等等。

  五、基于微服務(wù)架構(gòu)的賦能平臺實踐

  (一)標準規(guī)范

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

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

  運維安全管理保障方面,包括移動設(shè)備監(jiān)控、移動應(yīng)用管理、web應(yīng)用監(jiān)控和數(shù)據(jù)庫中間件監(jiān)控等。

 ?。ㄈ┘夹g(shù)路線

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

  (四)API網(wǎng)關(guān)接入-安全

  我們通過API網(wǎng)關(guān)來保證系統(tǒng)的安全,因為所用接口、訪問、用戶都是先通過API網(wǎng)關(guān)來訪問我們的各個服務(wù)數(shù)據(jù),API網(wǎng)關(guān)在我們整個架構(gòu)中起到了非常重要的作用,包括統(tǒng)一接入、流量管控、業(yè)務(wù)隔離、安全防護等,其中它們各司其責。

  (五)功能結(jié)構(gòu)

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

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

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

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

blob.png

微信掃一掃即可購買!

責任編輯:hongqiong