美国空军首席软件官Nicholas Chaillan在2019年KubeCon上发表的一份报告称,军事组织越来越依赖软件,正在转向Kubernetes和Istio等一系列开源云工具。这些工具部署在一些非常有趣的地方,从武器系统到战斗机。是的,F-16在喷气式飞机的传统硬件上运行着Kubernetes。
“重要的一点是证明这是可以做到的。”Chaillan说。他表示,他向空军及合作伙伴提出要求,在45天内让Kubernetes在喷气式飞机上运行,虽然这听起来很困难,但该小组达到了目标,F-16目前正在同时运行三个Kubernetes集群。
随之而来的问题是,为什么要这么做?在KubeCon开幕式主题演讲后的演讲中,Chaillan解释了空军以及国防部的其他部门如何对容器、Kubernetes和Istio下大注的。这是一个灵活但通用的平台,可以防止供应商锁定。
Chaillan说,大约18个月前,在空军开始这个项目之前,大多数军事软件团队都在使用老式的瀑布式流程来构建软件,而新代码可能需要数年的时间才能完全投入生产。即便如此,更新、测试甚至安全审查仍然严重依赖人力来完成这些早就应该自动化的任务。
在执行任务所需的技术方面,军方实在不能落后主流太远。Chaillan和他的团队决定将开源软件作为新开发平台的基础,倡议将Kubernetes、Istio、knative和内部开发的“强化”容器规范与一组严格的安全要求结合起来,作为默认软件开发平台。
Chaillan说,不同部门或地区的软件团队对如何使用他们所掌握的工具有一定的自由裁量权,但一切都必须建立在Platform One Team提供的层上,有几件事情是不允许改变的。
在CNCF主办的一个记者招待会上,Chaillan解释道:“我们不想被锁定。”为此,团队选择使用Kubernetes,其他项目如Istio为DoD堆栈网络层提供安全保障。“我们要确保Istio在整个堆栈中不间断地运行。”
当然,一路上有很多挑战。Chaillan说,Kubernetes并不是为在许多情况下必须使用的非连接环境而设计的,这些情况下涉及的数据永远不应该传到互联网上。
“我们非常习惯于使用互联网进行更新,并且可以连接到互联网,直接获取更新。而这些飞机或武器系统是设计上与互联网断开的。”
国防部运维的规模惊人。Chaillan必须按照DevSecOps的原则培训10万人,更不用说新工具了。
这反映出,国防部将利用这一新的开发平台来开发许多普通和非保密的应用。“喷气式飞机很有趣,但它只是我们工作的一小部分。我们有很多业务系统正在迁移到云原生环境,迁移到微服务,从一开始就在构建中。”Chaillan说。
Chaillan表示,整个国防部Enterprise DevSecOps Initiative堆栈都是开源的,任何人都可以查看。军事机构在向开源社区发布更多工作方面做得“越来越好”,“我们不会分叉开源软件”。
原文链接:https://thenewstack.io/how-the-u-s-air-force-deployed-kubernetes-and-istio-on-an-f-16-in-45-days/