自2012年GE提出工業(yè)互聯(lián)網(wǎng)這一概念以來,經(jīng)過七年的發(fā)展,工業(yè)互聯(lián)網(wǎng)技術(shù)架構(gòu)日趨完善。不同于傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用的標(biāo)準(zhǔn)化技術(shù)構(gòu)建,工業(yè)互聯(lián)網(wǎng)應(yīng)用在場景構(gòu)建和功能開發(fā)方面有著較大差異,不同行業(yè)對工業(yè)互聯(lián)網(wǎng)平臺的功能需求都不會相同,這也使得行業(yè)廠商難以通過構(gòu)建標(biāo)準(zhǔn)化的技術(shù)和應(yīng)用場景來推廣平臺及生態(tài)發(fā)展。
除此之外,在工業(yè)PaaS層面,近年來由于工業(yè)互聯(lián)網(wǎng)平臺普遍應(yīng)用缺乏APP開發(fā)工具、框架和技術(shù)手段,盡管工業(yè)互聯(lián)網(wǎng)有著很高的應(yīng)用關(guān)注度,但乏善可陳的工業(yè)APP讓企業(yè)對工業(yè)互聯(lián)網(wǎng)應(yīng)用望而祛步。
最近,e-works對國內(nèi)數(shù)十家主流工業(yè)互聯(lián)網(wǎng)平臺廠商負(fù)責(zé)人做了訪談和調(diào)查,并就平臺功能進(jìn)行細(xì)致的分析,從中了解到這種工業(yè)應(yīng)用匱乏的局面正在改變。自2018年來,由于微服務(wù)、容器和DevOps等新興開發(fā)技術(shù)的興起,工業(yè)互聯(lián)網(wǎng)平臺的開發(fā)能力正在重構(gòu),過于一年大量針對具體工業(yè)應(yīng)用場景的工業(yè)APP開始涌現(xiàn)。比如在海爾COSMOPlat、航天云網(wǎng)INDICS、樹根互聯(lián)、和利時HolliCube等官網(wǎng)平臺上,已經(jīng)有大量工業(yè)APP可供用戶購買和下載。
調(diào)查結(jié)果還表明,幾乎所有參與調(diào)查的廠商都將微服務(wù)、容器和DevOps作為工業(yè)PaaS層的主流應(yīng)用開發(fā)技術(shù),這預(yù)示著工業(yè)互聯(lián)網(wǎng)平臺的開發(fā)標(biāo)準(zhǔn)正在逐步形成,困擾工業(yè)互聯(lián)網(wǎng)平臺多年的工業(yè)應(yīng)用生態(tài)問題正在實(shí)現(xiàn)全面突破。
與傳統(tǒng)ERP、CRM等大型應(yīng)用軟件的開發(fā)模式不同,微服務(wù)就是把一個大型的應(yīng)用軟件按照功能和服務(wù)分類拆分為數(shù)十個微服務(wù),每個服務(wù)運(yùn)用于自己的獨(dú)立進(jìn)程,通常是采用基于HTTP協(xié)議的RESTful API的輕量級通信機(jī)制,松耦合的服務(wù)能夠被獨(dú)立更新的部署,每一個微服務(wù)可滿足用戶的一個需求,用來提升企業(yè)的敏捷運(yùn)營與快速的業(yè)務(wù)拓展。
微服務(wù)的出現(xiàn)成功的解決了工業(yè)互聯(lián)網(wǎng)平臺對于碎片化的工業(yè)應(yīng)用場景開發(fā)需求,微服務(wù)是具備單一功能的應(yīng)用模塊,比如能實(shí)現(xiàn)對某一類工業(yè)設(shè)備的連接,或是針對某一類設(shè)備進(jìn)行關(guān)鍵數(shù)據(jù)采集,這些都可以開發(fā)成微服務(wù)。但為了實(shí)現(xiàn)設(shè)備的互聯(lián)、數(shù)據(jù)采集和分析整個流程化功能,就需要將這些單一功能的微服務(wù)進(jìn)行“搭積木式”的組裝,形成一個能應(yīng)用于某一具體場景,具備完整服務(wù)功能的工業(yè)APP,而這一過程就需要利用容器技術(shù)。
容器技術(shù)就是把多個微服務(wù)組合到一起并打包,使用鏡像方式將應(yīng)用程序和它依賴的操作系統(tǒng)、類庫以及運(yùn)行時環(huán)境整體打包,統(tǒng)一交付,消除了對傳統(tǒng)應(yīng)用對操作系統(tǒng)、應(yīng)用服務(wù)器不同廠商及版本,甚至對于環(huán)境變量、基礎(chǔ)函數(shù)庫API調(diào)用的深度依賴。
容器的本質(zhì)是一種操作系統(tǒng)級別的虛擬化,與底層所使用的平臺無關(guān),容器可以在與主流的Windows、Linux等主流的操作系統(tǒng)上運(yùn)行,意味著應(yīng)用架構(gòu)一旦轉(zhuǎn)換為容器化并且遷移部署之后,就可以在任何云平臺之間無縫遷移。使用容器能夠利用鏡像快速部署運(yùn)行服務(wù),能夠?qū)崿F(xiàn)業(yè)務(wù)的快速交付,縮短業(yè)務(wù)的上線周期,極大地方便運(yùn)維人員的上線部署工作。
為了管理數(shù)量眾多和功能單一的微服務(wù),企業(yè)還缺一樣技術(shù),這就是DevOps,一組過程、方法與系統(tǒng)的統(tǒng)稱。DevOps經(jīng)常被描述為“開發(fā)團(tuán)隊與運(yùn)營團(tuán)隊之間更具協(xié)作性、更高效的關(guān)系”。由于團(tuán)隊間協(xié)作關(guān)系的改善,整個組織的效率因此得到提升,伴隨頻繁變化而來的生產(chǎn)環(huán)境的風(fēng)險也能得到降低。
傳統(tǒng)軟件開發(fā)一般有需求、開發(fā)、測試、部署四大流程。由于各部門之間處于獨(dú)立狀態(tài),整個軟件開發(fā)過程都是按照步驟一步一步的走,開發(fā)完了做測試,測試完了進(jìn)行部署。前一步做完,下一步才能啟動。但這種開發(fā)模式十分影響項(xiàng)目的推進(jìn)效率。因此,以往一個大型軟件的開發(fā)和實(shí)施部署,短則需要幾個月,長則需要一年,而且成本會非常高,而且開發(fā)過程的不確定性以及反復(fù)的評估更改很容易導(dǎo)致項(xiàng)目的失敗。
那么微服務(wù)和容器又是怎樣開發(fā)和部署的?前面說過,微服務(wù)是將大型軟件分為數(shù)量眾多的小的功能進(jìn)行開發(fā),而容器則用于對多個微服務(wù)打包和部署。這樣能極大的降低軟件開發(fā)難度,但同時也加大了對軟件的管理難度。
為了保證工業(yè)應(yīng)用的高效、穩(wěn)定、快速交付,需要對傳統(tǒng)的軟件開發(fā)流程做出改變。DevOps實(shí)現(xiàn)的就是持續(xù)開發(fā)、持續(xù)測試、持續(xù)集成和持續(xù)部署。當(dāng)一個微服務(wù)被開發(fā)出來,就可以馬上進(jìn)入測試、集成和部署流程,相當(dāng)于“邊開發(fā)、邊測試、邊集成和邊部署”,以一種流水線的形式發(fā)布應(yīng)用服務(wù)。這種開發(fā)方法能即保證了軟件的開發(fā)效率和質(zhì)量,也能滿足工業(yè)APP頻繁功能迭代的需求。
筆者認(rèn)為,隨著微服務(wù)、容器和DevOps技術(shù)的發(fā)展,橫亙在工業(yè)互聯(lián)網(wǎng)平臺中間的“梗”正在消失,工業(yè)互聯(lián)網(wǎng)平臺不再是一個廣受詬病“連接和數(shù)據(jù)分析型平臺”,而是一個能真正能為企業(yè)提供價值的工業(yè)應(yīng)用服務(wù)平臺。與此同時,在國家大力推動工業(yè)上云的背景下,工業(yè)互聯(lián)網(wǎng)平臺正在通過與制造企業(yè)的合作,融合雙方對技術(shù)和需求理解,積極推動工業(yè)APP開發(fā)及應(yīng)用實(shí)踐??梢灶A(yù)見,在接下來的幾年工業(yè)互聯(lián)網(wǎng)平臺的應(yīng)用與生態(tài)將進(jìn)入快速發(fā)展期。