精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

容器化對嵌入式系統的好處

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

容器是一種不斷發展的標準化和便攜式包裝技術。它們最初是為 Web 應用程序和微服務開發和部署而引入的,在 IT 行業中得到了廣泛的采用。

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

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

借助容器,組織及其供應商發現了驚人的敏捷性、靈活性和可靠性。公司使用容器來:

縮短軟件開發上市時間。

提高代碼質量興趣。

應對管理日益復雜的開發生態系統方面的挑戰。

在快速且不斷發展的市場中動態響應軟件交付試驗。

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

在進入細節和好處之前,讓我們將這項技術放在上下文中并回答以下問題。

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

容器如何適應軟件開發生命周期?

它們如何影響業務成果?

容器技術

開放容器計劃(OCI)是一個Linux基金會項目,由多家公司于2015年建立,旨在圍繞容器格式和運行時創建開放的行業標準。該標準允許兼容的容器在所有主要操作系統、硬件CPU 架構、公共/私有云等中無縫移植。

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

此外,容器共享一個操作系統。它們可以在以下任一設備上運行。

Linux、Windows 和 Mac 操作系統

虛擬機或物理服務器

開發人員的計算機或本地數據中心

公共云

poYBAGRTFsGAKcCfAAHpZq7LvJs438.png

圖 1:容器化架構

了解容器引擎的作用很重要,因為它提供了以下關鍵功能:

操作系統級虛擬化。

容器運行時,用于管理容器的生命周期(執行、監督、映像傳輸、存儲和網絡附件)。

用于隔離資源的內核命名空間。

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

其他值得一目了然的概念是容器映像和容器業務流程。

容器映像是具有可執行代碼的靜態文件,包含容器運行所需的所有內容。因此,容器是容器映像的運行實例。此外,在大型復雜部署中,容器化體系結構中可能有許多容器。管理所有容器的生命周期變得尤為重要。

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

現在,讓我們考慮一下將應用程序與其所有依賴項打包在一起的靈活性帶來的技術和業務收益,以便它們從一個計算環境快速可靠地運行到另一個計算環境。

技術和業務收益

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

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

我記得有一次我在桌面上開發和測試了一個嵌入式應用程序,它運行良好,所以我提交了代碼。很久以后,QA 團隊在驗收測試期間通知我該應用程序不起作用。我開始調試報告的問題,但無法產生所描述的問題。

我讓其他開發團隊成員參與進來,以幫助識別和解決問題,但我們就是無法重現問題。經過幾天的調查,與QA團隊合作,有時抓住稻草,我們終于開始調查QA的構建環境。

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

由于代碼邏輯是第一個疑似罪魁禍首,因此我們花費了大量人力和時間來調查和解決問題。調查問題需要更多開發和 QA 工程師花費更多時間。我們舉行了額外的會議和狀態報告,并推遲了其他任務。漣漪效應尚不完全清楚,但產生了巨大的成本。如果已經使用容器對開發環境進行集中管理和部署,它將使開發和 QA 團隊的部署環境保持同步,并且可以完全避免此問題。

嵌入式部署策略

可以通過多種方式配置和部署使用容器的軟件開發。組織可以根據正在使用的現有工具、所需的自動化級別和團隊組織來確定容器的使用并不斷發展。

策略可以是在開發人員的主機上使用公共容器來制作、構建和運行其應用程序。這可確保每個開發人員都使用完全相同的構建工具和運行環境的集合和版本。

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

組織也可能具有圖形分布的團隊。擁有容器映像庫可以促進共享容器并消除重新發明輪子。這通過為不同目的重復使用現有容器來提高效率。共享容器可確保整個開發供應鏈的質量。

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

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

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

構建過程中的這種容器化部署在代碼開發和代碼質量方面產生了驚人的效率。在這個快速和自動化的持續集成周期中,讓多名工程師并行工作,確保在整個產品生命周期中生成和維護堅實的軟件基礎。

poYBAGRTFrCAObCGAAFGJmwCems720.png

結論

構建嵌入式實時安全和安保關鍵系統的組織正在采用包含容器的 DevOps 工作流。其他人正在采用集裝箱化戰略。那些已經構建了 CI/CD 管道并已經使用它幾年的公司報告說,他們已經能夠更好地預測軟件的交付,并輕松適應需求和設計的變化。

隨著生產力的提高和測試成本的降低,開發團隊報告說產品質量和上市時間都有所提高。此外,嵌入式組織已通知我們 QA 問題報告和客戶票證的可衡量下降。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5072

    文章

    19026

    瀏覽量

    303518
  • Web
    Web
    +關注

    關注

    2

    文章

    1257

    瀏覽量

    69368
  • 操作系統
    +關注

    關注

    37

    文章

    6747

    瀏覽量

    123204
收藏 人收藏

    評論

    相關推薦

    淺析嵌入式Linux容器技術

    嵌入式Linux容器技術一、Linux容器技術Linux Container容器是一種內核虛擬技術,可以提供輕量級的虛擬
    發表于 10-27 08:56

    從事嵌入式軟件開發有什么好處

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

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

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

    嵌入式系統概論與嵌入式系統的特點

    嵌入式系統概論嵌入式系統的特點:專用性:與具體應用緊密結合,具有很強的專用性隱蔽性:嵌入式系統
    發表于 12-21 08:21

    嵌入式系統安裝docker的步驟

    系列文章目錄docker 門外初體驗–嵌入式系統安裝docker(九)文章目錄系列文章目錄前言一、設計思路二、操作要點三、驗證四、總結前言嵌入式開發精髓在于軟硬件的結合,如果嵌入式開發
    發表于 12-22 06:27

    如何配置嵌入式Servlet容器

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

    嵌入式系統原理、設計與應用

    本書系統講述了嵌入式系統的基本概念、開發的原理及原則、軟件和硬件結構的設計、嵌入式操作系統及網絡協議棧的總體構架,以及
    發表于 04-25 17:07 ?2次下載

    嵌入式Servlet容器

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

    什么是嵌入式操作系統 常見的嵌入式系統有哪些

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

    學好嵌入式開發有何好處?看看嵌入式的特點有哪些吧

      在全球半導體市場快速復蘇,消費電子、通信以及嵌入式系統各個應用領域快速發展,嵌入式微處理器技術不斷進步的情況下,全球嵌入式系統產業規模繼
    發表于 11-03 09:51 ?14次下載
    學好<b class='flag-5'>嵌入式</b>開發有何<b class='flag-5'>好處</b>?看看<b class='flag-5'>嵌入式</b>的特點有哪些吧

    從事嵌入式軟件開發的好處是什么

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

    嵌入式系統設計的問答

    嵌入式系統的概念 嵌入式系統的基本架構 嵌入式操作系統的基本組成和分類
    發表于 11-03 18:06 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>設計的問答

    嵌入式系統

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

    應用嵌入式工控主板的好處都有哪些

    在我國加工制造領域和各種生產領域之中相關的自動技術應用之下,要求更多專業的控制主板來提高系統運轉的效率,其中嵌入式工控主板憑借著其自身獨特的優勢,為我國更多的工業應用帶來了良好的改變效果,而在長期
    發表于 04-22 16:01 ?751次閱讀

    使用MPU監控創建安全可靠的嵌入式系統 使用MPU監控的原因和好處

    在當今快節奏的世界中,嵌入式系統在各個行業中發揮著至關重要的作用,涵蓋汽車和航空航天到醫療和工業自動領域。隨著嵌入式系統的日益復雜和關鍵性
    的頭像 發表于 07-21 11:04 ?834次閱讀