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