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