就像早期的Linux一樣,嵌入式Linux世界也需要擁抱自動化,并利用容器化來實現基礎設施的無摩擦和不可見性。到現在為止,有許多不同的發(fā)行版,如RedHat、Debian、Suse等,其目標是使Linux可靠、易于使用和安全。這些發(fā)行版是由大型、充滿活力的嵌入式開發(fā)人員社區(qū)創(chuàng)建的,他們將自己的空閑時間貢獻給開源Linux項目。盡管Linux在早期獲得了很大的發(fā)展,但在部署并在服務器上運行應用程序之前,集成一個發(fā)行版仍然需要相當多的努力和技術能力。
隨著AWS等公共云的出現,這種情況有所改變,AWS允許服務器根據需要進行旋轉和擴展。最重要的是,您可以將軟件部署到它上,而不必擔心必須集成Linux發(fā)行版才能與您的軟件一起工作。然而,在早期,那些一鍵式發(fā)行版是以映像的形式出現的,在它們能夠以您需要的方式運行之前,仍然需要進行一些配置。
輸入Docker容器
Alex表示,2015年,Linux系統的構建和管理方式發(fā)生了另一次轉變。Docker容器的興起意味著不再需要手動集成發(fā)行版并匹配相應的庫版本。在Docker之前,第三方軟件和服務很難使用Linux進行更改或影響發(fā)行版的工作方式。
Docker容器允許嵌入式開發(fā)人員將他們想要的任何東西(包括第三方擴展)打包到一個自包含的單元中,然后部署到一個虛擬環(huán)境中,而不用擔心它。由于這種能力,運行應用程序的主機操作系統變得越來越不重要,實際上已經變得不可見。這意味著開發(fā)人員可以減少對基礎設施的關注,而將更多的時間花在創(chuàng)建為您的業(yè)務增值的應用程序上。
內核對于嵌入式開發(fā)仍然很重要
與今天的嵌入式開發(fā)人員不同,云開發(fā)人員通常不會考慮內核功能。Alex說:“在主機操作系統上,唯一真正重要的是Linux內核。Linux內核將在可預見的未來繼續(xù)存在。內核是共同點,也是嵌入式開發(fā)人員Linux難題中最重要的部分?!薄?/span>
如今,大多數云開發(fā)者只需要擔心他們可以在容器中運行什么。大多數人甚至不考慮他們在哪個內核上運行,也不擔心它是否具有您需要的所有特性。
Kubernetes是云本地基礎設施
事實上,云開發(fā)者甚至不再那么擔心主機操作系統。云刪除了主機操作系統作為中間層的功能,在過去,您可以每天與它進行交互?,F在,Kubernetes將SSH’ing安裝到主機上以安裝軟件已成為過去。
相反,您可以只使用平臺API并自動將您想要使用的任何有效負載部署到集群上?,F在,您擁有的不是小組件,而是按您希望的方式工作的大型構建塊,而無需考慮它們如何協同工作。
面向嵌入式開發(fā)人員的通用平臺
在嵌入式方面,內核及其功能是嵌入式開發(fā)人員最重要的方面之一,尤其是在嵌入式Linux板上創(chuàng)建新產品時。微控制器無法運行像機器人這樣復雜的應用程序,通常更適合傳感器類型的數據。由于運行Linux的大多數IoT設備上的資源限制,定制和專門化固件是嵌入式開發(fā)人員需要做的重要事情之一。
Alex隨后介紹了一個實用的平臺,用于在資源受限的嵌入式平臺上使用容器構建應用程序。他稱之為通用嵌入式Linux系統。那么為什么它是通用的呢?在Pantacor,主機操作系統應該盡可能少,并且盡可能不固執(zhí)己見。事實上,它除了操作容器的生命周期、協調對硬件設備的訪問并提供一個協議來驅動系統的部署之外,什么也不做。
要部署某些東西,您需要一個可以描述為單個事務單元的系統運行時。使用通用嵌入式模型,您可以將所需的所有組件定義為單個事務性可部署單元。其余的是中間件容器、系統容器,然后是應用程序容器。
所有這些都可以在容器中完成,它們應該在容器中完成,因為這是實現真正通用的唯一方法。根據Alex的說法,當你思考這個問題時,如果你用其他東西來替換不可變的部署平臺,你已經失去了一半的潛在用例。
自由選擇=快樂的嵌入式開發(fā)人員
有了通用的集裝箱嵌入式系統,您可以選擇發(fā)行版。事實上,發(fā)行版在一個龐大的嵌入式開發(fā)團隊中變得無關緊要,這是非常強大的。
Pantavisor
Linux利用容器構建模塊化的容器化嵌入式Linux系統,這些系統完全可定制,并且易于使用標準開源技術進行管理。容器的可移植性簡化了跨物聯網車隊的嵌入式Linux固件和應用程序的生命周期管理。系統和應用程序級別的虛擬化允許嵌入式開發(fā)Linux工程團隊采用敏捷和現代的云本機方法,如微服務和其他自動化戰(zhàn)略,以確保設備群的安全,加快上市時間并增加創(chuàng)新。