- Aiden's Lab 뉴스레터
- Posts
- 미 공군이 F-16 전투기에 Kubernetes를 띄운 사연
미 공군이 F-16 전투기에 Kubernetes를 띄운 사연
미 국방부의 DevSecOps와 클라우드 네이티브 툴 도입 사례를 살펴봅니다.
안녕하세요, Aiden’s Lab 뉴스레터입니다.
Kubernetes은 이제 사실상 표준이 된 컨테이너 오케스트레이션 툴입니다. 개발한 서비스를 컨테이너로 배포하는 IT 기업이라면 이미 Kubernetes를 사용하고 있거나, 도입을 고려한 경우가 대부분이라는 뜻인데요.
실제로 CNCF와 Red Hat의 분석에 따르면 최근 컨테이너 오케스트레이션 시장의 92%를 Kubernetes가 점유하고 있고, Kubernetes를 사용 중인 조직의 91%는 1000명 이상의 직원을 고용 중인 대기업이라고 합니다. '사실상 표준'이라는 수식어가 어울리는 분석 결과죠?
이번 아티클에선 조직의 고질적인 문제를 해결하기 위해 DevSecOps와 Kubernetes를 도입한 사례를 살펴보려 합니다.
일반적인 기업의 DevOps 도입 사례 소개 아니냐고요? 걱정 마세요. 이번 이야기의 주인공은 미 국방부입니다.
미 국방부가 전통적인 개발 방식에서 벗어날 수 있었던 이유
폐쇄적이어도 전혀 이상하지 않은 미 국방부의 소프트웨어 개발 주기는 전통적인 폭포수 모델에 가까웠습니다. 규모가 있는 시스템의 소프트웨어 같은 경우, 배포되기까지 3년에서 무려 10년까지도 소요되었다고 하는데요.
폭포수 모델이란?
소프트웨어 개발 프로세스가 분석 -> 설계 -> 개발 -> 유지보수 순으로 흐르는 전통적인 개발 방식을 말합니다.
이전 단계를 완전히 마치지 않으면 다음 단계로 나아갈 수 없는 것이 가장 큰 특징인데요. (예: 개발 단계로 넘어가려면 설계 단계까지 완전히 끝나야 함)
이런 점이 아래로만 계속 떨어지는 폭포수 같다고 해서 폭포수 모델이라고 합니다.
MVP(최소 기능 제품)는 물론, 점진적 배포 기법도, 사용자로부터의 피드백을 반영하는 시스템도 전혀 없었다고 합니다. 보안은 그저 프로그램 개발 이후의 관심사였다고 하니, 우리가 상상할 수 있는 가장 전통적인 개발 프로세스였던 셈이죠.
하지만 당시 미 공군의 최고 소프트웨어 책임자였던 Nicolas Chaillan은 이런 안타까운 상황을 그냥 보고 지나칠 수 없었습니다. 미국을 향한 보안 위협은 빠르게 진화하고 있는데 당시 개발 방식으로는 이에 대응하기 어렵다는 것이 가장 큰 이유였습니다.
그래서 Chaillan은 2018년에 국방부를 위한 DevSecOps 레퍼런스 디자인을 기획합니다.
쉽게 말하면 국방부 소속 개발팀에게 새롭게 제안하는 개발 프레임워크라고 할 수 있는데요. Kubernetes와 Istio 등 여러 오픈소스 기술 사용을 명시할 뿐만 아니라, 애플리케이션을 컨테이너화할 때 적용해야 할 보안 조치까지 내부적으로 규정한 것입니다.
게다가 이 기획을 적절히 따르는 개발팀은 미 국방부 차원의 지속적인 승인을 얻을 수 있도록 지원했습니다. 즉, 개발에 따르는 행정 부담을 최소화해줘서 많은 개발자들이 이 기획을 따르도록 유도한 거죠.
Chaillan의 이 파격적인 기획은 미 국방부가 DevSecOps를 도입하는 포문을 열었다고 해도 과언이 아닙니다.
근데 미 국방부의 DevSecOps 기획에 왜 오픈소스 기술이 쓰였을까요?
당시에 이미 AWS의 GovCloud나 MS의 Azure 등 정부 기관이 사용할 수 있는 클라우드 서비스도 존재했습니다. 하지만 특정 기업(벤더)의 클라우드 서비스를 사용할 경우, 나중에 해당 기업이 제공하지 않는 기능이 필요할 때나 그 기업의 제공하는 기능이 마음에 들지 않을 때 기존 시스템을 변경하기 어려울 수 있습니다. 이런 걸 벤더에 종속되는 위험이 있다고 하는데요.
그래서 Chaillan은 벤더에 종속되는 위험을 피하고자 새로운 DevSecOps 기획에 Kubernetes와 Istio 등 오픈소스 클라우드 네이티브 툴을 채택했다고 합니다.
특히 Kubernetes 채택 과정에서는 추상화, 오케스트레이션, 탄력성, 자기회복성이라는 가치가 주목되었습니다.
좀 더 풀어서 설명하자면...
개발한 소프트웨어를 빠르게 배포하고(추상화),
안정적으로 운영할 수 있으며(오케스트레이션, 탄력성),
문제가 생긴 소프트웨어는 자동으로 다시 배포되는 것(자기회복성)은
Kubernetes의 대표적인 특징입니다.
Chaillan이 주목한 Kubernetes의 가치는 '빠르게 배우고, 빠르게 실패하며, 같은 이유로 두 번 이상 실패하지 않는다(Learn fast, fail fast, and don’t fail twice for the same reason)'는 새로운 DevSecOps 기획의 정신과 부합되는 것이었고, 이것이 Kubernetes가 선정된 이유입니다.
하늘 위를 비행하는 전투기에 Kubernetes 클러스터를 구축해야 했던 사연
DevSecOps 기획이 구상된 이후, 미 국방부 내에 개발 문화 전파를 본격화하기 위해 개발팀들은 클라우드 네이티브의 모범 사례로 MVP를 만들기 시작했습니다. 간단한 애플리케이션을 개발해서 선보이는 시도도 있었죠.
하지만 Chaillan은 좀 더 대담한 전략을 택했습니다. 조직의 상급자가 주목할 만한 특별한 걸 보여줘야 위로부터의 지원을 받을 수 있다고 판단한 그는, F-16 전투기 내에서의 Kubernetes와 Istio 동작 시연을 구상한 것입니다.
당시 전투기에 내장된 전통적인 하드웨어의 특성상 2분 내에 Kubernetes 클러스터와 Istio 서비스 메시까지 띄워야 했지만, 2019년 가을에 시작한 이 대담한 도전은 45일 동안 계속되었고 마침내 성공합니다.
Kubernetes 클러스터와 Istio 서비스 메시 구동뿐만 아니라, 대여섯 개의 애플리케이션을 클러스터 위에서 동작해내는 등 기존의 목표를 뛰어넘는 성과를 이뤄냈죠.
그동안 전투기 위에서는 45년 전 등장한 ADA와 같은 오래된 프로그래밍 언어로 짜인 프로그램만 돌릴 수 있었는데, 이번 테스트 이후로 Go나 Python, Java와 같은 비교적 최신 언어로 개발한 프로그램도 동작시키는 데에 성공한 것입니다.
물론 Kubernetes는 극한의 상황에서 동작하도록 만들어진 것이 아닙니다.
하지만 미 공군의 개발팀은 결국 비행 중인 F-16 전투기에서 Kubernetes 클러스터를 운영하는 데에 성공했고, 여러 전투기에 Kubernetes 클러스터 3개를 동시에 동작시키기도 했습니다. 이는 안정성 측면에서 Kubernetes의 가능성을 확인할 수 있는 사례라고 볼 수 있죠.
여담으로, 이번 테스트를 주도한 Chaillan에 따르면 해당 시연 이후 인지된 개선점들을 미 국방부가 Kubernetes 메인테이너들에게 제안했다고 하네요.
미 국방부가 도입한 DevSecOps의 현재와 미래
미 국방부 DevSecOps 기획의 일환으로 미 공군이 개발한 DevSecOps 플랫폼 Platform One은 미 국방부의 개발자들이 AI와 같은 기술을 활용해 새로운 도전을 빠르게 수행하는 데에 도움이 되고 있습니다.
Chaillan은 미 국방부에서 개발된 어떤 애플리케이션도 수일 내에 배포될 수 있기 때문에 시간과 비용을 모두 절약할 수 있다고 언급했는데요. 클라우드 네이티브 기술을 도입한 덕에 3~8개월 소요되던 릴리즈 작업 시간이 단 일주일로 단축되었다고 합니다.
미 해군의 'Compile to Combat in 24 Hours(C2C24)' 개발 방식은 미 국방부가 도입한 DevSecOps 문화의 또 다른 예입니다. 출항 중인 함선 위에서도 긴급 취약점 대응이나 프로그램 패치를 빠르게 수행할 수 있도록 구상된 방식인데요.
이때 배포 플랫폼으로 Kubernetes가 채택된 점이 주목됩니다. 바다 위 폐쇄된 환경 속에서도 서비스를 배포할 수 있도록 도와주기 때문이라는데요. 인터넷 연결을 기대할 수 없는 환경에서 Kubernetes가 빛을 발하는 의미있는 사례입니다.
미 해군의 이런 도입 노력 덕분에 작전을 수행하는 군인들이 아이패드 등 다양한 장비에서 접근하는 서비스를 빠르고 안정적으로 배포할 수 있게 되었다고 하네요.
그리고 아까 잠깐 살펴본 미 공군의 Platform One은 지금도 전통적인 IT 시스템을 현대의 요구에 맞춰 통합시키는 역할을 수행하고 있다고 합니다.
Platform One 개발팀은 2025년 최근 발표에서 '앞으로 확장 가능한 중앙 관리형 DevSecOps 플랫폼으로 거듭나기 위해 양자내성암호 기술과 머신러닝 등을 도입할 예정'이라고 밝혔는데요.
특히 양자컴퓨팅 기술의 발전으로 현존 암호화 기술들이 위협을 받을 가능성이 높은 것을 의식하여 플랫폼 보안 강화 측면에서 양자내성암호 기술 도입을 언급한 것이 흥미롭습니다.
지금까지 미 국방부가 DevOps 문화와 클라우드 네이티브 툴을 도입한 이야기를 살펴봤는데요. 어떠셨나요?
저는 Nicolas Chaillan이 국방부라는 거대 조직에 고착되어있던 문제를 해결하기 위해 새로운 도구와 문화를 채택하는 과정에 주목하고 싶습니다.
서비스를 개발할 때 우리 앞에 놓여질 도구는 앞으로도 계속 변화할 것입니다. AI의 발전으로 그 속도는 갈수록 빨라지고 있고요.
그럴수록 우리에게 중요한 건, 어떤 문제를 해결하기 위해 우리에게 필요한 가치가 무엇인지 아는 것입니다.
그러면 급속한 흐름 속에서도 우리에게 필요한 도구를 선택해서 문제를 해결할 수 있는, 인간이 할 수 있는 일을 꾸준히 해낼 수 있을 것입니다.
여러분들은 이번 아티클을 통해 어떤 것을 느끼셨나요?
그럼, 다음에 더 흥미로운 주제로 찾아오겠습니다.
감사합니다.😸
참고 자료
✨이번 뉴스레터는 어떠셨나요?
이번 글에서 다룬 주제에 대해 어떻게 생각하는지 알려주세요! 뉴스레터를 더 나은 방향으로 개선하기 위해 아래 폼에서 짧은 피드백을 받고 있어요.
👉 피드백 보내기 (1~2분 소요)
여러분들의 소중한 의견은 Aiden’s Lab 뉴스레터에게 큰 힘이 됩니다!
🔭Aiden’s Lab에서 더 많은 아티클을 만나보세요
발행된 뉴스레터를 아카이빙하고 다양한 정보를 공유하는 기술 블로그를 운영 중입니다.