文/李丹丹
隨著計算機技術、互聯(lián)網(wǎng)技術以及智能終端日漸融入人們的日常生活,智能服務逐漸細化并逐漸聚焦成一個指定的業(yè)務功能或業(yè)務需求,此類細小服務功能單一、獨立,但數(shù)量眾多龐大。傳統(tǒng)的服務系統(tǒng)由于開發(fā)成本高昂、開發(fā)技術難度較高、開發(fā)時間周期較長,嚴重地阻礙了智能服務系統(tǒng)為人們的日常生活提供服務,因此一種微服務新技術誕生于人們的日常生活服務。微服務系統(tǒng)能夠被2到5人的小團隊單獨開發(fā)、支持不同的語言開發(fā)、允許容易且靈活的方式集成自動部署、易于被一個開發(fā)人員修改和維護、便于融入最新技術、能部署在中低端配置的服務器上、擁有獨立的存儲能力和數(shù)據(jù)庫,由此可見,微服務系統(tǒng)具有開發(fā)和運維成本低、服務器性能要求較低、便于融入新技術等諸多優(yōu)勢。截止目前,較成熟的微服務開發(fā)平臺主要為微信、支付寶、米家,其中微信平臺技術程度相對較高,因此本文對基于微信的微服務系統(tǒng)設計展開了研究。
微服務指的是單個小型化的業(yè)務功能服務,每個微服務都有獨立處理和輕量通訊機制,可以部署在單個或多個服務器上。微服務系統(tǒng)是一種松耦合的面向服務架構(gòu),與緊耦合服務架構(gòu)不同,開發(fā)或修改不需要對每個服務都進行開發(fā)或修改,因此微服務架構(gòu)具備主要特點具備組件化、松耦合、自治、去中心化等優(yōu)勢。
通過對微服務系統(tǒng)結(jié)構(gòu)的特性分析可知,微服務聚焦一個指定的小型業(yè)務功能或業(yè)務需求,系統(tǒng)開發(fā)效率高,集中式管理,代碼維護易,部署靈活,構(gòu)建時間短,穩(wěn)定性高。
隨著持續(xù)交付概念推廣以及Docker容器普及,微服務將這兩種理念和技術結(jié)合起來,形成新的“微服務+API +平臺”的開發(fā)模式,提出了容器化微服務的持續(xù)交付概念。微服務促進了DevOps方式的重組,將一個大臃腫的整體產(chǎn)品開發(fā)隊伍切分為根據(jù)不同微服務的劃分的產(chǎn)品隊伍,以及一個大的整體的平臺隊伍負責運營管理,兩者之間通過API交互,做到了松耦合隔絕。
圖1:基于微信設計的微服務系統(tǒng)
(1)需要考慮構(gòu)建DevOps能力,這是保證微服務架構(gòu)在持續(xù)交付和應對復雜運維問題的動力之源。
(2)保持微服務持續(xù)演進,使之能夠快速、低成本地被拆分和合并,以快速響應業(yè)務的變化。
(3)保持團隊和架構(gòu)對齊,微服務通過技術層面的變革,對團隊結(jié)構(gòu)和組織文化有很強的要求和影響,識別和構(gòu)建匹配架構(gòu)的團隊是解決問題的一大支柱。
(4)打造持續(xù)改進的自組織文化是實施微服務的關鍵基石。只有持續(xù)改進、持續(xù)學習和反饋,持續(xù)打造這樣一個文化氛圍和團隊,微服務架構(gòu)才能持續(xù)發(fā)展下去,保持新鮮的生命力,從而實現(xiàn)“快速響應”的初衷。
基于微信平臺所設計的微服務系統(tǒng)采用B/S結(jié)構(gòu),微信用戶借助微信小程序訪問微系統(tǒng),B端為微信小程序,S端為微服務系統(tǒng)。微信小程序?qū)⒂脩粜袨樾畔⒎庋b為微信消息數(shù)據(jù)上傳至微信服務平臺,微信服務平臺通過對微信消息數(shù)據(jù)的解析、處理與封裝,借助廣域網(wǎng)將其轉(zhuǎn)至微服務系統(tǒng),微服務系統(tǒng)根據(jù)消息指令快速作出響應?;谏鲜龇治隹芍?,前端微信小程序與中間層微信服務平臺之間通過API實現(xiàn)信息傳遞,微信服務平臺與后端微服務系統(tǒng)之間通過API實現(xiàn)信息交互。
如果這些命令是微信消息格式的命令,就會通過微信服務器轉(zhuǎn)發(fā)到對應的公眾號托管接口上,由反向代理服務器通過微信通信接口服務器來處理。如果這些命令是Web形式的頁面請求,微信客戶端將會通過內(nèi)置的瀏覽器直接向反向代理服務器發(fā)送請求,反向代理服務器檢索其所請求的公眾號服務所在的Web應用服務器,然后由對應的Web應用服務器對該請求作出響應,由此可見,此種模式是一種將持續(xù)交付概念和Docker容器相結(jié)合的“微服務+API +平臺”的開發(fā)模式,所設計的微服務系統(tǒng)如圖1所示。
本文先對微服務展開了研究,微服務聚焦一個指定的小型業(yè)務功能或業(yè)務需求,系統(tǒng)開發(fā)效率高,集中式管理,代碼維護易,部署靈活,構(gòu)建時間短,穩(wěn)定性高。根據(jù)持續(xù)交付概念與Docker容器相結(jié)合的“微服務+API +平臺”的開發(fā)模式,本文設計了一套由微信小程序、微信服務平臺、后端微服務系統(tǒng)組成的微服務系統(tǒng)。