工業(yè)自動化領(lǐng)域正在出現(xiàn)重大技術(shù)變革。這種變革有可能使長期供應(yīng)商的商業(yè)模式過時。它還要求所有類型的供應(yīng)商采用云計算領(lǐng)域的新興軟件技術(shù)和實踐。這種變革幾乎完全由新的軟件技術(shù)而不是硬件驅(qū)動。雖然變革將首先影響連續(xù)過程自動化,但這些新軟件技術(shù)的功能和價值將推動它們及其新業(yè)務(wù)模式進(jìn)入許多其他領(lǐng)域,包括工廠自動化和工業(yè)物聯(lián)網(wǎng)(工業(yè)互聯(lián)網(wǎng))。
推動這種變革的技術(shù)是軟件應(yīng)用程序的“容器化”。軟件容器技術(shù)幾十年前在UNIX操作系統(tǒng)中誕生,并且在龐大的Linux開源生態(tài)系統(tǒng)和主要云計算服務(wù)供應(yīng)商的推動下迅速發(fā)展。
軟件容器為軟件開發(fā)人員和最終用戶提供兩個主要價值。首先,它們提供了自動化方法,可以跨任意數(shù)量的物理或虛擬機部署和管理多個分布式應(yīng)用程序。其次,容器軟件開發(fā)過程創(chuàng)建了一個“容器鏡像”存儲庫——可以協(xié)同創(chuàng)建的軟件交付成果,并包含在特定計算機環(huán)境中運行應(yīng)用程序所需的所有工件。
容器鏡像的開發(fā)創(chuàng)建了一個強大的新抽象,將應(yīng)用程序與異構(gòu)CPU、操作系統(tǒng)、軟件版本以及它們在生產(chǎn)期間運行的環(huán)境隔離開來。此外,由于容器鏡像的范圍包含單個應(yīng)用程序,因此容器將開發(fā)人員的注意力從管理機器轉(zhuǎn)移到管理應(yīng)用程序。這大大提高了應(yīng)用程序部署和可見性。在過去的五到十年中,容器開發(fā)、部署和編排軟件工具已經(jīng)成熟。它們現(xiàn)在遠(yuǎn)遠(yuǎn)超過傳統(tǒng)的嵌入式系統(tǒng)軟件技術(shù),能夠提供并管理分布式和高可用性應(yīng)用程序——例如未來分布式控制系統(tǒng)(DCS)的自動化應(yīng)用程序。
垂直整合的商業(yè)模式的終結(jié)
自從20世紀(jì)70年代引入PLC和DCS以來,控制級別(ISA 95級別1和2,企業(yè)系統(tǒng)與控制系統(tǒng)集成的國際標(biāo)準(zhǔn))的自動化硬件和軟件架構(gòu)從根本上沒有改變。一直到今天,工業(yè)自動化市場結(jié)構(gòu)圍繞著捆綁的自動化硬件和軟件。這種結(jié)構(gòu)非常類似于20世紀(jì)70年代的小型機市場,每個主要的計算機供應(yīng)商(Da-ta General,Prime,HP等)都推出了自己獨特的捆綁應(yīng)用程序和軟件工具集,以及他們自己的渠道合作伙伴和獨立軟件供應(yīng)商(ISV)。
但是,最終以用戶為中心的開放式過程自動化論壇(開放式集團論壇,華為、IBM、富士通、甲骨文等是白金會員)(Open Process Automation Forum (a Forum of The Open Group))的形成以及大部分過程自動化供應(yīng)商社區(qū)的支持表明,這種高度垂直整合的業(yè)務(wù)模式已經(jīng)受到威脅,可能正在達(dá)到其終點。
傳統(tǒng)嵌入式系統(tǒng)模型的終結(jié)
對于嵌入式系統(tǒng)和傳統(tǒng)嵌入式系統(tǒng)軟件開發(fā)的傳統(tǒng)市場而言,最終也是如此。網(wǎng)絡(luò)(分布式)嵌入式系統(tǒng)——特別是工業(yè)嵌入式系統(tǒng)——在其生命周期中的開發(fā)、部署和管理方式需要進(jìn)行轉(zhuǎn)型。
目前,許多嵌入式軟件(即使它起源于開源)包含許多專有元素。出于安全原因,今天更新嵌入式軟件越來越重要,但遺憾的是,這通常很難或不可能。因此,網(wǎng)絡(luò)安全已經(jīng)成為嵌入式系統(tǒng)的一個長期問題,特別是在消費電子領(lǐng)域。這也會產(chǎn)生其他問題。應(yīng)用程序不靈活、操作系統(tǒng)和軟件工具鏈?zhǔn)欠稚⒌摹㈤_發(fā)速度很慢、硬件/軟件集成仍然存在問題。更糟糕的是,經(jīng)驗豐富的嵌入式系統(tǒng)軟件開發(fā)人員比較缺乏。
雖然嵌入式系統(tǒng)軟件市場確實感受到了Linux的影響,但傳統(tǒng)嵌入式市場的其他方面仍然存在多年。市場需要改變技術(shù),進(jìn)入工業(yè)物聯(lián)網(wǎng)、工業(yè)4.0、智能制造等時代。未來的工業(yè)嵌入式系統(tǒng)將要求整個軟件堆棧可以自動升級——從頂層應(yīng)用程序到底層操作系統(tǒng)和虛擬機管理程序。
那么,如果當(dāng)前用于工業(yè)自動化的技術(shù)堆棧不再能夠很好地發(fā)揮作用,那將被什么取代呢?
容器軟件擾亂了許多行業(yè)
最近,ARC Advisory Group(ARC咨詢集團)與過程自動化業(yè)務(wù)的C-Level高管進(jìn)行了討論,他對開放式過程自動化系統(tǒng)的前景持悲觀態(tài)度。根據(jù)這位高管的說法,“我們的客戶不希望必須在許多不同供應(yīng)商的數(shù)千臺設(shè)備上管理其應(yīng)用軟件。”
他認(rèn)為,通過少數(shù)供應(yīng)商制造的控制器管理工廠的自動化軟件是很困難的。對于管理不同供應(yīng)商的應(yīng)用軟件,和不同供應(yīng)商的數(shù)百個硬件模塊單元或工廠,這需要技術(shù)的重大進(jìn)步。與現(xiàn)在工廠中運行的最新過程自動化系統(tǒng)相比,此類系統(tǒng)在部署和編排(Orchestration)軟件方面必須要大大提高。
然而,工業(yè)自動化行業(yè)和其他幾個主要行業(yè),現(xiàn)在正在為高度分散的自動化和功能創(chuàng)建參考架構(gòu)甚至特定解決方案。這些舉措有許多共同點。
例如,全球汽車行業(yè)正在開發(fā)一種參考架構(gòu),該架構(gòu)將包含安全性、車輛自主性、遠(yuǎn)程服務(wù)、信息娛樂和便利性的車載功能。這包括定義一組稱為汽車級Linux的特定Linux軟件。在電信這個另一個龐大的行業(yè)中,公司正在開發(fā)在蜂窩基站和電信中心局交換機中虛擬化處理功能的架構(gòu)。這兩項計劃稱為NFV(網(wǎng)絡(luò)功能虛擬化)和CORD(中央辦公室重新設(shè)計為數(shù)據(jù)中心)。
汽車、電信和工業(yè)自動化等行業(yè)的數(shù)字化挑戰(zhàn)將需要大規(guī)模和長期生命周期地管理遠(yuǎn)程部署的軟件。這將需要在工業(yè)軟件開發(fā)、部署和維護(hù)以及包括嵌入式設(shè)備在內(nèi)的所有類型硬件方面取得突破(而不是逐步改進(jìn))。
好消息是這些突破已經(jīng)存在。現(xiàn)在,用于軟件容器管理和編排的領(lǐng)先開源工具現(xiàn)在可以實時部署和管理分布式應(yīng)用程序。理想情況下,這些相同的工具將被納入新興的開放式過程自動化計劃中。
軟件開發(fā)的融合
從歷史上看,軟件開發(fā)分為三大類軟件:企業(yè)軟件(運行業(yè)務(wù)),嵌入式軟件(運行于內(nèi)部),以及云軟件(運行在第三方云資源上)。雖然他們之間存在一些重疊,但它們各自也有一些獨特的開發(fā)工具。
在未來五年左右的時間里,云軟件開發(fā)技術(shù)似乎將主導(dǎo)其他形式的開發(fā),而這三者將在很大程度上融合。此外,這種融合將以開源軟件的速度發(fā)展,而不是以當(dāng)今工業(yè)自動化行業(yè)典型的軟件開發(fā)速度,后者慢得多。
這種融合的第一階段將是所謂的云原生軟件的開發(fā),標(biāo)志著傳統(tǒng)企業(yè)軟件和云軟件的融合。用于這些任務(wù)的部署和編排軟件工具將變得司空見慣并且眾所周知。當(dāng)按照縮小形式的云原生軟件滿足嵌入式系統(tǒng)軟件的要求時,這將推動第二階段的融合——嵌入式系統(tǒng)軟件是物聯(lián)網(wǎng)(IoT)的“面包和黃油”,尤其是工業(yè)物聯(lián)網(wǎng)(工業(yè)互聯(lián)網(wǎng))。
在過去兩年推出的許多工業(yè)產(chǎn)品中,工業(yè)自動化領(lǐng)域現(xiàn)在可以看到使用Docker和Linux容器部署應(yīng)用程序的方式。除此之外,一種名為Unikernels的新興云技術(shù)將嵌入式軟件開發(fā)的小規(guī)模原則與云執(zhí)行平臺相結(jié)合。雖然Unikernel技術(shù)目前主要是研究領(lǐng)域,但這可能會改變。事實上,風(fēng)險資本已經(jīng)投入到為企業(yè)和工業(yè)物聯(lián)網(wǎng)市場開發(fā)單核產(chǎn)品的公司。
此外,云計算是一項價值2500億美元的業(yè)務(wù),擁有大量的研發(fā)資金。它正在迅速發(fā)展,并由亞馬遜、阿里巴巴、微軟、谷歌、IBM等大型科技公司主導(dǎo)。這些大公司正在為一個龐大且不斷發(fā)展的業(yè)務(wù)展開激烈競爭。期望云計算業(yè)務(wù)中使用的開源軟件技術(shù)將迅速而廣泛地發(fā)展,這是合理的。
用于工業(yè)自動化的小規(guī)模云
ARC認(rèn)為,五年內(nèi)所有軟件開發(fā)都可能使用云軟件開發(fā)方法。在軟件“食物鏈”中,如果“軟件正在吞噬世界”,那么正在吞噬軟件開發(fā)世界的軟件就是云軟件開發(fā)和工具。即使在嵌入式軟件的封閉和專業(yè)化的世界中,也可能會被當(dāng)前和未來的云軟件技術(shù)超越。
這并不是說所有應(yīng)用程序都將在云中運行。相反,云軟件使用的軟件開發(fā)和部署技術(shù)將超越并主導(dǎo)其他形式的軟件開發(fā)。這有兩個可能的原因。
第一個原因是,云雖然巨大,但卻是一個相對較新且仍在不斷發(fā)展的行業(yè)。也就是說,今天的熱門云計算軟件技術(shù)與云計算本身一樣新近。OpenStack、Cloud Foundry、Docker和Kubernetes(K8s)等軟件在過去五到十年中都已作為開源軟件發(fā)布。云計算專家一致認(rèn)為,當(dāng)前的云計算模型包含大量冗余,可以大大改進(jìn)。因此,人們應(yīng)該期待這一領(lǐng)域的快速和持續(xù)的技術(shù)發(fā)展。
很好,但這就是云。工業(yè)自動化市場為何要關(guān)注這個問題?
這導(dǎo)致了期望云軟件開發(fā)占據(jù)主導(dǎo)地位的第二個原因。這是因為云軟件技術(shù)可以縮小到更小的系統(tǒng),這也是開放過程自動化論壇關(guān)注的工業(yè)自動化系統(tǒng)類型。讓我們來看一個關(guān)鍵的例子:容器軟件。
容器和工業(yè)自動化
容器有什么意義?人們可以看到為什么這些對云和企業(yè)來說很重要,但為什么它們對工業(yè)自動化等應(yīng)用很重要?
讓我們退后一步,回顧一下容器的歷史。容器技術(shù)始于20世紀(jì)90年代末,當(dāng)時Sun Microsystems等公司正在構(gòu)建非常強大的UNIX服務(wù)器。從操作和管理的角度來看,更容易在這些巨大的機器中對應(yīng)用程序進(jìn)行分區(qū),而不是將所有進(jìn)程一起運行。容器背后的原始概念是在應(yīng)用程序之間創(chuàng)建分區(qū),以便更輕松地管理大型服務(wù)器。
容器技術(shù)的缺點是實現(xiàn)它需要技術(shù)嫻熟的UNIX系統(tǒng)管理員。對于當(dāng)時的大公司(Sun Microsystems,Oracle,SAP和其他公司)而言,這并沒有什么問題。但是,對深度UNIX管理專業(yè)知識和大型服務(wù)器的需求限制了容器在相對較少的公司中的使用。
什么改變了?為什么容器現(xiàn)在如此受歡迎?隨著容器技術(shù)在Linux中的應(yīng)用,一家風(fēng)險投資公司開發(fā)了軟件工具,大大簡化了Linux容器的創(chuàng)建、部署和操作。這個名為Docker的軟件五年前發(fā)布給開源社區(qū)。
因此,在過去的五年中,對容器的興趣在云計算和企業(yè)計算領(lǐng)域呈爆炸式增長。此外,在過去幾年中,許多工業(yè)自動化產(chǎn)品也隨Docker一起交付,使系統(tǒng)集成商和最終用戶能夠輕松地將自己的應(yīng)用程序與這些產(chǎn)品集成。
早些時候,我們提到了針對電信的NFV和CORD計劃(一種邊緣計算開源平臺)。在電信行業(yè),全數(shù)字化將把所有模擬信號處理轉(zhuǎn)移到網(wǎng)絡(luò)的邊緣。從蜂窩塔到中心局的所有其他服務(wù)將通過軟件執(zhí)行并以數(shù)字方式完成。結(jié)果將是一個高度靈活的基礎(chǔ)架構(gòu),可以在不更改硬件的情況下添加新服務(wù)。而在以前,電信網(wǎng)絡(luò)運營商如何設(shè)想能夠在多年的生命周期內(nèi)管理如此龐大的軟件定義基礎(chǔ)設(shè)施?
最后,這也許是最重要的一點,容器軟件可以縮小到非常小的系統(tǒng)。Docker運行時軟件已移植到小型ARM核心單板計算機,現(xiàn)在用于支持工業(yè)物聯(lián)網(wǎng)應(yīng)用和服務(wù)。
Docker和Kubernetes
作為一個額外的好處,開源軟件世界已經(jīng)在很大程度上融合在一個容器編排工具上(在此上下文中的編排是指管理容器部署的軟件)。這個開源容器編排軟件工具Kubernetes起源于谷歌,該公司通過使用容器實現(xiàn)的SaaS產(chǎn)品證明了其可靠性。今天,Kubernetes可能是企業(yè)軟件領(lǐng)域最熱門的開源項目。ARC認(rèn)為,對于那些擁有工廠運營或工程經(jīng)驗的人來說,與他們自己組織中的IT專家討論其對未來自動化架構(gòu)的潛在適用性是值得的。畢竟,Docker和Kubernetes不僅僅是管理和構(gòu)建容器的技術(shù)。
不僅僅包含用于存儲或傳輸應(yīng)用程序的文件,術(shù)語“容器”還指使用內(nèi)核中內(nèi)置的功能。這些功能創(chuàng)建了一個“包含”的環(huán)境,用于在內(nèi)核上運行代碼。代碼認(rèn)為它是唯一的應(yīng)用程序。嚴(yán)格來說,容器是執(zhí)行時體驗,而不是分發(fā)時體驗。
安裝到文件中并作為創(chuàng)建容器的基礎(chǔ)分發(fā)的軟件工件稱為“容器鏡像”,這可能是一個令人困惑的術(shù)語。容器鏡像是使用Docker或其他容器開發(fā)工具創(chuàng)建的軟件工件。
當(dāng)使用容器鏡像(而不是軟件包管理器)時,軟件分發(fā)和生產(chǎn)中的部署是用戶驅(qū)動的和應(yīng)用程序驅(qū)動的而不是供應(yīng)商驅(qū)動的。容器可以極大地減少軟件最終用戶的集成負(fù)擔(dān),使他們能夠更多地關(guān)注他們的應(yīng)用程序,同時讓容器鏡像的構(gòu)建者專注于目標(biāo)系統(tǒng)依賴性和配置。
當(dāng)供應(yīng)商而非用戶需要驅(qū)動軟件分發(fā)時(如軟件包管理器的情況),最終用戶或系統(tǒng)集成商負(fù)責(zé)組裝正確版本并正確設(shè)置所有運行時配置參數(shù)。通過包管理器提供的軟件是要集成的模塊化軟件單元。另一方面,容器鏡像是從最終用戶角度來看的單個但完全集成的應(yīng)用程序。
如前所述,對于作為嵌入式系統(tǒng)的聯(lián)網(wǎng)設(shè)備,“終點就在附近。”展望未來,高價值設(shè)備和服務(wù)將得到遠(yuǎn)程監(jiān)控、管理、更新和服務(wù),其軟件堆棧需要提供服務(wù)。這需要極高的自動化水平。因此,在未來的嵌入式系統(tǒng)中需要Docker和容器,包括工業(yè)自動化中的嵌入式系統(tǒng)。
工業(yè)自動化的容器和編排
與當(dāng)今工業(yè)自動化中使用的嵌入式系統(tǒng)技術(shù)相比,容器具有幾個重要的優(yōu)點,可以使工業(yè)自動化系統(tǒng)對于最終用戶和供應(yīng)商而言更簡單,更有價值。這些包括:
- 容器專注于應(yīng)用程序而不是機器。這有效地將應(yīng)用程序開發(fā)與運行應(yīng)用程序的計算、存儲和網(wǎng)絡(luò)系統(tǒng)的管理分離。通過使應(yīng)用程序開發(fā)人員和系統(tǒng)支持專家能夠有效地解耦并且干擾更少,這可以在系統(tǒng)的整個生命周期內(nèi)提供價值。
- 創(chuàng)建和管理容器鏡像的存儲庫代表了由硬件、處理器體系結(jié)構(gòu)、操作系統(tǒng)和支持軟件依賴性的變化引入的復(fù)雜性的解決方案。
- 容器鏡像文件的“分層”屬性使供應(yīng)商和最終用戶能夠有效地創(chuàng)建和迭代地增強存儲庫。這認(rèn)識到容器鏡像的一些(“低層”)方面將在許多應(yīng)用中長時間使用,而其他方面(“高層”)或特定應(yīng)用可能經(jīng)常發(fā)展或改變。
- 開發(fā)人員可以創(chuàng)建容器開發(fā)和部署環(huán)境,以便在將應(yīng)用程序部署到生產(chǎn)環(huán)境之前實施特定的工作和測試流程。
容器編排(Container orchestration)同樣重要,原因有很多。這些包括:
- Orchestration提供了大大簡化系統(tǒng)擴展和管理的功能。
- Orchestration提供聲明性分布式系統(tǒng)配置。此配置描述了分布式系統(tǒng)的所需狀態(tài)。協(xié)調(diào)器用于實現(xiàn)和維護(hù)這種期望的狀態(tài)。協(xié)調(diào)器的操作使分布式系統(tǒng)能夠?qū)崿F(xiàn)高應(yīng)用程序可用性和諸如“自我修復(fù)”的屬性,因為協(xié)調(diào)器在分布式系統(tǒng)的一部分受到干擾或中斷時用于恢復(fù)期望的系統(tǒng)狀態(tài)。
- 聲明式系統(tǒng)配置比命令式配置工具更不容易出錯,必須執(zhí)行以糾正操作,需要對可執(zhí)行文件進(jìn)行故障排除。
- 聲明式系統(tǒng)配置與版本控制系統(tǒng)相結(jié)合,使得最近系統(tǒng)的回滾變得微不足道。軟件包管理器、嵌入式系統(tǒng)技術(shù)和現(xiàn)有的DCS產(chǎn)品根本無法做到這一點。
- 圍繞容器構(gòu)建協(xié)調(diào)器會將主要操作重點轉(zhuǎn)移到應(yīng)用程序性能上,這是最終用戶關(guān)心的。因為每個容器都是一個應(yīng)用程序,所以不需要從許多不同的應(yīng)用程序中過濾掉信號或日志,以便將診斷集中在特定的應(yīng)用程序上。
- 專注于應(yīng)用而非機器可以在許多其他領(lǐng)域帶來連鎖效應(yīng)。例如,它使得正確構(gòu)建、部署和維護(hù)應(yīng)用程序變得更加容易,并將應(yīng)用程序運行時問題與機器問題分開。
容器和開放過程自動化
為什么所有這些都與開放過程自動化論壇有關(guān)?因為在工業(yè)自動化領(lǐng)域,尤其是過程自動化領(lǐng)域,應(yīng)用程序經(jīng)常每天更換。大型過程自動化安裝幾乎每天都需要對其控制應(yīng)用程序配置進(jìn)行微小的更改。控制配置是過程自動化操作技術(shù)(OT)領(lǐng)域的日常工作。添加了新的測量,測試了新的控制方案,調(diào)整了參數(shù)或警報限制,等等。
這種不斷變化的情況,是為什么過程工業(yè)最終用戶在其DCS中運行的控制應(yīng)用(配置)中投入了如此多的知識產(chǎn)權(quán)。這些應(yīng)用程序代表了工程和調(diào)整控制系統(tǒng)以服務(wù)于實際工廠及其運營目標(biāo)的人工年數(shù)。不幸的是,今天的知識產(chǎn)權(quán)被控制語言和慣用語捕獲,這些語言和機構(gòu)不具備機器可讀性并且總是高度專有。標(biāo)準(zhǔn)化的容器和編排工具提供了從這個死胡同的退出通道。
應(yīng)用程序部署的容器
然而,今天的DCS確實使最終用戶能夠輕松地進(jìn)行頻繁的控制應(yīng)用程序更改。至少,成功的開放式過程自動化系統(tǒng)需要在次要工程變更方面支持相同的性能水平(可能還要高得多)。將應(yīng)用程序部署到目標(biāo)系統(tǒng)(特別是OPAF分布式控制節(jié)點所設(shè)想的小型目標(biāo)系統(tǒng))將是一項非常重要的任務(wù),并且它將是每天執(zhí)行的任務(wù),用于開放式自動化系統(tǒng)的整個安裝生命周期。
總而言之,這種成熟的,基于容器的軟件部署技術(shù)高度標(biāo)準(zhǔn)化,廣泛使用,可在開源中使用,可在各種平臺上運行,并且已經(jīng)在從最大(谷歌)到最小的安裝中進(jìn)行了現(xiàn)場驗證。
選擇不在未來的開放式自動化架構(gòu)中采用容器技術(shù),意味著符合OPAF的系統(tǒng)必須與將使用這些功能強大的軟件工具的未來產(chǎn)品競爭。自動化供應(yīng)商應(yīng)該意識到這些能力,他們必須了解未來的競爭格局,以及當(dāng)前或敏捷的新競爭者可能帶給市場的創(chuàng)新。