8.5

View in English

8.5 테스트 및 프로세스 자동화

개요와 동기

테스트 및 프로세스 자동화는 반복적인 수동 엔지니어링 및 운영 작업을 믿을 만한 기계 실행 워크플로로 대체하는 실천입니다. 테스트 측면에서는 테스트 자동화, 곧 정확성, 성능, 보안을 검증하려고 지속적으로 돌아가는 자동화된 테스트 스위트를 뜻합니다. 프로세스 측면에서는 소프트웨어 전달과 운영을 둘러싼 기계로 확장됩니다. 컴플라이언스 증거 수집, 운영 런북 실행, 알려진 문제의 복구, 거버넌스, 보안, 비용 통제의 시행입니다. 이를 묶는 생각은 단순합니다. 반복적이고 예측 가능하게 하는 모든 것은 코드화되어, 일관되고, 빠르고, 사람의 고역 없이 돌아가야 합니다.

큰 팀에게 자동화는 규모 아래서 품질과 통제가 무너지지 않게 하는 유일한 방법입니다. 수동 테스트는 수천 개의 변경을 만드는 수백 명의 엔지니어를 따라갈 수 없습니다. 병목이 되고, 커버리지는 일관성 없고 믿을 수 없게 됩니다. 수동 운영 절차도 고통받습니다. 서비스 재시작, 자격 증명 교체, 감사 증거 수집은 모두 지친 사람들이 큰 영역에 걸쳐 압박 아래서 할 때 느리고 오류 나기 쉬워집니다. 이 일을 자동화하면 결과가 반복 가능해집니다. 또한 숙련된 엔지니어가 사람의 통찰이 정말로 필요한 판단 집약적 문제에 집중하도록 풀어 줍니다.

기업과 정부 맥락에서 자동화는 컴플라이언스를 지속 가능하게 만드는 열쇠이기도 합니다. 규제 조직은 통제가 갖춰져 있고 증거가 수집되고 있음을 지속적으로 입증해야 합니다. 이를 손으로 하는 것은 비싸고, 느리고, 틈이 생기기 쉽습니다. 증거 수집과 통제 시행을 자동화하면 컴플라이언스가 주기적 비상 훈련에서 시스템의 지속적이고 검증 가능한 속성으로 바뀝니다. 이 “코드로서의 컴플라이언스” 접근은 비용을 줄이고 감사자와 규제 기관이 요구하는 보증을 강화합니다.

핵심 원칙

  • 반복적이고, 예측 가능하고, 규칙 기반인 일을 자동화하십시오. 사람의 노력은 판단을 위해 남겨 두십시오.
  • 자동화된 테스트를 빠르고, 믿을 만하고, 결정적으로 만드십시오. 그렇지 않으면 무시됩니다.
  • 스위트가 커져도 피드백이 빠르게 유지되도록 테스트를 병렬로 돌리고 앞당기십시오.
  • 운영 절차를 버전 관리되고, 테스트 가능하고, 실행 가능하도록 코드형 런북으로 코드화하십시오.
  • 시스템에 바깥에서 붙는 취약한 스크립트보다 잘 통합된 자동화를 선호하십시오.
  • 컴플라이언스 증거를 일반 워크플로의 부산물로 자동 생성하십시오.
  • 고위험 행동에는 사람을 루프에 두십시오. 안전하고 일상적인 것부터 자동화하십시오.

권장 사항

빠르고 믿을 만한 병렬 테스트 인프라를 구축한다

테스트 스위트는 엔지니어가 신뢰하고 피드백을 빨리 돌려줄 때만 가치가 있습니다. 테스트 수가 수천 개로 커져도 전체 소요 시간이 낮게 유지되도록 많은 워커에 걸쳐 스위트를 병렬로 돌리는 테스트 인프라에 투자하십시오. 스위트를 피라미드로 구조화하십시오. 많은 빠른 단위 테스트, 더 적은 통합 테스트, 소수의 끝에서 끝까지 테스트입니다. 그러면 대부분의 피드백이 몇 초 안에 도착합니다. 불안정한 테스트를 가차 없이 없애십시오. 간헐적으로 실패하는 테스트는 엔지니어가 실패를 무시하도록 훈련시키므로 테스트가 없는 것보다 나쁩니다. 통합과 끝에서 끝까지 테스트가 현실적이고 격리된 인프라에 대해 돌도록 임시적이고 온디맨드인 테스트 환경을 제공하십시오.

릴리스, 컴플라이언스, 증거 수집을 자동화한다

자동화를 테스트를 넘어 릴리스와 컴플라이언스 워크플로로 확장하십시오. 파이프라인이 감사자가 필요로 하는 산출물을 자동으로 생산하게 하십시오. 누가 변경을 승인했는지, 어떤 테스트가 돌고 통과했는지, 보안 스캔이 무엇을 발견했는지, 정확히 어떤 산출물이 배포되었는지의 기록입니다. 필수 검사가 균일하게 시행되고 결과가 기록되도록 통제를 코드로 다루십시오. 이 “코드로서의 컴플라이언스”는 증거 수집을 감사 전의 수동적 허둥지둥에서 지속적이고 항상 최신인 기록으로 바꿉니다. 또한 시스템의 컴플라이언스 태세를 언제든 관찰 가능하게 합니다.

ChatOps와 코드형 런북을 채택한다

운영 절차를 낡아 가는 산문 문서가 아니라 버전 관리에 보관되는 실행 가능한 런북으로 코드화하십시오. 절차가 안전하고 잘 이해된 곳에서는 요청 시 실행할 수 있는 자동화에 연결하십시오. ChatOps는 이 운영을 공유 채팅 인터페이스로 가져와, 운영자가 투명하고, 협업적이고, 기록되는 대화 속에서 자동화된 행동을 촉발하고 관찰하게 합니다. 이는 운영을 팀 전체에 보이게 하고 무엇이 행해졌는지의 자동 기록을 만듭니다. 또한 자동화가 올바른 단계를 코드화하므로 경험이 적은 엔지니어도 절차를 안전하게 실행하는 장벽이 낮아집니다.

자동 복구를 신중하게 구현한다

잘 이해되고 반복되는 문제에 대해, 조건을 탐지하고 알려진 수정을 적용하는 자동 복구를 만드십시오. 실패한 프로세스 재시작, 부하 시 확장, 가득 찬 디스크 비우기, 구성 요소 장애 조치 등입니다. 위험이 낮고 확신이 높은 복구부터 시작하십시오. 피해 범위가 큰 것에는 사람의 확인을 요구하십시오. 자동 복구는 평균 복구 시간을 줄이고 반복적인 알림 피로를 없앱니다. 그러나 탄탄한 탐지 위에 만들어져야 하고 안전 장치를 포함해야 합니다. 거짓 신호에 행동하는 자동화는 사고를 증폭시킬 수 있기 때문입니다. 모든 자동화된 행동을 기록해 운영자가 완전한 가시성을 유지하고 개입할 수 있게 하십시오.

로보틱 프로세스 자동화(RPA)를 올바르게 자리매김한다

로보틱 프로세스 자동화는 사람이 할 클릭과 키 입력을 흉내 내며 기존 사용자 인터페이스와 애플리케이션을 구동해 과업을 자동화합니다. RPA는 API를 노출하지 않고 다른 방법으로는 통합할 수 없는 레거시 또는 제3자 시스템의 다리로서 정당한 자리가 있습니다. 그런 경우에 실용적으로 쓰되 한계를 아십시오. UI 구동 자동화는 본질적으로 취약합니다. 인터페이스가 바뀔 때마다 깨지고, 기저의 통합 부족을 해결하지 않습니다. 제대로 된 API나 통합이 있는 곳에서는 그것을 선호하십시오. RPA를 전략적 기초가 아니라 전술적 임시방편으로 다루고 시스템이 현대화됨에 따라 교체할 계획을 세우십시오.

거버넌스, 보안, 비용 통제를 자동화한다

조직의 통제를 지속적으로 도는 자동화된 검사로 코드화하십시오. 인프라 가드레일을 위한 코드로서의 정책, 파이프라인의 자동화된 보안 스캔, 비용 이상과 놀고 있는 자원의 자동 탐지입니다. 거버넌스를 자동화하면 통제가 균일하고 우회할 수 없게 되며, 수동 리뷰가 결코 덮을 수 없는 변경의 물량으로 확장됩니다. 보안 정책을 시행하는 같은 접근이 폭주하는 클라우드 청구서나 빠진 필수 태그를 표시할 수 있습니다. 거버넌스는 주기적 수동 감사에서 지속적인 자동화된 가드레일로 옮겨 갑니다.

장단점

선택장점단점가장 적합한 곳
폭넓은 자동화된 테스트빠르고 일관된 피드백. 변경을 가능하게 함구축 및 유지 비용. 불안정성 위험규모에서 모든 팀
코드로서의 컴플라이언스지속적이고 감사에 준비된 증거통제를 코드화하는 선행 엔지니어링규제 조직
코드형 런북 + ChatOps반복 가능하고, 보이고, 기록되는 운영코드화하고 유지하는 노력실제 운영 부하가 있는 팀
자동 복구더 빠른 복구. 더 적은 고역탐지가 틀리면 위험잘 이해된 반복 문제
RPA (UI 자동화)API 없는 시스템을 잇는 다리취약. 통합 간극을 가림임시방편으로서의 레거시 시스템
자동화된 거버넌스균일하고 우회할 수 없는 통제정책 작성과 튜닝 노력크고 다스려지는 영역

중심 트레이드오프는 선행 투자 대 지속적 고역과 위험입니다. 자동화는 항상 만들고 유지하는 노력이 듭니다. 불안정한 테스트든, 취약한 RPA든, 나쁜 신호로 촉발되는 복구든 부실하게 만든 자동화는 신뢰를 침식하거나 실패를 증폭시키므로 없는 것보다 나쁠 수 있습니다. 규율은 세 가지입니다. 진정으로 반복 가능하고 믿을 만한 것을 자동화하고, 그 자동화를 신뢰할 수 있게 만드는 데 투자하고, 판단이나 높은 위험이 요구하는 곳에서는 사람을 루프에 두는 것입니다. 잘 하면 자동화는 몇 배로 보답합니다. 부주의하게 하면 그 자체로 부채가 됩니다.

팀과 논의할 질문

  1. 통합 및 끝에서 끝까지 테스트가 현실적인 임시 환경에서 돌아갑니까, 아니면 모두가 다투는 공유 스테이징 상자에서 돌아갑니까? 풀 리퀘스트별 온디맨드 격리 환경은 팀이 서로를 막거나 공유 상태를 오염시키지 않고 통합 및 끝에서 끝까지 테스트가 현실적인 인프라를 쓰게 합니다. 단일 공유 스테이징 환경은 더 많은 팀이 몰릴수록 병목이 되고 불안정하고 순서에 의존하는 실패의 원천이 됩니다. 임시 환경을 띄울 수 있는지, 비용이 얼마인지, 어떤 테스트가 정말로 그것을 필요로 하고 어떤 것이 빠른 인메모리 대체로 충분한지 정하십시오. 데이터를 가져오십시오. 스테이징이 얼마나 자주 경합하는지, 얼마나 많은 실패가 공유 환경의 간섭으로 추적되는지, 통합 계층의 현재 소요 시간입니다. 답은 테스트의 신뢰성과 피라미드의 상위 계층이 피드백을 얼마나 빨리 돌려주는지를 모두 형성합니다.

  2. 운영 절차가 코드형 런북으로 코드화되고 ChatOps로 노출됩니까, 아니면 여전히 낡아 가는 산문으로 있습니까? 코드화되고 버전 관리되는 런북은 테스트 가능하고 실행 가능하며, 공유 채팅 인터페이스로 돌리면 모든 행동이 보이고 자동으로 기록됩니다. 자동화가 구전 기억에 의존하는 대신 올바른 단계를 코드화하므로 경험이 적은 온콜 엔지니어가 안전하게 행동하기 쉬워집니다. 어떤 절차가 먼저 연결할 만큼 안전하고 잘 이해되는지, 사람이 개입할 수 있는 상태를 어떻게 유지하는지 정하십시오. 큰 영역에서 이 투명성은 누가 언제 무엇을 했는지의 감사 기록 역할도 합니다. 현재 런북을 가져와 어느 것이 낡았는지 표시하고, 먼저 코드화할 가장 자주 실행되는 두세 개 절차를 식별하십시오.

  3. 파이프라인에서 어떤 보안 스캔과 정책 검사가 병합을 막고, 어떤 것이 경고만 합니까? 자동화된 거버넌스는 통제가 우회할 수 없을 때만 만들 가치가 있습니다. 경고만 하는 검사는 위키 정책처럼 마감 압박 아래서 무시되기 때문입니다. 통제마다 무엇이 막고 무엇이 경고하는지 정하십시오. 치명적 취약점이나 빠진 암호화 태그는 아마 막고, 낮은 심각도의 스타일 발견은 경고할 수 있습니다. 규모에서 이것이 수동 리뷰가 덮을 수 없는 변경의 물량에 걸쳐 보안과 비용 가드레일을 균일하게 시행하는 방법입니다. 현재 검사 목록을 가져와 각각을 차단 또는 권고로 표시하고, 거짓 양성률을 논의하십시오. 시끄러운 차단 검사는 사람들이 예외를 요구하도록 훈련시키기 때문입니다. 차단과 경고 사이의 선이 거버넌스에 이빨이 있는지 없는지가 갈리는 곳입니다.

  4. 사람의 확인 없이 행동하도록 허용할 자동 복구는 무엇이며, 탐지가 틀렸을 때 피해 범위는 무엇입니까? 자동 복구는 복구 시간과 알림 피로를 줄이지만, 거짓 신호로 촉발된 수정은 작은 깜빡임을 완전한 장애로 바꿀 수 있으므로, 무엇이 무인으로 돌지의 결정은 편의가 아니라 위험 결정입니다. 경쟁하는 끌림을 저울질하십시오. 무인 행동은 가장 빠르지만 가장 위험하고, 사람 개입 확인은 더 안전하지만 없애려던 지연과 고역을 되살립니다. 빈도와 최악의 피해 범위로 순위를 매긴 후보 복구, 각각 뒤의 탐지의 과거 거짓 양성률, 모든 행동이 기록되고 되돌릴 수 있는지를 가져오십시오. 큰 기업이나 정부 영역에서는 프로덕션 데이터나 시민 대면 서비스를 건드리는 모든 것에 공식적인 변경 권한과 롤백 계획을 더하십시오. 감사하거나 되돌릴 수 없는 자동 복구는 규제 기관이 끄도록 강제할 것이기 때문입니다.

  5. 자동화가 부채로 쇠퇴하지 않도록 유지보수에 어떻게 자금을 대고 소유권을 배정합니까? 테스트, 런북, 정책 검사, RPA 봇은 모두 둘레의 시스템이 바뀜에 따라 썩으며, 방치된 자동화는 없는 것보다 나쁩니다. 낡은 런북은 위기에서 거짓 확신을 주고, 깨진 RPA 봇은 조용히 일을 떨어뜨립니다. 긴장은 유지보수가 같은 엔지니어를 놓고 기능 작업과 경쟁하고, 무언가 깨지기 전까지는 보이지 않아서 마감 압박 아래 가장 먼저 잘린다는 것입니다. 자동화 자산의 현재 목록, 불안정한 테스트와 깨진 봇의 적체, 이미 유지에 들어가는 엔지니어 시간과 예산이 잡힌 것의 정직한 추정을 가져오십시오. 기업이나 정부 환경에서는 각 핵심 자동화에 책임 있는 소유자의 이름을 정하고 유지보수를 명시적 항목으로 자금을 대십시오. 감사자와 사고 리뷰는 유지되지 않은 통제가 조용히 실패했을 때 누가 책임이었는지 물을 것이기 때문입니다.

  6. RPA로 자동화하는 각 레거시 시스템에 대해, 그 RPA를 실제 통합으로 퇴역시킬 구체적 계획과 촉발 조건은 무엇입니까? RPA는 API를 노출하지 않는 시스템의 정당한 다리지만, 퇴출 계획 없는 다리는 UI가 바뀔 때마다 깨지고 메우려던 바로 그 통합 간극을 굳히는 영구적이고 취약한 인프라로 조용히 굳어집니다. 트레이드오프는 실제입니다. RPA는 지금 빠르고 싸게 가치를 전달하는 반면 제대로 된 API 통합은 앞서 비용이 더 들지만 내구성이 있으므로, 규율은 RPA를 구매가 아니라 기한이 있는 대출로 다루는 것입니다. 프로덕션의 RPA 봇 목록, 각각이 의존하는 시스템, 각각이 얼마나 자주 깨지는지, 기저 시스템에 대해 현대화나 통합 노력이 실제로 자금이 지원되고 일정이 잡혔는지를 가져오십시오. 수십 년 된 핵심 애플리케이션을 안고 있는 기업과 정부 영역에서는 각 RPA 봇을 지명된 현대화 이정표에 묶으십시오. 퇴역 날짜 없이 조용히 핵심이 된 RPA는 그것이 긁어 오는 인터페이스가 계속 바뀌는 해마다 복리로 쌓이는 기술 부채이기 때문입니다.

분야별 관점

스타트업. 엔지니어가 두세 명이고 인프라를 만들 시간이 없다면, 모든 변경마다 몇 분 안에 도는 작고 빠른 테스트 피라미드를 유지하고, 불안정한 테스트를 그 주에 고치거나 삭제할 실제 버그로 다루십시오. 아직 필요하지 않은 무거운 컴플라이언스 도구와 코드로서의 정책은 건너뛰고, 가장 자주 실행하는 두세 운영 수정만 채팅에서 촉발되는 단순한 스크립트로 코드화하십시오. 매일의 고역을 없애는 것을 자동화하고, 거버넌스 문제가 생기기 전에 거버넌스 기계를 만드는 것에 저항하십시오.

소기업. 전담 테스트나 플랫폼 전문가가 없으니 맞춤 테스트 인프라를 만드는 대신 이미 값을 치르는 도구에 내장된 자동화에 기대십시오. CI 서비스의 내장 테스트 러너, 스캔 애드온, 관리형 환경입니다. 구매 대 구축의 선택을 현실적으로 유지할 수 있는 유지보수를 중심으로 구성하십시오. 아무도 유지할 수 없는 영리한 맞춤 파이프라인은 더 평범한 호스팅 파이프라인보다 나쁜 결과이기 때문입니다. RPA는 다른 방법으로는 통합할 수 없는 시스템을 벤더 도구가 잇는 경우에만 드물게 쓰십시오.

대기업. 많은 팀에 걸쳐 목표는 수동 리뷰가 덮을 수 없는 규모의 균일하고 우회할 수 없는 통제입니다. 임시 환경이 있는 공유 병렬 테스트 인프라, 코드로서의 정책 가드레일, 모든 파이프라인 실행에서 자동 생성되는 컴플라이언스 증거입니다. 팀이 각자 취약한 스크립트를 다시 발명하는 대신 복구와 런북 도구를 재사용하도록 인터페이스를 표준화하고, 자동화를 분명한 유지보수 예산이 있는 소유되고 자금이 지원되는 포트폴리오로 관리하십시오. 한 팀에서 경고만 하는 검사가 다른 팀에서 차단으로 다뤄지지 않도록 주의하십시오. 일관성 없는 시행이 값을 치르고 있는 보증을 훼손하기 때문입니다.

정부. 조달 규칙, 투명성 의무, 지속적 모니터링 의무가 코드로서의 컴플라이언스를 거의 필수로 만듭니다. 모든 파이프라인 실행은 확인된 통제, 수행된 스캔, 부여된 승인을 변조 흔적이 드러나고 감사에 준비된 증거로 기록해야 합니다. 미래 계약이 다른 공급자로 옮길 수 있도록 독점 종속보다 개방적이고 이식 가능한 자동화를 선호하고, 시민 대면 서비스를 건드리는 모든 복구에는 책임 있는 사람을 두십시오. 수십 년 된 시스템이 RPA를 강제하는 곳에서는 공개 현대화 계획이 있는 의도적이고 임시적인 다리로 문서화하고, 모든 변경에서 거버넌스 검사를 의무화된 보안 기준선에 맞추십시오.

사례

스타트업. 일곱 명의 스타트업이 대부분 빠른 단위 테스트와 소수의 통합 테스트로 이루어진 날씬한 테스트 피라미드를 유지하며, 모두 병렬로 돌아 풀 리퀘스트마다 전체 스위트가 3분 안에 끝납니다. 테스트가 불안정해지기 시작하면 실제 버그로 다루어 그 주에 고치거나 삭제합니다. 팀이 이렇게 작으면 무시된 빨간 빌드 하나가 스위트 전체에 대한 신뢰를 침식하기 때문입니다. 또한 가장 흔한 두 운영 수정, 곧 멈춘 워커 재시작과 가득 찬 디스크 비우기를 Slack에서 촉발되는 작은 스크립트로 코드화해, 온콜인 누구든 그것을 쓴 한 엔지니어를 호출하지 않고 안전하게 실행할 수 있습니다.

기업. 한 대형 전자상거래 회사가 수만 개의 테스트로 이루어진 테스트 스위트를 운영하며, 워커 군단에 걸쳐 병렬화되어 전체 스위트가 몇 분 안에 끝납니다. 현실적인 통합 테스트를 위해 풀 리퀘스트마다 임시 환경이 뜹니다. 운영은 ChatOps로 돌아갑니다. 온콜 엔지니어가 채팅에서 코드화된 런북을 촉발하고, 과부하된 서비스 같은 흔한 장애는 자동으로 복구되며, 행동은 리뷰를 위해 기록됩니다. 파이프라인이 보안 스캔과 승인 증거를 자동으로 수집하므로, 연간 감사는 수동 증거 사냥이 아니라 항상 최신인 기록에서 끌어옵니다.

정부. 엄격한 지속적 모니터링 요건을 따르는 한 공공 기관이 코드로서의 컴플라이언스를 구현합니다. 모든 파이프라인 실행이 확인된 통제, 수행된 스캔, 부여된 승인을 기록해, 요청 시 감사자를 만족시키는 변조 흔적이 드러나는 증거를 생산합니다. 핵심 시스템 하나가 API 없는 수십 년 된 애플리케이션이므로, 기관은 현대화 노력이 진행되는 동안 그곳으로의 데이터 입력을 자동화하는 의도적인 다리로 RPA를 쓰며, 제대로 된 통합이 생기면 RPA를 퇴역시킬 명시적 계획이 있습니다. 자동화된 거버넌스 검사가 모든 인프라 변경에서 의무화된 보안 기준선을 시행합니다.

비즈니스 사례: 동기, ROI, TCO

테스트 및 프로세스 자동화의 ROI는 되찾은 엔지니어 시간, 더 빠르고 안전한 전달, 더 빠른 사고 복구, 극적으로 낮은 컴플라이언스 비용으로 나타납니다. 자동화된 테스트는 전달 성과를 받치는 빠르고 자신 있는 변경을 가능하게 합니다. 자동화된 운영과 복구는 팀과 예산을 소진시키는 고역과 다운타임을 줄입니다. 코드로서의 컴플라이언스는 감사를 몇 주의 수동 준비에서 일상적인 질의로 바꿀 수 있으며, 이는 재정적이고 평판적인 절감입니다.

TCO 비교는 자동화를 만들고 유지하는 실제의 지속적 비용을 자동화하지 않는 비용에 견주어 저울질합니다. 수동 테스트와 운영은 쓴 시간만 비용이 드는 것이 아닙니다. 빠져나가는 결함, 길어지는 사고, 전문 인력을 먹는 감사, 반복적 고역을 하는 엔지니어의 소진에도 비용이 듭니다. 리더십에게 논거는 직설적입니다. 자동화는 반복되는 운영 비용과 위험을 규모에 맞게 확장되는 일회성에 유지보수를 더한 투자로 바꾸고, 품질과 컴플라이언스를 에피소드가 아니라 지속적인 것으로 만듭니다. 한 가지 단서를 분명히 말할 가치가 있습니다. 자동화는 유지되고 신뢰받아야 합니다. 자금이 지원되지 않고 방치된 자동화는 부채로 쇠퇴합니다.

안티패턴과 함정

  • 용인된 불안정한 테스트. 간헐적 실패는 신뢰를 파괴하고 엔지니어가 빨간 결과를 무시하도록 훈련시킵니다.
  • 고장 난 프로세스의 자동화. 나쁜 워크플로를 자동화하면 난장판이 더 빨리 일어날 뿐입니다. 먼저 프로세스를 고치십시오.
  • 전략으로서의 RPA. 취약한 UI 자동화를 영구적 해법으로 의존하면 통합 간극을 가리고 굳힙니다.
  • 탄탄한 탐지 없는 복구. 나쁜 신호로 촉발된 자동 수정은 사고를 증폭시킬 수 있습니다.
  • 낡은 산문으로서의 런북. 낡은 문서에 사는 절차는 위기에서 거짓 확신을 줍니다.
  • 수동으로 모으는 컴플라이언스 증거. 주기적인 수동 증거 사냥은 비싸고 감사 사이에 틈을 남깁니다.
  • 고위험 행동에 사람 개입 없음. 위험한 작업의 완전 자동화는 재앙을 막는 판단을 제거합니다.

성숙도 모델

1단계, 시작. 테스트와 운영이 대체로 수동적이고 반응적입니다. 커버리지는 즉흥적이고, 절차는 사람들의 머릿속이나 낡은 문서에 있으며, 복구는 사고 중에 손으로 이루어지고, 컴플라이언스 증거는 감사 전마다 허둥지둥 조립됩니다.

2단계, 발전. 자동화된 테스트가 있지만 느리거나, 불안정하거나, 일관성 없이 돌며 실천은 팀마다 크게 다릅니다. 일부 운영 스크립트와 런북이 곳곳에 있지만 복구는 여전히 수동이고 거버넌스는 지속적 검사가 아니라 주기적 리뷰로 시행됩니다.

3단계, 표준화. 빠르고, 병렬이며, 믿을 만한 테스트 인프라가 문서화된 조직 전체의 표준입니다. 코드형 런북과 ChatOps가 일반적으로 쓰이고, 컴플라이언스 증거가 파이프라인 실행에서 자동 생성되며, 거버넌스 통제가 팀 전반에 일관되게 적용되는 시행되는 자동화된 검사로 돕니다.

4단계, 관리. 자동화 자체가 기준선에 대해 측정되고 통제됩니다. 불안정한 테스트 비율, 스위트 소요 시간, 자동 복구된 사고의 평균 복구 시간, 자동화된 증거가 있는 통제의 비율, 차단 검사의 거짓 양성률을 추적하고 각 지표를 합의된 목표에 묶습니다. 복구와 커버리지 결정은 이 데이터로 이끌리고, 모든 자동화된 행동이 기록되어 추세와 회귀가 짐작이 아니라 보입니다.

5단계, 오케스트레이션. 자동화가 조직 전체에서 지속적으로 개선되고 통합됩니다. 자동 복구가 입증된 안전 장치와 함께 일상적 사고를 처리하고, 컴플라이언스는 지속적이며 항상 감사에 준비되어 있고, 테스트, 운영, 거버넌스 도구 체인은 시스템이 바뀜에 따라 적응하며, RPA 다리는 통합이 성숙함에 따라 적극적으로 퇴역합니다. 사람은 판단에 집중하고 기계가 반복 가능한 것을 처리하며, 시스템 전체가 증거에 따라 재균형됩니다.

논의를 위한 아이디어

  • 어떤 운영 절차를 완전히 자동화해도 안전하고, 어떤 것이 사람을 루프에 두어야 합니까?
  • 큰 테스트 스위트가 커지는 동안 어떻게 빠르고 불안정성 없이 유지합니까?
  • 레거시 시스템에서 RPA가 정당한 다리인 곳은 어디이며, 퇴역시킬 계획은 무엇입니까?
  • 어떤 통제를 수동 감사에서 지속적인 코드로서의 컴플라이언스로 먼저 전환할 수 있습니까?
  • 증폭된 사고의 위험 없이 자동 복구에 대한 신뢰를 어떻게 쌓습니까?
  • 자동화가 부채로 쇠퇴하지 않도록 그것이 요구하는 지속적 유지보수에 어떻게 자금을 댑니까?

핵심 요점

  • 반복적이고, 예측 가능하고, 규칙 기반인 것을 자동화하고, 사람의 노력은 판단과 고위험 결정을 위해 남겨 두십시오.
  • 자동화된 테스트를 빠르고, 병렬이며, 믿을 만하게 만들고 불안정성을 가차 없이 없애십시오.
  • 운영을 코드형 런북으로 코드화하고 가시성과 기록을 위해 ChatOps로 노출하십시오.
  • 감사가 지속적이고 최신인 기록에서 끌어오도록 컴플라이언스 증거를 자동 생성하십시오.
  • API 없는 시스템의 의도적이고 임시적인 다리로만 RPA를 쓰고, 그 퇴역을 계획하십시오.
  • 거버넌스, 보안, 비용 통제를 지속적인 자동화된 검사로 시행하고, 위험한 행동은 사람이 감독하게 하십시오.

참고 문헌과 더 읽을거리

  • Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams.
  • Jez Humble and David Farley, Continuous Delivery.
  • Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy (eds.), Site Reliability Engineering (see the chapter on eliminating toil).
  • Gene Kim, Jez Humble, Patrick Debois, and John Willis, The DevOps Handbook.
  • Nicole Forsgren, Jez Humble, and Gene Kim, Accelerate.
  • NIST Special Publication 800-53 and 800-137 (continuous monitoring).
  • Open Policy Agent documentation (policy as code).