對于嵌入式應(yīng)用程序開發(fā)人員來說,開源軟件似乎是一個絕妙的選擇,無論是用作應(yīng)用程序的基礎(chǔ),還是使用開源工具來加速開發(fā)過程和加快上市時間。開源軟件就其本質(zhì)而言是免費的——這意味著無需成本或付款。在管理人員不斷嘗試限制開發(fā)成本的環(huán)境中,開源聽起來是個好主意,并且根據(jù)每個開發(fā)人員的獨特情況,它可能只是解決預(yù)算限制所需的解決方案。
考慮一些專業(yè)人士。首先,開源很容易獲得。使用開源,開發(fā)人員只需下載和使用該軟件。開源代碼質(zhì)量也可以是積極的。如果代碼已經(jīng)不錯,它只會隨著社區(qū)的改進而改進。利用開源社區(qū)獲得幫助、支持和功能開發(fā)是開源的最大資產(chǎn)之一?!拔覀兌荚谝黄稹钡母杏X有助于所有船只升起。
總而言之,這些好處可以讓開發(fā)人員懷疑開源是否存在不利因素。事實證明,開源確實有隱藏的成本,只有在組織處于開發(fā)過程中時才會顯現(xiàn)出來。雖然開源產(chǎn)品可能適合某些開發(fā)人員,但其他使用開源產(chǎn)品的人在考慮替代方案為時已晚后可能會遇到各種陷阱。
讓我們回顧一下開源對開發(fā)過程的四個關(guān)鍵部分的影響——使用開源代碼作為開發(fā)嵌入式應(yīng)用程序的基礎(chǔ)、定制開源平臺以加速構(gòu)建、開源蔓延和可見性以及對時間敏感問題的支持。
為嵌入式環(huán)境定制開源
在考慮將開源作為網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺、機頂盒平臺、醫(yī)療設(shè)備或任何其他嵌入式應(yīng)用程序的基礎(chǔ)時,請考慮滿足特定行業(yè)需求所需的定制量。
在實施一個新的開源項目時,一個團隊要么需要使用他們自己團隊的寶貴資源來定制軟件以滿足其環(huán)境的需求,要么使用資金聘請顧問來做同樣的事情。顧問路線可以節(jié)省定制軟件的時間,但它仍然需要開發(fā)人員花時間管理流程。
維護開源軟件是另一個時間槽。十分之九,腳本和修復(fù)是可行的,但代價是開發(fā)人員可以更明智地花費在開發(fā)產(chǎn)品上的時間,而不僅僅是修復(fù)開源軟件。由于開發(fā)人員的高成本,這可能占分配給“免費”解決方案的開發(fā)資源的很大一部分。
優(yōu)化開源以加速構(gòu)建
開發(fā)人員需要以最大化工程組織生產(chǎn)力的方式優(yōu)化他們的構(gòu)建。這意味著開發(fā)人員不會坐在那里等待他們的個人構(gòu)建完成——這個過程通常最多需要幾分鐘或幾小時,最壞的情況是幾天。當(dāng)今市場上的構(gòu)建加速器工具主要通過分布在大型構(gòu)建云中的稱為依賴感知并行性的過程以及巧妙的緩存和避免技術(shù)來加速構(gòu)建,從而實現(xiàn)快速可靠的增量構(gòu)建和完整構(gòu)建。一些大型開發(fā)組織已經(jīng)使用這些加速器優(yōu)化了數(shù)據(jù)中心,以加快分布式全球團隊的構(gòu)建速度。
開源選項可用于管理和加速軟件構(gòu)建,但它們有明確的限制和警告。例如,在使用通用軟件構(gòu)建工具(如 GNU Make 和 SCons)時,構(gòu)建必要的可擴展性和可靠性以支持和加速適當(dāng)級別的軟件構(gòu)建通常成本很高。隨著組織擴大到更多的開發(fā)人員、更多的項目以及在整個開發(fā)生命周期中對更快的反饋循環(huán)的更大需求,這個問題會成倍增加。
開源構(gòu)建工具的另一個常見問題是缺乏對軟件構(gòu)建結(jié)構(gòu)內(nèi)部細節(jié)的可見性和“可調(diào)試性”,這導(dǎo)致希望變得更加高效和敏捷的組織需要進行昂貴的手動維護和較長的交付周期。一旦構(gòu)建失敗,返回并確定出現(xiàn)問題的可見性根本不存在。隨著多個團隊共同努力將產(chǎn)品推向市場,團隊之間缺乏可見性會減慢故障排除速度,從而加快產(chǎn)品上市速度。在一個需要上市時間就是一切的行業(yè),并且越來越需要嵌入式應(yīng)用程序的多個版本和修復(fù)程序,這種級別的支持根本是不可接受的。
在考慮開源工具的替代方案時,團隊?wèi)?yīng)確保加速工具不會導(dǎo)致構(gòu)建中斷,可以利用現(xiàn)有的硬件資源進行并行化,并且可以使用現(xiàn)有的工具集和流程。
一個這樣的替代方案是 Electric Cloud 的 ElectricAccelerator(圖 1),它在單臺機器上或跨標(biāo)準服務(wù)器集群執(zhí)行并行構(gòu)建,將完整或增量構(gòu)建時間減少多達 20 倍。這種加速的關(guān)鍵在于獲得專利的依賴管理技術(shù),該技術(shù)在文件級別檢測和管理依賴關(guān)系,以確保準確的構(gòu)建。ElectricAccelerator 可插入現(xiàn)有的構(gòu)建和發(fā)布架構(gòu),無需修改現(xiàn)有的構(gòu)建腳本和工具。作為構(gòu)建工具的附加組件,ElectricInsight 提供了一個直觀的圖形表示,描述了構(gòu)建的結(jié)構(gòu)和運行方式,使構(gòu)建管理人員能夠查明所有構(gòu)建中的性能問題或沖突。而不是手動傾倒數(shù)千行構(gòu)建輸出文件,
圖 1: ElectricAccelerator 并行構(gòu)建管理底層復(fù)雜依賴項。插圖報告顯示了如何優(yōu)化硬件利用率以減少構(gòu)建時間。
開源蔓延和可見性
因為開源平臺很容易獲得,所以大多數(shù)部門最終都會實施自己的個人版本,通常是為了滿足他們的特定需求而定制的。對于較大的組織,這可能意味著在同一個開發(fā)組織中實施了數(shù)十個持續(xù)集成工具實例,從而創(chuàng)建了一個不受管理的、孤立的環(huán)境,或者換句話說,一個開源的蔓延。
這種蔓延所產(chǎn)生的成本可能是巨大的。首先,這不是一個容易擴展的模型。其次,管理層對開發(fā)工作的進展幾乎沒有可見性。由于缺乏標(biāo)準化,無法真正評估進度或解決相互依賴的項目之間的問題。從管理的角度來看,這是令人沮喪的,因為工作不協(xié)調(diào),對昂貴資源的要求來自四面八方。
開源和支持
在使用開源時,開發(fā)人員總是面臨支持的問題。當(dāng)必須解決時間緊迫的問題時,這些問題可能需要直接提交給社區(qū),因為沒有官方支持系統(tǒng)。影響組織收入的關(guān)鍵任務(wù)應(yīng)用程序必須與可追究責(zé)任的專業(yè)人員合作,以對時間敏感的方式解決。有人隨叫隨到來解決問題而不是依賴社區(qū),這是有話要說的。
總而言之,所有這些問題很容易復(fù)合,從而在任何嵌入式開發(fā)過程中引入重大問題。這并不是說開源不能成為嵌入式開發(fā)人員的有價值的工具——它肯定可以。但是,使用開源進行開發(fā)工作的成本具有局限性,并且需要組織必須預(yù)算的時間和精力。因此,當(dāng)開發(fā)人員決定依賴開源技術(shù)時,他們應(yīng)該確保了解“免費”的真實價格。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19673瀏覽量
317535 -
機器
+關(guān)注
關(guān)注
0文章
790瀏覽量
41284 -
開源
+關(guān)注
關(guān)注
3文章
3688瀏覽量
43829
發(fā)布評論請先 登錄
AN20-儀表低通濾波器的應(yīng)用注意事項

PCBA生產(chǎn)注意事項

TPA3140D2 EMC設(shè)計注意事項

TPS65233、TPS65235的LNB設(shè)計注意事項

脈沖式充電器的使用注意事項
智能高端開關(guān)的故障和正常診斷注意事項

人機接口電感式觸摸按鈕的設(shè)計注意事項

評論