News Feed

“더 똑똑한 데브옵스” 배포의 공포를 피하는 방법

컨텐츠 정보

  • 조회 887

본문

많은 데브옵스 조직은 배포 빈도를 높이기 위해 첨단 CI/CD, IaC(Infrastructure as Code) 및 기타 자동화를 구현한다. 2023 데브옵스 현황 보고서에서 응답자의 18%는 하루 미만의 변경 리드 타임으로 온디맨드 배포가 가능하다는 이유로 엘리트 성과자로 분류됐다.

그러나 이런 엘리트 성과자도 5%의 변경 실패율을 보고했는데, 이는 미션 크리티컬하지 않은 애플리케이션이나 사용량이 적은 기간에 배포가 트리거되는 경우에는 허용될 수 있는 수준이다. 그러나 항공, 은행 및 99.999%의 가용성을 요구하는 기타 애플리케이션에서 변경 실패가 발생하면 결함 및 문제가 있는 구성 변경을 프로덕션 환경으로 밀어붙이는 것은 배포의 공포로 이어질 수 있다.

최근 크라우드스트라이크(CrowdStrike)는 850만 대의 마이크로소프트 윈도우 10 컴퓨터에 영향을 미치는 배포 실패로 전 세계적으로 약 1만 편의 항공기 운항이 취소되는 사태를 일으켜 언론의 주목을 받았다. 말할 필요도 없이, 이 실패로 인해 재정적으로도 상당한 타격을 입었다. 크라우드스트라이크의 근본 원인 분석은 이 문제를 버그로 분류하며, “센서가 20개의 입력 필드를 예상했지만 업데이트는 21개의 입력 필드를 제공했다. 이 경우 불일치로 인해 범위를 벗어난 메모리 읽기가 발생해 시스템 충돌이 발생했다”라고 설명했다.

이제 데브옵스 조직은 배포 전략을 재고해야 할 때이다. 잦은 릴리즈가 너무 위험한 것은 언제이며, 대규모 배포 문제를 피하기 위해 변경의 위험을 어떻게 평가해야 할까?

요구 사항 및 구현 위험 평가하기

모든 릴리즈, 기능 및 사용자 스토리가 똑같은 배포 위험을 수반하는 것은 아니다. 많은 기업에서 배포 위험 점수 생성을 자동화한 다음 이를 사용해 릴리즈 전에 필요한 테스트 및 운영 검토 수준을 평가한다. 기존에는 위험 점수가 주관적인 입력을 활용하고 전문가에게 각 위험의 확률과 영향을 평가하도록 요청했지만, 배포를 자주 하는 조직은 머신러닝 기반 접근 방식으로 전환할 수 있다.

코파도(Copado)의 에반젤리즘 담당 수석 부사장 데이빗 브룩스는 “배포의 공포를 피하는 것은 계획 단계에서부터 시작된다”라며, “AI는 사용자 스토리를 평가해 모호성, 숨겨진 종속성 및 영향, 다른 개발자의 중복 작업을 식별하는 데 도움을 줄 수 있다”고 말했다.

릴리즈 관리 전략은 배포를 내부 커뮤니케이션 및 위험 관리 프레임워크의 일부로 규정했다. 기존 접근 방식은 주요 업그레이드, 사소한 개선 및 시스템 업그레이드를 규정하고, 그런 다음 데브옵스 책임자가 릴리즈 유형에 따라 배포 정책, 위험 중재 요구 사항 및 자동화 규칙을 지정한다.

데이터 중심적인 접근 방식은 영향을 받는 사용자 수, 영향을 받는 코드의 테스트 커버리지, 종속성 복잡성 측정과 같은 여러 다른 변수를 기준으로 릴리즈를 규정하고 위험 점수를 계산한다. 그런 다음 피드백 루프를 구현해 중단, 성능 문제, 보안 인시던트 및 최종 사용자 피드백을 캡처해 릴리즈가 실제 비즈니스에 미치는 영향을 기반으로 위험 점수를 보정할 수 있다.

개발자 경험에 보안 기능 포함

배포 후 보안 문제를 발견하는 것은 큰 위험이며, 많은 데브옵스팀이 보안을 협상 불가능한 사항으로 설정해 보안 프랙티스를 좌편향적으로 바꾸고 있다. 여기에는 정책, 제어, 자동화 및 도구가 혼합되어 있지만, 가장 중요한 것은 보안을 보장하는 것이 개발자의 최우선 책임이라는 점이다.

SADA의 부 CTO 크리스토퍼 헨드리치는 “소프트웨어 개발 수명 주기 초기에 보안과 품질 관리를 통합하는 것은 제대로 작동하는 최신 데브옵스 프랙티스를 위해 절대적으로 필요하다”라며, “자동화, AI 기반 서비스, 안전하지 않은 것으로 간주되는 이유와 해결 방법에 대한 명확한 피드백을 제공하는 개발자 플랫폼을 구축하면, 개발자가 개발에 집중하는 동시에 보안 의식을 강화하는 데 도움이 된다”고 설명했다.

개발팀은 배포 장애의 위험을 최소화하기 위해 다음과 같은 프랙티스를 고려해야 한다.

  • OWASP 보안 기본 사항, NIST 보안 소프트웨어 개발 프레임워크(SSDF), ISO 27034 및 기타 보안 프레임워크 및 제어 표준의 지침을 기반으로 소프트웨어 개발자의 보안 표준을 수립한다.
  • 기술 부채를 줄이고 스프린트 및 릴리즈 주기 초기에 복잡한 스토리를 완료해 애자일 개발에서 위험 관리를 확립한다.
  • 오픈소스 소프트웨어의 부실한 거버넌스, 민감한 데이터에 대한 부적절한 데이터 보안 등 소프트웨어 개발의 보안 위험을 해결한다.
  • 정적 애플리케이션 보안 테스트(SAST), 종속성 추적, 침투 테스트 등 CI/CD에서 보안 테스트를 구현한다.

지속적인 배포 전제 조건 구현

개발팀은 프로덕션으로 가는 경로를 자동화한다는 목표를 지지하지만, 모든 개발팀이 지속적 배포를 위한 준비가 제대로 되어 있는 것은 아니다. 특히 애플리케이션 및 마이크로서비스 아키텍처의 복잡성이 증가함에 따라 적절한 안전장치를 마련하지 않으면 프로덕션 환경에서 CI/CD를 구현한다는 쉬운 목표에서 출발한 배포가 공포의 배포로 이어질 수 있다.

JFrog의 개발자 관계 책임자 멜리사 맥케이는 “소프트웨어 개발은 시간이 지남에 따라 소프트웨어의 기능이 변경되거나 노후화됨에 따라 점점 더 어려워지는 복잡한 프로세스이다”라며, “초기 패키지 큐레이션 및 코딩부터 런타임 모니터링에 이르기까지 보안과 품질을 우선시하기 위해서는 다계층의 엔드 투 엔드 접근 방식을 구현하는 것이 필수가 됐다”고 지적했다.

미션 크리티컬한 대규모 애플리케이션에 지속적 배포를 구현하고자 하는 데브옵스팀은 다음과 같은 베스트 프랙티스를 도입해야 한다.

  • 지속적인 테스트. 높은 테스트 커버리지, 포괄적인 테스트 데이터, 최종 사용자 페르소나 중심 테스트를 통한 지속적인 테스트, 합성 데이터 및 생성형 AI 테스트 기능을 사용해 프로덕션 코드의 결함을 최소화한다.
  • 피처 플래그. 개발팀이 선별된 최종 사용자 대상으로 구성 및 테스트한 실험적 기능을 제어할 수 있도록 피처 플래그 방식을 제공한다.
  • 카나리아 릴리즈 전략. 애플리케이션 또는 서비스의 여러 버전 배포를 지원하고, 최종 사용자가 액세스할 수 있는 버전을 제어하고, 소규모 최종 사용자 기반에 배포된 문제를 캡처한다.

맥케이는 “모든 단계에서 소프트웨어 검사를 구현하면 코드 품질과 복원력이 향상되고 카나리아 테스트와 같은 전략을 활용하면 안정적인 배포를 보장할 수 있다”라고 덧붙였다.

일부 기업은 지속적인 배포와 모든 전제 조건이 필요한 대규모 미션 크리티컬 애플리케이션이 많지 않다. 하지만, 미션 크리티컬 애플리케이션 포트폴리오가 많은 대기업, 수백 개의 AI 모델을 관리하는 데이터 과학팀 또는 여러 제품군을 보유한 SaaS 기업은 표준과 효율성을 높이기 위해 플랫폼 엔지니어링 프랙티스를 고려해야 한다.

벌처의 CMO 케빈 코크레인은 “클라우드 네이티브 및 AI 네이티브 애플리케이션을 위한 플랫폼 엔지니어링은 인프라 프로비저닝, 모델 통합 가시성, 데이터 거버넌스 등 성숙하고 책임감 있는 AI를 지원하는 주요 프로세스를 자동화함으로써 개발 환경을 개선하고 기업의 위험을 낮춰준다”고 강조했다.

통합 가시성, 모니터링 및 AIOps의 지속적인 개선

다음의 3가지 질문은 잘못된 배포와 배포의 공포를 구분할 수 있다.

  • 영향을 받는 최종 사용자 수, 운영 생산성 손실, 재정적 비용, 평판 손상, 규정 준수 요소, 법적 영향 등 비즈니스에 미치는 영향은 무엇인가?
  • 조직이 문제를 파악하고, 최종 사용자에게 문제를 알리고, 사고로부터 복구하고, 근본 원인을 파악하고, 해결책을 구현하는 데 걸리는 시간은 얼마나 걸리는가?
  • 개발팀은 얼마나 자주 잘못된 배포에 대응하고 있으며, 엔지니어는 이런 대응에 지친 상태인가?

통합 가시성, 애플리케이션 모니터링, AIOps에 대한 투자는 비즈니스에 미치는 영향을 줄이고 주요 인시던트의 평균 복구 시간(MTTR)을 개선할 수 있는 핵심 운영 역량이다.

IBM 오토메이션의 제품 개발 부사장 마두 코차르는 “최종 사용자의 오류부터 잘못된 커뮤니케이션에 이르기까지 오늘날의 모든 데브옵스 배포 ‘공포’는 궁극적으로 적절한 커뮤니케이션이나 가시성 부족으로 귀결된다”라며, “보이지 않는 것은 고칠 수 없기 때문에 특히 지능형 자동화의 맥락에서 통합 가시성이 알려진 결함을 해결하고 시스템이나 애플리케이션 내부에서 일어나는 일에 대한 인사이트를 제공하는 데 중요한 이유도 바로 여기에 있다. 통합 가시성은 최종 사용자에게 영향을 미치기 전에 문제를 포착해 효율적이고 더 나은 성능의 배포 작업을 위해 개발 피드백 루프가 중단 없이 흐르도록 해준다”고 설명했다.

통합 가시성, 자동화, 모니터링은 주요 인시던트에 대해 네트워크 운영 센터(NOC)와 사이트 안정성 엔지니어(SRE)에게 경고하는 핵심 방어 전략이다. 마이크로서비스 아키텍처를 적용하고, 멀티클라우드에 배포하고, 여러 서드파티 시스템에 연결하는 기업은 사고의 근본 원인을 파악하고 배포 롤백과 같은 자동화된 대응을 트리거하기 위해 AIOps 솔루션이 필요하다.

매니지엔진(ManageEngine)의 수석 제품 매니저인 제임스라즈 폴 재스퍼는 “디지털 환경이 빠르게 진화함에 따라 기존의 모니터링 도구로는 더 이상 최신 데브옵스의 요구 사항을 충족하기에 충분하지 않다”라며, “팀은 잠재적인 문제에 앞서 나가기 위해 AI 기반 통합 가시성 및 예측 솔루션을 포함한 인텔리전스 시스템을 도입해야 한다”라고 강조했다.

주요 인시던트 플레이북 개발하기

잘못된 배포로 인해 대형 인시던트가 발생하는 경우, IT 조직은 대응을 안내하는 운영 플레이북이 있어야 한다. 어떤 커뮤니케이션 도구를 사용할지, 어떤 애플리케이션 모니터를 검토할지 알고 있는 최적의 규모와 숙련된 대응팀이 있는가? 팀에 조치를 조율할 책임자가 있으며 이해관계자, 경영진, 고객이 문제에 대한 경고를 받고 그 상태에 대해 잘 알고 있는가?

대형 인시던트가 발생했을 때 최악의 시나리오는 엔지니어부터 경영진까지 모두가 명확한 지시와 소통 없이 머리가 잘린 닭처럼 뛰어다니는 것이다. 이는 지연, 실수, 더 큰 스트레스를 초래한다. 대부분 기업은 비즈니스에 영향을 미치는 모든 유형의 프로덕션 문제에 대비하기 위해 ITSM 주요 인시던트 플레이북과 프로세스를 개발한다.

데브옵스팀은 배포 빈도를 늘리고 애플리케이션 최종 사용자에게 새로운 기능을 제공해야 한다. 모든 배포에는 위험이 수반되며, 잘못된 배포는 근본 원인 분석과 해결책을 구현해야 한다. 그러나 더 현명한 데브옵스 조직은 배포의 공포를 피하기 위해 속도와 준비성의 균형을 맞추고 있다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank