嵌入式系統是熱點,它們是具有實時要求的專用硬件和軟件,是為優化成本、性能和功能而定制的。嵌入式系統無處不在,物聯網行業正在推動對它們的指數級需求,以填補每一個可以想象的利基市場,但是沒有足夠的嵌入式開發工程師來設計和制造所有這些設備,即使有,專業化和硬件獨特性也會妨礙代碼重用、可移植性,甚至像固件空中(FOTA)更新和調試這樣的簡單需求。對于尋求冒險或在競爭中領先的工程師和團隊來說,容器可能是答案。
在云和桌面應用程序中,像Docker這樣的容器徹底改變了開發人員編寫、更新和共享應用程序的方式。如果你需要特性A,可能有人已經編寫了實現該特性的容器化服務,只需要你部署它。容器已經找到了進入CI/CD系統的方法,允許軟件被不斷地測試和部署。容器已經徹底改變了軟件行業,但是到目前為止,它們還沒有在基于微控制器的嵌入式系統中被廣泛采用。
使用容器來設計和構建嵌入式軟件可能是未來的發展方向。在嵌入式系統的潮流中保持領先的最好方法是看看更大的軟件行業正在發生什么。不幸的是,嵌入式軟件開發人員往往落后于行業的其他人大約五年。然而,如果你看看今天的趨勢,一切都是關于容器技術,那么,嵌入式軟件容器的未來是什么?
到目前為止,我遇到的最小的容器框架的運行時間只有幾百千字節的代碼大小,并且需要同樣數量的RAM,這太棒了,但在嵌入式開發中,這仍將淘汰嵌入式系統行業的很大一部分,這些行業使用的是內存少于256K的受限設備。很多容器似乎都是針對物聯網應用的。物聯網設備通常需要額外的內存和成本來管理無線連接、與云通信等。
容器可以在作為物聯網邊緣設備的嵌入式系統中扮演利基角色。對于這些設備,容器可以簡化和改進它們生命周期的幾個方面。首先,新的服務、功能和更新可以遠程部署到設備,而無需完全重寫所有固件。第二,容器不需要專門的硬件。例如,一個產品可能有幾個使用不同微控制器的硬件版本,而一個新的特性或服務可以同時部署到它們上面。最后,不一定需要嵌入式軟件工程師來添加新功能。容器抽象出了所有底層的細節,這意味著你不再需要一個專門的工程師來編寫一個新的特性。
對于嵌入式系統來說,容器是一個令人興奮的技術選擇。但是,它們很可能永遠不會被普遍采用。從來都不是。然而,在一些行業中,使用容器的好處將有助于簡化嵌入式系統開發和生命周期管理。在這些領域,我猜想我們將開始看到容器的采用遠遠快于物料成本優化是關鍵要求的行業。
你怎么想呢?容器會成為嵌入式開發人員工具箱中的常規工具嗎?