美國空軍如何在45天內在F-16戰斗機上部署Kubernetes與Istio
隨著混合云戰略的不斷普及,美國軍方也開始采用適合自己的獨特發展方案。
根據美國空軍首席軟件官Nicholas Chaillan在本次于圣迭戈召開的KubeCon 2019大會上發布的報告,目前空軍方面正在嘗試利用Kubernetes及Istio等一系列開源云工具支持業務體系。這些工具往往會被部署在各類非常規平臺之上,包括武器系統甚至戰斗機當中。事實上,軍方確實著手嘗試在F-16噴氣式戰斗機的內置硬件上運行Kubernetes。
Chaillan表示,“對團隊來說,目前的主要任務就是證明這種嘗試的可行性。”他向空軍及其合作伙伴提出一項挑戰,要求在45天之內將Kubernetes運行在噴氣式飛機上,并保證飛機仍能夠正常運作。雖然聽起來相當困難,但該團隊成功完成了任務,目前這架F-16戰機并發運行有三套Kubernetes集群。
說到這里,很多朋友自然會想到下一個問題:這么做的理由是什么?在KubeCon開幕日的簡短主題演講當中,Chaillan介紹了美國空軍以及國防部其他幾個部門如何在他的領導下大力推進容器技術實驗,包括如何開展容器、Kubernetes以及Istio部署項目。這將是一套靈活的通用性開發平臺,面向各軍種的內部軟件團隊,能夠有效防止供應商鎖定問題的出現。
Chaillan介紹稱,在空軍啟動此次項目約18個月之前,大部分軍事軟件團隊還在利用陳舊的瀑布式流程進行軟件構建,且新編寫的代碼往往需要數年時間才能得到實際應用。更可怕的是,更新、測試乃至安全性審查等在商業部門當中早已全面實現自動化的任務,軍方仍在廣泛依賴于人工執行。
考慮到肩負著重大國防安全職責,軍事組織顯然不能在技術層面長期落后于主流。一旦競爭對手投資發展軟件功能,并在戰場上占據優勢,那么國家安全將很快面臨挑戰。此外,緩慢的關鍵應用程序更新速度,也會帶來大量不容忽視的負面影響。
Chaillan指出,“因此,減少攻擊面并降低威脅水平,已經成為我們必須面對的頭等大事。”
國防部Enterprise DevSecOps計劃
Chaillan和他的團隊決定將開源軟件作為新型開發平臺的實現基礎,并建立起國防部Enterprise DevSecOps計劃。此項計劃要求將Kubernetes、Istio、Knative以及一整套內部開發規范(用于強化容器技術,從而滿足更為嚴格的安全要求)結合起來,共同構建起面向軍方整體的默認軟件開發平臺。
來自不同分支機構或地區的軟件團隊,將在選擇自有工具方面擁有一定的處置權,但前提是必須以空軍Platform One團隊提供的底層方案為基礎。Chaillan強調,各方不得對該底層方案做出任何修改。
Chaillan在演講后由云原生計算基金會召開的新聞發布會上,又就這一問題做出了進一步說明。他解釋稱,“我們希望破除一切束縛。”出于這一考量,該團隊決定將Kubernetes與其他項目協同使用。Chaillan表示,Istio等項目可以為國防部技術棧的網絡層提供安全保障,“我們希望確保Istio在軍方的整體技術棧中持續運行。”
當然,整個過程也不乏各類實際挑戰。Chaillan指出,Kubernetes在原始設計方面,并沒有考慮到美國軍方所面臨的不連續應用場景,特別是長時間斷網的使用環境。他暗示稱,國防部將參與Kubernetes社區開發,向項目維護者提出相關建議,從而為Kubernetes向各類敏感運行環境進軍的過程鋪平道路。
他指出,“我們已經習慣于利用互聯網進行軟件更新,習慣于隨時接入互聯網,并下載需要的各類資源。但對我們來說,要把這一切技術棧轉移到”噴氣式戰斗機或者武器系統上,就必須要考慮到無法與互聯網連接的情況。
國防部建立的超大規模開源堆棧
國防部的業務規模超越幾乎任何商業組織;Chaillan必須根據DevSecOps原則對10萬軍人進行培訓,同時指導他們如何使用新型工具。他在新聞發布會上相當克制地表示,“這將是一場非常有趣的文化轉變。”
如此龐大的規模,也反映出國防部勢必會利用這套全新開發平臺處理各類常規、非保密性應用:目前美國軍方工作人員超過200萬,其中大多數人顯然沒有接觸過運行有Kubernetes的F-16戰斗機。
Chaillan指出,“這架噴氣戰機非常有趣,但只是我們當前工作中的很小一部分。我們正著手將大量業務系統遷移至云原生環境,遷移至微服務架構,同時從零開始構建各類新型解決方案。”
整個國防部Enterprise DevSecOps計劃將完全采用開源技術堆棧,可供任何軍方工作人員使用。他指出,美國軍方未來還將把更多工作交由開源社區處理,同時強調“我們不會對開源軟件進行分叉。”




























