美国空军如何在 45 天内在 F-16 战机上部署 Kubernetes 和 Istio
作者 | Tom Krazit
策划 | 星璇
出品 | 51CTO技术栈(微信号:blog51cto)
Kubernetes、Istio、knative 和内部开发的“强化”容器规范现在已成为整个军队的默认软件开发平台。
1.美国首席软件官:军队不能落后于技术太多
随着混合云战略的发展,美国军方当然正在采取独特的方法。
根据美国首席软件官 Nicholas Chaillan 在圣地亚哥 KubeCon 2019 上的演讲,就像几乎所有其他事情一样,军事组织越来越依赖软件,他们正在转向 Kubernetes 和 Istio 等一系列开源云工具来完成工作。这些工具部署在一些非常“有趣”的地方,从武器系统到战斗机。是的,F-16 正在这些飞机内置的旧硬件上运行 Kubernetes。
“团队的一个重点是证明这是可以做到的,”柴兰说。他向空军及其合作伙伴发起挑战,要求在 45 天内在一架喷气式飞机上安装并运行 Kubernetes,虽然这听起来很困难,但该团队实现了目标,F-16 现在正在运行三个并发的 Kubernetes 集群,他说。
接下来,Chaillan 解释了空军(以及现在在他的指导下,国防部其他部门)如何在容器、Istio 和 Kubernetes上押下重注。对于整个军队的软件团队来说,它是一个灵活但通用的开发平台,可以防止供应商锁定。
Chaillan 说,大约 18 个月前,空军开始这个项目之前,大多数军事软件团队都在使用老式瀑布流程构建软件,新代码可能需要数年时间才能完全投入生产。即便如此,更新、测试甚至安全审查都严重依赖人力来完成商业部门早就决定应该自动化的任务。
在执行任务所需的技术方面,军队确实不能落后于主流太多。当竞争对手投资自己的软件功能时,他们可以在战场上获得优势。更新一些军方最关键的应用程序所需的冰川过程的安全影响是显而易见的。
“减少攻击面并能够减轻威胁对我们来说非常重要,”Chaillan 说。
2.美国国防部采用的企业 DevSecOps
Chaillan 和他的团队决定采用开源软件作为新开发平台的基础,他们将其称为DoD Enterprise DevSecOps Initiative。该倡议指定了 Kubernetes、Istio、knative 和内部开发的规范的组合,用于“强化”容器,并具有严格的安全要求,作为整个军队的默认软件开发平台。
Chaillan 表示,不同部门或地区的软件团队对于如何使用自己掌握的工具有一定的自由裁量权,但一切都必须构建在空军平台一团队提供的层上,并且有几件事不允许团队更改。说。有趣的是,鉴于围绕国防部上个月授予微软的 10 年期 JEDI 云合同的喧嚣,整个堆栈被设计为在Amazon Web Services 的 GovCloud 或 Microsoft Azure上运行。
彼时,Chaillan 在演讲结束后由云原生计算基金会主办的新闻发布会上进一步阐述了这一点,并解释说“我们不想陷入任何一件事。”出于这个原因,该团队选择使用 Kubernetes,并与 Istio 等其他项目一起为 DoD 堆栈的网络层提供安全性:“我们希望确保 Istio 在整个堆栈中持续运行,”Chaillan 说。
当然,一路上也遇到了很多挑战。Chaillan 说,Kubernetes 并不是为军队必须在许多情况下使用的断开连接的环境而设计的,这些环境涉及不应该到达互联网的数据。他暗示,国防部在解决项目的这一部分时将为 Kubernetes 维护人员提供很多建议,这可能有助于为 Kubernetes 在其他敏感操作环境中使用铺平道路。
“我们非常习惯使用互联网进行更新,并连接到互联网,直接从互联网获取更新。他说,对我们来说,我们必须将整个堆栈带在飞机或武器系统上,这些系统在设计上与互联网断开连接。
3.美国防部规模的开源堆栈
国防部的运作规模几乎不同于所有商业运作;Chaillan 必须对 100,000 人进行 DevSecOps 原理培训,更不用说新工具了。“文化转变很有趣,”当时他在新闻发布会上说道,语气似乎有些克制。
这一规模反映出美国国防部将把这个新的开发平台用于许多普通和非机密的应用程序:超过 200 万人为军队工作,其中大多数人都没有驾驶运行 Kubernetes 的 F-16。
“这架飞机很有趣,但它只是我们正在做的其余工作的一小部分。我们有很多业务系统正在迁移到云原生环境,迁移到微服务,从一开始就构建起来,”Chaillan 说。
Chaillan 说,整个 DoD Enterprise DevSecOps Initiative 堆栈都是开源的,任何人都可以查看。他说,军事机构在向开源社区发布更多工作方面正在“做得更好”,并指出“我们不会分叉(开源)软件。”
参考链接:https://thenewstack.io/how-the-u-s-air-force-deployed-kubernetes-and-istio-on-an-f-16-in-45-days/