0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

容器化對嵌入式系統(tǒng)的好處

星星科技指導(dǎo)員 ? 來源:embedded ? 作者:Ricardo Camacho ? 2023-05-04 10:22 ? 次閱讀

容器是一種不斷發(fā)展的標(biāo)準(zhǔn)化和便攜式包裝技術(shù)。它們最初是為 Web 應(yīng)用程序和微服務(wù)開發(fā)和部署而引入的,在 IT 行業(yè)中得到了廣泛的采用。

今天,我們也看到它們被應(yīng)用于嵌入式行業(yè),例如汽車電子控制單元(ECU)的開發(fā)。這適用于自適應(yīng) AUTOSAR 和經(jīng)典 AUTOSAR,適用于深度嵌入式安全和安保關(guān)鍵系統(tǒng),其中 C 和 C++ 是主要的編程語言。

容器可在軟件開發(fā)的任何階段為嵌入式開發(fā)、測試、暫存和生產(chǎn)提供相同環(huán)境的快速復(fù)制,從而提高整體生產(chǎn)力、代碼質(zhì)量、減少勞動力、節(jié)省成本等。

借助容器,組織及其供應(yīng)商發(fā)現(xiàn)了驚人的敏捷性、靈活性和可靠性。公司使用容器來:

縮短軟件開發(fā)上市時間。

提高代碼質(zhì)量興趣。

應(yīng)對管理日益復(fù)雜的開發(fā)生態(tài)系統(tǒng)方面的挑戰(zhàn)。

在快速且不斷發(fā)展的市場中動態(tài)響應(yīng)軟件交付試驗(yàn)。

正在使用的一個例子是如何將容器直接部署到當(dāng)今的現(xiàn)代敏捷開發(fā)工作流中,如DevOps / DevSecOps。

在進(jìn)入細(xì)節(jié)和好處之前,讓我們將這項(xiàng)技術(shù)放在上下文中并回答以下問題。

為什么存在容器,它們是什么?

容器如何適應(yīng)軟件開發(fā)生命周期?

它們?nèi)绾斡绊憳I(yè)務(wù)成果?

容器技術(shù)

開放容器計(jì)劃(OCI)是一個Linux基金會項(xiàng)目,由多家公司于2015年建立,旨在圍繞容器格式和運(yùn)行時創(chuàng)建開放的行業(yè)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)允許兼容的容器在所有主要操作系統(tǒng)、硬件、CPU 架構(gòu)、公共/私有云等中無縫移植。

容器是與其他組件或依賴項(xiàng)(如二進(jìn)制文件或特定語言運(yùn)行時庫和配置文件)捆綁在一起的應(yīng)用程序。容器有自己的進(jìn)程、網(wǎng)絡(luò)接口和掛載。它們彼此隔離,并在“容器引擎”之上運(yùn)行,便于攜帶和靈活。

此外,容器共享一個操作系統(tǒng)。它們可以在以下任一設(shè)備上運(yùn)行。

Linux、Windows 和 Mac 操作系統(tǒng)

虛擬機(jī)或物理服務(wù)器

開發(fā)人員的計(jì)算機(jī)或本地?cái)?shù)據(jù)中心

公共云

poYBAGRTFsGAKcCfAAHpZq7LvJs438.png

圖 1:容器化架構(gòu)

了解容器引擎的作用很重要,因?yàn)樗峁┝艘韵玛P(guān)鍵功能:

操作系統(tǒng)級虛擬化。

容器運(yùn)行時,用于管理容器的生命周期(執(zhí)行、監(jiān)督、映像傳輸、存儲和網(wǎng)絡(luò)附件)。

用于隔離資源的內(nèi)核命名空間。

還有各種容器引擎,包括:Docker,runC,CoreOS rkt,LXD,CRI-O,Podman,Containerd,Microsoft Hyper-V,LXC,Google Container Engine (GKE),Amazon Elastic Container Service(ECS)等。

其他值得一目了然的概念是容器映像和容器業(yè)務(wù)流程。

容器映像是具有可執(zhí)行代碼的靜態(tài)文件,包含容器運(yùn)行所需的所有內(nèi)容。因此,容器是容器映像的運(yùn)行實(shí)例。此外,在大型復(fù)雜部署中,容器化體系結(jié)構(gòu)中可能有許多容器。管理所有容器的生命周期變得尤為重要。

容器編排通過預(yù)配、部署、縱向擴(kuò)展或縮減等方式管理工作負(fù)載和服務(wù)。流行的容器編排解決方案是Kubernetes,Docker群和Marathon。

現(xiàn)在,讓我們考慮一下將應(yīng)用程序與其所有依賴項(xiàng)打包在一起的靈活性帶來的技術(shù)和業(yè)務(wù)收益,以便它們從一個計(jì)算環(huán)境快速可靠地運(yùn)行到另一個計(jì)算環(huán)境。

技術(shù)和業(yè)務(wù)收益

嵌入式軟件系統(tǒng)的開發(fā)生態(tài)系統(tǒng)可能過于復(fù)雜。讓大型團(tuán)隊(duì)都在通用或相同的環(huán)境中工作,這增加了復(fù)雜性。例如,開發(fā)團(tuán)隊(duì)環(huán)境由編譯器、SDK、庫、IDE 組成,在某些情況下,還包括人工智能 (AI) 等現(xiàn)代技術(shù)的結(jié)合。所有這些工具和解決方案都在協(xié)同工作,它們的所有依賴項(xiàng)也是如此,以及不斷發(fā)展的發(fā)布版本,這些版本提供對發(fā)現(xiàn)的安全漏洞的修復(fù)、對已識別缺陷的修復(fù)、許可等等。

此外,組織應(yīng)該有單獨(dú)的環(huán)境用于開發(fā)、測試/驗(yàn)證、生產(chǎn),也許還有災(zāi)難恢復(fù)。借助容器,組織可以通過輕松擴(kuò)展或縮減應(yīng)用程序依賴項(xiàng)、將開發(fā)環(huán)境恢復(fù)到特定狀態(tài)以及根據(jù)需要推出容器映像來有效地管理所有這些復(fù)雜的開發(fā)環(huán)境,從而確保每個團(tuán)隊(duì)成員都能獲得一致的開發(fā)環(huán)境。如今,許多組織在每臺開發(fā)人員/測試人員計(jì)算機(jī)上復(fù)制開發(fā)和測試環(huán)境,為人為錯誤留有余地。

我記得有一次我在桌面上開發(fā)和測試了一個嵌入式應(yīng)用程序,它運(yùn)行良好,所以我提交了代碼。很久以后,QA 團(tuán)隊(duì)在驗(yàn)收測試期間通知我該應(yīng)用程序不起作用。我開始調(diào)試報(bào)告的問題,但無法產(chǎn)生所描述的問題。

我讓其他開發(fā)團(tuán)隊(duì)成員參與進(jìn)來,以幫助識別和解決問題,但我們就是無法重現(xiàn)問題。經(jīng)過幾天的調(diào)查,與QA團(tuán)隊(duì)合作,有時抓住稻草,我們終于開始調(diào)查QA的構(gòu)建環(huán)境。

一切都是相同的,除了QA團(tuán)隊(duì)更新了他們機(jī)器上的操作系統(tǒng)(OS)和編譯器版本。在他們的操作系統(tǒng)版本中,對任務(wù)優(yōu)先級處理進(jìn)行了修改。代碼邏輯是合理的,但正在運(yùn)行的任務(wù)被具有相同優(yōu)先級的另一個任務(wù)阻止。將競爭任務(wù)優(yōu)先級中的任何一個減少一個都可以解決問題。

由于代碼邏輯是第一個疑似罪魁禍?zhǔn)?,因此我們花費(fèi)了大量人力和時間來調(diào)查和解決問題。調(diào)查問題需要更多開發(fā)和 QA 工程師花費(fèi)更多時間。我們舉行了額外的會議和狀態(tài)報(bào)告,并推遲了其他任務(wù)。漣漪效應(yīng)尚不完全清楚,但產(chǎn)生了巨大的成本。如果已經(jīng)使用容器對開發(fā)環(huán)境進(jìn)行集中管理和部署,它將使開發(fā)和 QA 團(tuán)隊(duì)的部署環(huán)境保持同步,并且可以完全避免此問題。

嵌入式部署策略

可以通過多種方式配置和部署使用容器的軟件開發(fā)。組織可以根據(jù)正在使用的現(xiàn)有工具、所需的自動化級別和團(tuán)隊(duì)組織來確定容器的使用并不斷發(fā)展。

策略可以是在開發(fā)人員的主機(jī)上使用公共容器來制作、構(gòu)建和運(yùn)行其應(yīng)用程序。這可確保每個開發(fā)人員都使用完全相同的構(gòu)建工具和運(yùn)行環(huán)境的集合和版本。

許多嵌入式團(tuán)隊(duì)使用 Jenkins、GitHub、Azure、GitLab 等進(jìn)行持續(xù)集成和持續(xù)交付 (CI/CD)。在此示例中,有兩個容器。一個容器創(chuàng)建并生成應(yīng)用程序,而另一個容器運(yùn)行應(yīng)用程序。這有助于表達(dá)容器提供的靈活性。

組織也可能具有圖形分布的團(tuán)隊(duì)。擁有容器映像庫可以促進(jìn)共享容器并消除重新發(fā)明輪子。這通過為不同目的重復(fù)使用現(xiàn)有容器來提高效率。共享容器可確保整個開發(fā)供應(yīng)鏈的質(zhì)量。

CI/CD 管道中的嵌入式測試自動化

容器也被用于DevOps工作流程中的軟件測試。通過將容器化測試解決方案集成到 CI/CD 管道中,組織可以執(zhí)行靜態(tài)分析,以確保符合 MISRA C:2012、MISRA C++ 202x、AUTOSAR C++14、CERT、CWE、OWASP 等標(biāo)準(zhǔn)。

像Parasoft C/C++test這樣的軟件測試自動化工具提供了一個可以在Docker Hub中找到的容器。此外,還可以執(zhí)行單元測試,包括語句、分支的結(jié)構(gòu)代碼覆蓋和/或修改條件決策覆蓋率 (MC/DC)。然后,只有在成功完成測試后,軟件才會提交到主分支中。

構(gòu)建過程中的這種容器化部署在代碼開發(fā)和代碼質(zhì)量方面產(chǎn)生了驚人的效率。在這個快速和自動化的持續(xù)集成周期中,讓多名工程師并行工作,確保在整個產(chǎn)品生命周期中生成和維護(hù)堅(jiān)實(shí)的軟件基礎(chǔ)。

poYBAGRTFrCAObCGAAFGJmwCems720.png

結(jié)論

構(gòu)建嵌入式實(shí)時安全和安保關(guān)鍵系統(tǒng)的組織正在采用包含容器的 DevOps 工作流。其他人正在采用集裝箱化戰(zhàn)略。那些已經(jīng)構(gòu)建了 CI/CD 管道并已經(jīng)使用它幾年的公司報(bào)告說,他們已經(jīng)能夠更好地預(yù)測軟件的交付,并輕松適應(yīng)需求和設(shè)計(jì)的變化。

隨著生產(chǎn)力的提高和測試成本的降低,開發(fā)團(tuán)隊(duì)報(bào)告說產(chǎn)品質(zhì)量和上市時間都有所提高。此外,嵌入式組織已通知我們 QA 問題報(bào)告和客戶票證的可衡量下降。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19141

    瀏覽量

    305939
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1264

    瀏覽量

    69523
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6840

    瀏覽量

    123407
收藏 人收藏

    評論

    相關(guān)推薦

    淺析嵌入式Linux容器技術(shù)

    嵌入式Linux容器技術(shù)一、Linux容器技術(shù)Linux Container容器是一種內(nèi)核虛擬技術(shù),可以提供輕量級的虛擬
    發(fā)表于 10-27 08:56

    從事嵌入式軟件開發(fā)有什么好處

    很多學(xué)員都有去了解過嵌入式,但是之后就杳無音信了,這是為什么呢?是大家對嵌入式沒有信心,還是對自己沒有信心呢?下面小編就來給大家介紹下從事嵌入式軟件開發(fā)的好處是什么吧。一、從事
    發(fā)表于 11-08 08:45

    什么時候獲取嵌入式的Servlet容器并啟動Tomcat

    什么時候創(chuàng)建嵌入式的Servlet容器工廠?什么時候獲取嵌入式的Servlet容器并啟動Tomcat?獲取嵌入式的Servlet
    發(fā)表于 12-20 06:11

    嵌入式系統(tǒng)概論與嵌入式系統(tǒng)的特點(diǎn)

    嵌入式系統(tǒng)概論嵌入式系統(tǒng)的特點(diǎn):專用性:與具體應(yīng)用緊密結(jié)合,具有很強(qiáng)的專用性隱蔽性:嵌入式系統(tǒng)
    發(fā)表于 12-21 08:21

    嵌入式系統(tǒng)安裝docker的步驟

    系列文章目錄docker 門外初體驗(yàn)–嵌入式系統(tǒng)安裝docker(九)文章目錄系列文章目錄前言一、設(shè)計(jì)思路二、操作要點(diǎn)三、驗(yàn)證四、總結(jié)前言嵌入式開發(fā)精髓在于軟硬件的結(jié)合,如果嵌入式開發(fā)
    發(fā)表于 12-22 06:27

    如何配置嵌入式Servlet容器

    springboot默認(rèn)使用的是嵌入式的servlet容器(tomcat):定制和修改servlet容器的相關(guān)配置1)修改和server有關(guān)的配置(ServerProperties類
    發(fā)表于 12-24 06:56

    嵌入式系統(tǒng)原理、設(shè)計(jì)與應(yīng)用

    本書系統(tǒng)講述了嵌入式系統(tǒng)的基本概念、開發(fā)的原理及原則、軟件和硬件結(jié)構(gòu)的設(shè)計(jì)、嵌入式操作系統(tǒng)及網(wǎng)絡(luò)協(xié)議棧的總體構(gòu)架,以及
    發(fā)表于 04-25 17:07 ?2次下載

    嵌入式Servlet容器

    配置嵌入式Servlet容器##Spring Boot里面內(nèi)置了嵌入式的Servlet容器(tomcat)點(diǎn)擊pom.xml->右鍵->Diagrams->show
    發(fā)表于 10-20 17:51 ?3次下載
    <b class='flag-5'>嵌入式</b>Servlet<b class='flag-5'>容器</b>

    什么是嵌入式操作系統(tǒng) 常見的嵌入式系統(tǒng)有哪些

    、INTEGRITY、OSE、C ExecuTIve  什么是嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)是一種支持嵌入式
    發(fā)表于 10-21 09:36 ?27次下載
    什么是<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b> 常見的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>有哪些

    學(xué)好嵌入式開發(fā)有何好處?看看嵌入式的特點(diǎn)有哪些吧

      在全球半導(dǎo)體市場快速復(fù)蘇,消費(fèi)電子、通信以及嵌入式系統(tǒng)各個應(yīng)用領(lǐng)域快速發(fā)展,嵌入式微處理器技術(shù)不斷進(jìn)步的情況下,全球嵌入式系統(tǒng)產(chǎn)業(yè)規(guī)模繼
    發(fā)表于 11-03 09:51 ?14次下載
    學(xué)好<b class='flag-5'>嵌入式</b>開發(fā)有何<b class='flag-5'>好處</b>?看看<b class='flag-5'>嵌入式</b>的特點(diǎn)有哪些吧

    從事嵌入式軟件開發(fā)的好處是什么

    很多學(xué)員都有去了解過嵌入式,但是之后就杳無音信了,這是為什么呢?是大家對嵌入式沒有信心,還是對自己沒有信心呢?下面小編就來給大家介紹下從事嵌入式軟件開發(fā)的好處是什么吧。一、從事
    發(fā)表于 11-03 09:51 ?26次下載
    從事<b class='flag-5'>嵌入式</b>軟件開發(fā)的<b class='flag-5'>好處</b>是什么

    嵌入式系統(tǒng)設(shè)計(jì)的問答

    嵌入式系統(tǒng)的概念 嵌入式系統(tǒng)的基本架構(gòu) 嵌入式操作系統(tǒng)的基本組成和分類
    發(fā)表于 11-03 18:06 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)的問答

    嵌入式系統(tǒng)

    ,這一階段嵌入式系統(tǒng)的主要特點(diǎn)是系統(tǒng)結(jié)構(gòu)和功能比較單一,處理效率比較低;隨著微處理器的誕生,嵌入式系統(tǒng)得到了廣泛的發(fā)展,這一時期出現(xiàn)了一些商
    發(fā)表于 11-03 20:36 ?11次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>

    應(yīng)用嵌入式工控主板的好處都有哪些

    在我國加工制造領(lǐng)域和各種生產(chǎn)領(lǐng)域之中相關(guān)的自動技術(shù)應(yīng)用之下,要求更多專業(yè)的控制主板來提高系統(tǒng)運(yùn)轉(zhuǎn)的效率,其中嵌入式工控主板憑借著其自身獨(dú)特的優(yōu)勢,為我國更多的工業(yè)應(yīng)用帶來了良好的改變效果,而在長期
    發(fā)表于 04-22 16:01 ?766次閱讀

    使用MPU監(jiān)控創(chuàng)建安全可靠的嵌入式系統(tǒng) 使用MPU監(jiān)控的原因和好處

    在當(dāng)今快節(jié)奏的世界中,嵌入式系統(tǒng)在各個行業(yè)中發(fā)揮著至關(guān)重要的作用,涵蓋汽車和航空航天到醫(yī)療和工業(yè)自動領(lǐng)域。隨著嵌入式系統(tǒng)的日益復(fù)雜和關(guān)鍵性
    的頭像 發(fā)表于 07-21 11:04 ?875次閱讀