近年來隨著民用衛星的蓬勃發展,例如SpaceX,可藉由發射衛星來建立衛星網路,來打破地球上的地理藩籬;又由於民用衛星的需求增長,衛星軟體的開發也愈來愈普及,衛星軟體需要藉由導入敏捷方法,可在衛星與地面站有限的連線時間內,有效提升衛星軟體的安全性、改善衛星功能與效能。
衛星軟體的運作和維護方式
衛星需要藉由地面安裝和上傳的軟體來控制、診斷及維護,而且衛星具有同步軌道特性,衛星和地面控制站需要在特定時間點建立連線,才能進行衛星電波的上傳和下載,將檔案上傳到衛星上進行更新和維護。
另外,衛星的架構有別於地面伺服器,衛星軟體的DevOps不光是軟體的內部開發和測試,而且還要在衛星上實際驗證,失敗所帶來的風險和停機衝擊,勢必會比地面伺服器還可觀;衛星軟體開發維運除了傳統DevOps的開發維運兩團隊外,還要加入衛星監控的團隊並與之協調,才能將軟體藉由衛星團隊上傳到衛星上,並由衛星團隊進行監控與診斷。
Umbra的敏捷衛星軟體開發維運方法
以2015於美國加州成立的新創公司Umbra為例,該公司著重在衛星軟體的開發,尤其「合成孔徑雷達」電波成像技術;為了從衛星上下載衛星照片,並從地面站控制、診斷和維護人造衛星,Umbra的團隊於今年八月開始探討DevOps應用在衛星領域的可行性。
Umbra團隊指出,將軟體上傳到衛星與上傳到K8S等伺服器容器有所不同,衛星軟體的Debug也比地面伺服器更具有挑戰性;因此,衛星軟體的DevOps得要比地面伺服器更需要進行更完整、更萬無一失的測試,進行更高強度的把關和驗證,才能在衛星與地面站建立聯繫時,準確地將衛星軟體的更新套件上傳到衛星上穩定運作。
資料來源: (Brown, 2021)
圖1:Umbra在衛星軟體敏捷實務的分析
小結
由於衛星的架構和部署型態跟地面伺服器有所差異,因此在衛星軟體導入DevOps模式時,得考量衛星軟體在部署時的物理特性和運作模式,使得開發維運團隊更需要借助衛星團隊,並與之頻繁協調協作。另因應SpaceX等衛星網路和5G趨勢,衛星軟體的技術門檻也逐漸從NASA專業級,向下延伸的民間用途,讓DevOps團隊能接觸更多衛星軟體的開發、維護和監控作業,讓軟體開發生命週期(SDLC)從地面伺服器延伸到衛星上,帶動DevOps的技術升級。
參考資料