為智能邊緣開發(fā)系統(tǒng)的組織面臨著開發(fā)、測試和部署這些系統(tǒng)的巨大成本。DevOps實踐可以極大地提高開發(fā)人員之間的效率和協(xié)作,但是在這個領(lǐng)域采用它尤其困難。所涉及的技術(shù)數(shù)量龐大,涵蓋實時嵌入式系統(tǒng)、不可預(yù)測鏈路上的可靠通信以及彈性云基礎(chǔ)設(shè)施中的集中管理,需要跨許多專業(yè)團隊和工具的多樣化專業(yè)知識。在這篇文章中,我們將回顧一些團隊可以提高開發(fā)人員效率的方法。通過標(biāo)準(zhǔn)化工具、流程和開發(fā)人員體驗,嵌入式系統(tǒng)團隊可以從自動化、易用性、一致性以及寶貴資源、配置、組件和代碼的重用中受益。
自動化支持嵌入式開發(fā)運維
自動化在DevOps實踐的成功實施中起著至關(guān)重要的作用。通過自動化重復(fù)任務(wù),開發(fā)人員可以節(jié)省時間和精力,同時提高一致性和可預(yù)測性,使他們能夠?qū)W⒂诟邇r值的活動。自動化測試和部署流程支持持續(xù)交付和集成,幫助團隊更快地發(fā)布軟件更新,而不會影響質(zhì)量。
嵌入式開發(fā)人員當(dāng)然知道這一點,但是很難找到既能解決嵌入式特有的挑戰(zhàn),又能很好地適應(yīng)自動化工作流的工具。例如,嵌入式編譯器可能只在特定的運行時環(huán)境中可用,而廣泛的系統(tǒng)要求可能會在單個項目中施加多個可能相互沖突的約束。
Jenkins等自動化工具旨在提供幫助使自動化管道來構(gòu)建和部署,以簡化這個過程,但它們也需要配置和維護,這消耗了寶貴的開發(fā)人員帶寬。在需要在多個運行時環(huán)境中支持工具的項目中尤其如此,因為每個環(huán)境可能需要單獨維護。
有了支持項目所需的各種工具的自動化平臺,嵌入式開發(fā)團隊可以實現(xiàn)持續(xù)集成、自動化測試和自動部署到所有必要的環(huán)境中,從而實現(xiàn)更快、更可靠的發(fā)布。
標(biāo)準(zhǔn)化工具和流程
一個合適的自動化平臺為工具和流程的標(biāo)準(zhǔn)化奠定了基礎(chǔ),為嵌入式系統(tǒng)開發(fā)帶來了諸多好處。它簡化了新團隊成員的入職,確保了開發(fā)實踐的一致性,并通過為每個相關(guān)人員提供一個公共基礎(chǔ)來鼓勵協(xié)作。
在持續(xù)集成和持續(xù)部署(CI/CD)平臺上實現(xiàn)標(biāo)準(zhǔn)化有助于簡化構(gòu)建、測試和部署過程。通過選擇與嵌入式系統(tǒng)開發(fā)工作流程集成良好的工具,開發(fā)人員可以自動執(zhí)行重復(fù)性任務(wù),例如編譯代碼、運行測試以及將軟件部署到目標(biāo)平臺。
鑒于智能邊緣系統(tǒng)的多樣性,簡單地訪問測試和生產(chǎn)系統(tǒng)可能具有挑戰(zhàn)性。嵌入式系統(tǒng)的開發(fā)硬件可能很少,通常需要在更廣泛的測試工具中進行手動配置,并且可能被隔離在專門的實驗室中。嵌入式團隊需要確保他們有工具,可以從自動化管道可靠地訪問測試和生產(chǎn)系統(tǒng)。
對于云基礎(chǔ)架構(gòu)和其他更易訪問的環(huán)境,采用基礎(chǔ)架構(gòu)即代碼(IaC)實踐可以實現(xiàn)環(huán)境設(shè)置和配置的自動化。通過在代碼中定義基礎(chǔ)設(shè)施需求,開發(fā)人員可以輕松地供應(yīng)和管理目標(biāo)平臺,從而減少設(shè)置和配置時間。
一致性和易用性
對于所有開發(fā)團隊來說,確保工具、過程和環(huán)境易于使用并對所有團隊成員保持一致是非常重要的,尤其是對于嵌入式團隊,因為他們使用了如此多的專業(yè)工具。開發(fā)人員需要無縫、直觀的體驗來最大化生產(chǎn)力,這可以通過采用具有用戶友好界面并提供清晰文檔的工具來實現(xiàn)。
對于開發(fā)者來說,“用戶友好”往往有多重含義。他們可能希望有一個直觀的GUI供臨時使用,一個靈活的CLI供腳本和編排工具使用,一個強大的API供編程使用。
標(biāo)準(zhǔn)化開發(fā)環(huán)境和創(chuàng)建可重復(fù)的構(gòu)建也很重要。通過利用Docker和Kubernetes等工具的容器化等技術(shù),開發(fā)人員可以在軟件開發(fā)生命周期的不同階段創(chuàng)建一致和隔離的環(huán)境。這有助于避免配置差異,減少出錯的機會,并改善團隊成員之間的協(xié)作。
重用資源、配置、組件和代碼
嵌入式開發(fā)項目中有如此多的專業(yè)團隊和工具,重復(fù)工作是一個真正的問題。在一個通用的DevOps平臺上實現(xiàn)標(biāo)準(zhǔn)化提供了一個中心位置,在這里可以在適當(dāng)?shù)臅r候共享和重用有價值的資源、配置、組件和代碼。例如,未來的項目經(jīng)常利用類似的硬件平臺,業(yè)務(wù)邏輯可以打包成可共享的組件。通過創(chuàng)建可重用資產(chǎn)的存儲庫,開發(fā)人員可以利用現(xiàn)有的解決方案,減少開發(fā)時間,并最小化出錯的風(fēng)險。
此外,實現(xiàn)模塊化設(shè)計原則和開發(fā)庫和框架有助于創(chuàng)建可重用組件的目錄。這減少了冗余,簡化了維護工作,并加快了開發(fā)周期。
用嵌入式系統(tǒng)實現(xiàn)開發(fā)
掌握嵌入式系統(tǒng)的DevOps藝術(shù)會給開發(fā)團隊帶來巨大的好處。通過標(biāo)準(zhǔn)化工具、流程和開發(fā)人員體驗,開發(fā)人員可以提高效率、協(xié)作和整體生產(chǎn)力。對資源、配置、組件和代碼的自動化、易用性、一致性和重用的關(guān)注,使團隊能夠更有效地交付高質(zhì)量的軟件,滿足現(xiàn)代開發(fā)對智能邊緣的需求。