【導語】 在數字經濟環境下,云計算、大數據、移動社交、物聯網、人工智能等先進技術的廣泛運用,個人、企業乃至整個生產體系中的制造資源都實現了廣泛、實時的聯接,不僅改變了人們的生活方式,而且正在改變商業本質。
在數字經濟環境下,云計算、大數據、移動社交、物聯網、人工智能等先進技術的廣泛運用,個人、企業乃至整個生產體系中的制造資源都實現了廣泛、實時的聯接,不僅改變了人們的生活方式,而且正在改變商業本質。數字化轉型是所有企業的必然選擇,企業開展數字化轉型的目的就是要更好地為用戶創造價值,以實現最佳的客戶體驗為目標,顛覆性的改變企業產品實現和交付的生產活動過程。通過對產品相關活動中的用戶數據洞察,系統化進行知識沉淀和傳承,改善產品的數字化設計能力及服務水平,優化產品的交付機制,從而滿足客戶的個性化體驗。
而這一切的業務活動中,在產品的需求產生直至產品實現交付的完整商業實現過程,數據實現有效、連續和閉環的傳遞,產品設計、制造乃至整個供應鏈的資源實現密切的協同,工業互聯網平臺是面向制造業數字化、網絡化智能化需求,構建基于海量數據的采集、匯聚分析和服務體系支撐制造資源泛在連接、彈性供給、高效配置的開放式工業互聯網平臺。
GE首席技術官Dave Bartlett認為工業互聯網平臺本質是一個工業操作系統其功能類似微軟的Windows、谷歌的安卓系統或者蘋果的iOS系統。就像以上所談到的電腦或手機操作系統一樣,工業操作系統層實現了工業現場各種復雜設備或控制邏輯的抽象,標準化了不同廠商產品的接口差異,實現了不同的協議轉換,以底層API的形式給架構其中的PaaS平臺層進行調用,以微服務的形式提供預制化的構件,從而在應用層快速地利用構件進行服務編排,實現復雜的用戶應用需求。
微服務(Microservices)架構
過去的企業軟件多是按管理域劃分的大軟件,如ERP、PLM、SCM等等,這些軟件往往模塊眾多,功能復雜,強調以自身管理視角的產品全生命周期協同工作。但在數字化轉型的背景驅動下,面對批量較小的產品訂單,更加個性化、人性化的產品特性組合,工作業務流程從長流程變成短流程,鼠標點擊變成手指觸屏,線性協作變成點狀聚合,大軟件系統不得不適應而被拆解為更小功能服務的小軟件服務。
互聯網需求的長尾效應推動軟件碎片化,讓工作無時無處都可以被處理,而越來越多的碎片化的需求又進一步反身強化更多智能設備的推廣使用。應用交付的速度永遠跟不上業務需求的變化,業務部署與運維復雜度提高導致應用的可用性下降,多元化業務和復雜體系架構導致IT治理的困難,技術人員不斷的重復 “開發—測試—上線”的輪回。
ThoughtWorks首席科學家Martin Fowler在2014年提出了微服務的概念,把一個大型的應用軟件按照功能和服務分類拆分為數十個微服務,每個服務運用于自己的獨立進程,通常是采用基于HTTP協議的RESTful API的輕量級通信機制,松耦合的服務能夠被獨立更新的部署,每一個微服務可滿足用戶的一個需求,用來提升企業的敏捷運營與快速的業務拓展。這種架構將原本大而復雜的單體架構,重組為小而精美的獨立服務,讓工作變得更加高效、便捷、直擊重點。
當企業對某些微服務有特殊需要時,只需將針對這部分微服務的IT資源進行升級,對這些微服務進行更新。在系統出現故障時,微服務也可實現對故障部分單獨隔離,以免影響到整個系統的使用。開發人員也可更便捷地基于“云”進行應用系統開發。
容器(Container)技術
傳統軟件架構特性是單體應用,開發周期至少以月為單位進行發布和升級,代碼一般使用一種語言開發,不同的組件緊耦合,經常依賴于公共的庫,部署周期以月為單位,部署依賴人工操作,組件版本復雜,操作風險高,時間管理成本均居高不下。以JAVA應用為代表的三層架構的部署模式,即便是在虛擬機環境發布環境,也是需要建立相應的操作系統和應用服務器,以完全虛擬應用的運行環境。
容器的代表性產品Docker的出現是一個標志性的節點,2013年首次提出了Build→Ship→Run的概念,使用鏡像方式能夠將應用程序和它依賴的操作系統、類庫以及運行時環境整體打包,統一交付,消除了對傳統應用對操作系統、應用服務器不同廠商及版本,甚至對于環境變量、基礎函數庫API調用的深度依賴,因此容器的本質是一種操作系統級別的虛擬化,與底層所使用的平臺無關,容器可以在與主流的Windows、Linux等主流的操作系統上運行,意味著應用架構一旦轉換為容器化并且遷移部署之后,就可以在任何云平臺之間無縫遷移。使用容器能夠利用鏡像快速部署運行服務,能夠實現業務的快速交付,縮短業務的上線周期,極大地方便運維人員的上線部署工作。
容器較傳統虛擬化有更低資源使用粒度,在一臺物理機上可運行上百個容器服務,從而提高服務器硬件資源的利用率。當遇到高并發、高流量的大活動,容器做到根據業務的負載進行彈性擴容,以提供更好的服務。當訪問量降低后,容器平臺能夠自動縮容,及時釋放空閑資源。
開發運維平臺(DevOps)
DevOps概念早先始于2009年的歐洲,因傳統開發和運維模式無法實現用戶應用快速變化且生命周期較短的現實。DevOps一詞的來自于Development和Operations的組合,突出重視軟件開發人員和運維人員的溝通合作,通過自動化流程來使得軟件構建、測試、發布更加快捷、頻繁和可靠。早期時,大家雖然意識到了這個問題的,但是苦于當時沒有完善豐富的技術工具,是一種“理想很豐滿,現實很骨感”的情況。早期的PaaS平臺方案初步解決了很多客戶對于應用彈性的需求,但是在容器技術之前,構建一套PaaS平臺面臨著組件多、量級大、改造成本高等挑戰,而且對于運行在不同 PaaS 平臺上的應用,很難避免應用對平臺的深度依賴。
譬如,不同的PaaS平臺對彈性、高可用、性能、監控、日志、版本更新等的實現方式不同,則對其上應用的架構要求也不同;另外,在編程語言和平臺層的API調用方面,也會導致應用對平臺廠商的深度綁定。以Docker為代表的輕量級虛擬化容器技術的發展使得DevOps成為可能,工業互聯網的應用直接構建在以Cloud Foundry、Kubernetes等為代表的PaaS平臺之上。
工業APP的構建是核心
工業 APP 的構建是在互聯網制造背景制造協作模式轉換的核心,其關注對工業技術知識的提煉與抽象,將數據模型、提煉與抽象的知識結果通過形式化封裝與固化形成 APP。封裝了工業知識的工業 APP, 對人和機器快速高效賦能,突破了知識應用對人腦和人體所在時空的限制,最終直接驅動工業設備及工業業務。
基于容器技術和微服務架構的PaaS平臺,成功地實現了DevOps的開發運維一體化的愿景,借助于工業互聯網平臺敏捷架構,服務組件供應商、工業制造商、終端用戶甚至個體團隊的形成了完整的工業App開發、應用生態,推動以互聯網為協作載體的新一輪專業分工,將原來在企業各工程人員、專家頭腦中隱性、分散的工業技術知識、經驗技巧進行模型化、軟件化和商品化,形成標準化的微服務組件。
無論工業APP團隊的規模或實力的大小,都可以使用工業互聯平臺上提供的標準化的微服務組件,以即插即用的方式組裝成適合用戶特定工業環境需求的工業APP,從而促進工業knowhow的知識沉淀,以商業化的方式實現跨行業、跨企業的專業化傳播與復用,從而實現全社會工業能力的整體提升。