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