與云系統(tǒng)不同,嵌入式系統(tǒng)在更新過(guò)程中更容易出現(xiàn)故障補(bǔ)丁或斷電,這可能會(huì)迅速將嵌入式設(shè)備變成磚塊或?qū)е缕湄?fù)載進(jìn)入不穩(wěn)定狀態(tài)。通常,一個(gè)組織的唯一辦法是派一名嵌入式開發(fā)工程師手動(dòng)修復(fù)問(wèn)題或召回設(shè)備。然而,在容器及其便攜性和在更新設(shè)備組時(shí)應(yīng)用自動(dòng)化的能力中可以找到一個(gè)更穩(wěn)定的選擇。
有人多次嘗試使用傳統(tǒng)的發(fā)行版,如Ubuntu
Core和Yocto,作為第三方以軟件包粒度貢獻(xiàn)軟件的地方,希望有一種方法能夠保持完全集成的像碼頭一樣的高質(zhì)量,如,發(fā)行版存儲(chǔ)庫(kù),還可以獲得蓬勃發(fā)展的第三方生態(tài)系統(tǒng)的靈活性和創(chuàng)新性。但是已經(jīng)看到,使用“包”或“層”并不是使這種協(xié)作生態(tài)系統(tǒng)工作的正確粒度級(jí)別。
然而,使用Linux容器,現(xiàn)在可以將粒度保持在第三方可以作為完全工作單元交付組件的水平,如果操作正確,組件之間的相互依賴性將非常小。在云中,只有協(xié)議充當(dāng)模塊的相互依賴關(guān)系,這允許更好地抽象和更容易地組合第三方組件,最終實(shí)現(xiàn)更完整的最終用戶體驗(yàn)。
容器是輕量級(jí)的虛擬化軟件環(huán)境,在主機(jī)上運(yùn)行應(yīng)用程序或操作系統(tǒng)的獨(dú)立實(shí)例,分配所需的資源。將發(fā)行版集裝箱化使其組件模塊化。然后,這些模塊可以用作構(gòu)建塊,并可用于構(gòu)建部署到設(shè)備組的專用發(fā)行版。在嵌入式開發(fā)中,容器通過(guò)可移植性和自動(dòng)化徹底改變固件更新,允許應(yīng)用或回滾更新和關(guān)鍵補(bǔ)丁,而無(wú)需關(guān)閉整個(gè)系統(tǒng)。
Linux容器(LXC)持有答案
輕量級(jí)Linux容器(LXC)最適合將操作系統(tǒng)的系統(tǒng)級(jí)組件容器化。此外,LXC容器允許您獨(dú)立地安全地更新發(fā)行版的各個(gè)組件,而不必冒完全系統(tǒng)故障的風(fēng)險(xiǎn)。他們通過(guò)在設(shè)備中創(chuàng)建分區(qū)并在每個(gè)分區(qū)中運(yùn)行Linux操作系統(tǒng)的實(shí)例來(lái)實(shí)現(xiàn)這一點(diǎn)——一個(gè)實(shí)例運(yùn)行舊軟件,另一個(gè)實(shí)例安裝新軟件。這樣,如果安裝了有缺陷的更新,或者在更新中途斷電,系統(tǒng)可以很容易地在第一時(shí)間回滾到軟件的前一版本,而不會(huì)損害嵌入式設(shè)備的功能或?qū)⑵渥兂纱u塊。
希望升級(jí)其物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的公司必須設(shè)計(jì)嵌入式系統(tǒng),以處理DevOps等現(xiàn)代軟件交付方法。容器對(duì)于這一轉(zhuǎn)變至關(guān)重要,并確保企業(yè)能夠推出更新,以確保其物聯(lián)網(wǎng)設(shè)備免受攻擊,并與最新的尖端嵌入式開發(fā)保持同步,而不會(huì)出現(xiàn)代價(jià)高昂的故障或更糟糕的安全漏洞。