‘베터리지의 헤드라인 법칙’을 깨고 말하자면, 짧은 답은 ‘그렇다’입니다. 하지만 오늘날 기술과 관련된 모든 일이 그렇듯, 자세히 들여다보면 이야기는 조금 더 복잡합니다.
제 생각에 DevOps는 이제 거의 모든 산업 전반에 상당히 널리 확산되었습니다. 모든 조직이 이 접근 방식의 모든 측면을 도입하거나 Netflix처럼 그 원칙을 열정적으로 철저히 따르는 것은 아니지만, 분명 실제로 일어나고 있는 하나의 ‘흐름’입니다.
직접적인 증거라고 할 수는 없지만, 2018년 애플리케이션 제공 현황 보고서를 위해 3,000명이 넘는 응답자에게 디지털 트랜스포메이션이 애플리케이션 관련 의사 결정에 어떤 영향을 미치는지 물었을 때, 가장 많이 나온 세 가지 답변 중 두 가지는 ‘IT 시스템 및 프로세스에 자동화와 오케스트레이션 적용’과 ‘애플리케이션 개발 방식 변경(예: 애자일 방식으로 전환)’이었습니다. 제가 보기에는 두 답변 모두 현대적인 아키텍처에서 애플리케이션을 개발하고 제공하기 위해 DevOps 접근 방식의 일부라도 도입한 데 따른 반응으로 해석할 수 있습니다.
따라서 조직이 DevOps와 관련된 일부 도구와 기법을 도입하고 있다면, 다른 것들도 함께 도입하고 있다고 볼 수 있습니다. 그중 하나는 어쩌면 (극적인 음악이 흐르며) 바로 ‘실패를 전제로 한 구축’일지도 모릅니다.
다만 이 표현은 다소 부정확합니다. 누구도 시스템이 실패하도록 설계하지는 않기 때문입니다. 실제로는 장애에 복원력이 있도록 시스템을 설계합니다. 예를 들어 인스턴스(서버)가 중단되면 시스템이 작동하지 않는 인스턴스를 제거하고 그 자리를 대신할 새 인스턴스를 시작하여 상황을 자동으로 처리할 수 있어야 한다는 뜻입니다.
짜잔! 장애를 견디도록 설계되었습니다.
이는 분명 바람직한 반응입니다. 특히 시스템에 많은 부하가 걸리고 수요가 몰릴 때는 더욱 그렇습니다. 하지만 이 접근 방식에는 반드시 고려해야 하며, 이후 해결되기를 바라는 위험 요소가 있습니다.
2017년 초에 발생한 Cloudflare 취약점을 살펴보겠습니다. 이 문제에 대한 자체 보고에서 훌륭할 정도로 투명한 태도를 보인 Cloudflare에 따르면, 기본적으로 이 문제는 HTTP 파서 확장 기능의 결함으로 인해 발생한 메모리 누수였으며, 잠재적인 데이터 유출로 이어질 수 있었습니다. 간단히 말해, 버그로 인해 메모리 누수가 발생했고, 그 결과 인스턴스가 중단되었습니다. 장애를 전제로 설계되었기 때문에 해당 인스턴스는 종료된 후 재시작되었습니다.
분명히 해두자면, 이 글은 ‘버그 하나로 Cloudflare를 비난하려는’ 글이 아닙니다. 개발자로서 저는 자신의 결함이 이처럼 공개적으로 드러나는 상황에 깊이 공감합니다. 하지만 무언가가 충돌하거나 메모리 누수가 발생하거나 아예 작동하지 않는 이유를 알아내는 데 별다른 관심을 기울이지 않는 상황에는 그다지 공감하기 어렵습니다.
바로 이것이 오늘 글의 요점입니다. DevOps 철학을 따르는 사람들은 때때로 장애 발생 후의 원인 조사에 방임적인 태도를 보이기 때문입니다.
서비스/앱 장애가 발생했을 때 가용성을 확보하기 위해 서비스를 종료한 뒤 재시작하는 것은 지극히 합리적인 대응입니다. 단, 이후에 장애 원인을 파악하기 위한 조사를 진행해야 합니다. 앱은 아무 이유 없이 중단되지 않습니다. 앱이 쓰러졌다면 무언가가 밀어 넘어뜨린 것입니다. 열 번 중 아홉 번은 악용할 수 없는 오류 같은 것일 수 있습니다. 블로그에 쓸 만한 이야기도 아니죠. 하지만 단 한 번이라도 악용될 수 있는 심각한 취약점이라면, 나머지 아홉 번에 들인 노력이 겉보기에는 헛수고였더라도 충분히 가치가 있습니다. 바로 그런 것이야말로 블로그에 쓸 만한 이야기이기 때문입니다.
이를 무시하는 것은 합리적이지 않습니다.
장애 및 기타 문제를 모니터링하고 알림을 보내는 것 역시 균형 잡힌 DevOps 프로그램의 핵심 요소입니다. 이는 전체론적 DevOps 접근 방식을 구성하는 CAMS, 즉 문화(Culture), 자동화(Automation), 측정(Measurement), 공유(Sharing)에서 ‘S’에 해당합니다. Damon과 John(2010년에 이 약어를 만든 사람들)이 말한 공유는 단순히 피자와 맥주를 나누는 것만을 뜻하지 않았습니다(물론 이는 DevOps 문화(Culture)의 ‘C’를 장려하는 좋은 방법이기는 합니다). 데이터와 시스템 상태를 공유하는 것도 포함됩니다. 알아야 할 필요가 있는 사람들이 관련 정보를 확실히 알도록 하는 것입니다. 여기에는 시스템 장애도 포함됩니다.
장애, 특히 시스템 충돌은 확인하지 않은 채 방치해서는 안 됩니다. 파이프라인의 시스템이 충돌하면 누군가는 이를 인지하고 조사해야 합니다. 이를 무시하면 보안 위험이 발생합니다. 더 심각한 점은 이것이 피할 수 있는 위험이라는 것입니다. 여러분의 환경과 시스템, 코드에서 발생하는 문제이기 때문입니다. 모든 것을 완전히 통제할 수 있으므로 이를 무시할 이유가 없습니다.
요약하자면, ‘실패를 전제로 구축한다’는 철학은 애플리케이션은 물론 비즈니스까지 보안 위험에 노출시킬 수 있습니다. 다행히도 이러한 위험은 충분히 관리할 수 있습니다. 단, 문서상으로만 ‘실패를 전제로 구축’해 놓고 실제로는 ‘실패를 무시하도록 구축’하는 결과가 되지 않도록 해야 합니다.
가용성을 높게 유지하기 위해 재시작하더라도, 충돌이 발생한 시스템에는 주의를 기울이세요. 자칫 잘못된 이유로 자신과 회사가 트위터 실시간 화제에 오르는 일을 막을 수 있습니다.
작성자 소개

Lori MacVittie는 F5 CTO 오피스의 수석 엔지니어이자 최고 에반젤리스트로, 애플리케이션 딜리버리, 자동화 전략 및 인프라 분야에서 깊이 있는 전문성을 보유하고 있습니다. AI 에이전트를 위한 가드레일을 정의하고, 취약한 멀티클라우드 아키텍처를 분석하며, 확장 가능한 시스템의 한계를 탐구하는 등 복잡한 문제를 명확하게 풀어내는 것으로 잘 알려져 있습니다. 애플리케이션 개발, IT 아키텍처, 네트워크 및 시스템 운영 전반에 걸쳐 30년 이상의 업계 경험을 쌓았습니다. F5에 합류하기 전에는 수상 경력이 있는 기술 편집자로 활동했습니다. MacVittie는 컴퓨터 과학 석사 학위를 보유하고 있으며, 보안, 클라우드 및 엔터프라이즈 아키텍처 분야를 아우르는 다수의 저서를 집필한 작가입니다. 또한 보드게임과 비디오 게임을 열정적으로 즐기며, 치즈에 대해서는 거리낌 없이 확고한 견해를 갖고 있습니다.
Lori Mac Vittie의 다른 블로그 게시물관련 블로그 게시물
성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.
TLS 검사에서 피터 파커 원칙 다루기
“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.
Venafi와 F5를 통한 머신 아이덴티티 보호
‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.
마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...
내 클라우드에서 나가!
F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.
Shift(웹 앱) 보안 레터
웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.