오늘날의 운영 팀은 수많은 알림에 끊임없이 시달리고 있습니다. 모니터링 플랫폼이 어떤 문제가 언제 발생했는지 정확히 알려주긴 하지만, 새벽 2시에 애플리케이션에 오류가 발생하기 시작하거나 인프라가 부하를 견디지 못하고 무너지기 시작하면, 누군가는 여전히 잠에서 깨어 로그인하고 문제를 진단해 해결 조치를 실행해야 합니다. 적절한 툴을 사용하더라도 문제를 감지하고 해결하기까지 최소 30분이 소요될 수 있으며, 그 시간 동안 비용이 낭비되고, 고객을 잃게 되며, 평판이 손상됩니다.
뉴렐릭 워크플로우 오토메이션(Workflow Automation)은 텔레메트리를 가시적인 성과로 변환하는 정교한 로우코드(low-code) 오케스트레이션 계층을 도입해줍니다. 워크플로우 자동화는 탐지와 해결 사이에 존재하는 간극을 해소하여, 옵저버빌리티를 수동적인 모니터링에서 선제적 문제 해결 엔진으로 발전시킵니다.
워크플로우 오토메이션이 옵저버빌리티를 조치로 전환하는 방법을 살펴보겠습니다.
옵저버빌리티를 자동화된 조치로 전환
워크플로우 오토메이션은 뉴렐릭에 직접 내장된 노코드/로우코드 자동화 계층으로, 옵저버빌리티 데이터를 실행 가능한 조치로 전환합니다. 문제를 감지해 알림을 전송하는 것에서 그치지 않고, 자동으로 해결 단계를 실행하여 문제에 적극적으로 대응할 수 있도록 합니다.
워크플로우 오토메이션은 알림 발생, 임계값을 넘는 메트릭, 상태가 변경된 엔터티 등 뉴렐릭의 데이터를 AWS 같은 클라우드 네이티브 플랫폼과 실제 조치가 실행되는 기타 API 기반 시스템에 연결합니다. 예를 들어, 새로운 배포 후 애플리케이션의 오류율이 급증하여 알림이 트리거되면 워크플로우가 자동으로 이전 배포로 롤백할 수 있습니다. 가상 머신(VM)의 CPU 사용량이 90%에 도달하면 수동 개입을 기다리지 않고 워크플로우가 이를 스케일업할 수 있습니다. 서비스가 중단되면 워크플로우가 서비스를 재시작하고, 관련 캐시를 삭제하며, Microsoft Teams, Slack, 이메일 또는 PagerDuty를 통해 팀에 알립니다. 이 모든 작업이 단 몇 초 만에 수행됩니다.
중요한 작업의 경우, 워크플로우가 일시 중지되고 계속 진행하려면 담당자의 승인을 요청하도록 설정할 수 있습니다. 워크플로우는 제안된 작업을 Slack 또는 Microsoft Teams에 게시하고, 팀원이 이를 승인하거나 거절할 때까지 대기한 후, 그 응답에 따라 계속 진행하거나 중단할 수 있습니다. 이를 통해 필요한 경우 자동화 과정에서 인간의 통제를 유지할 수 있습니다.
워크플로우 자동화의 핵심 구성 요소
워크플로우 오토메이션은 안정적이고 유지 관리 가능한 자동화를 구현하기 위해 함께 작동하는 4가지 핵심 구성 요소로 구축되었습니다.
액션 카탈로그
액션 카탈로그는 워크플로우에서 사용할 수 있는 사전 구축된 통합 및 작업 라이브러리입니다. 여기에는 EC2, Lambda, Systems Manager 같은 AWS 서비스, 커뮤니케이션 및 인시던트 관리 툴을 위한 알림 작업, NRQL 또는 NerdGraph를 사용하여 데이터를 쿼리하기 위한 뉴렐릭 작업이 포함됩니다. 카탈로그의 각 작업은 테스트를 거쳐 문서화되어 있으므로, API 구문이나 인증 패턴을 파악하느라 애쓸 필요가 없습니다.
템플릿
템플릿은 배포 모니터링, 인시던트 보강, 인프라 관리와 같은 일반적인 운영 시나리오를 위해 즉시 배포할 수 있는 워크플로우를 제공합니다. 어떤 엔터티를 모니터링할지, 어디로 알림을 전송할지, 어떤 임계값을 사용할지 등을 특정 파라미터로 맞춤 설정하고 즉시 배포할 수 있습니다.
컨트롤 로직
워크플로우는 복잡한 운영 로직을 처리할 수 있도록 조건부 분기, 루프 및 대기 상태를 지원합니다. 조건에 따라 실행을 라우팅하거나, 동일한 작업이 필요한 여러 리소스를 반복 처리하거나, 외부 조건이 충족될 때까지 실행을 일시 중지할 수 있습니다. 이는 워크플로우가 실제 운영 절차와 일치되도록 합니다.
휴먼 인 더 루프(Human in the loop)
워크플로우에는 중요한 작업을 계속 진행하기 전에 실행을 일시 중지하고 담당자의 확인을 기다리는 승인 단계가 포함되어 있습니다. 자동화의 속도는 물론, 영향이 큰 변경 사항에 대한 사람의 승인을 통해 안전성까지 모두 확보할 수 있다는 의미입니다.
실행 모델
워크플로우는 YAML을 사용하여 정의하거나 드래그 앤 드롭 인터페이스를 통해 시각적으로 구축할 수 있으므로, 코드형 인프라와 설정 기반 자동화를 원하는 개발자나 시각적인 방식을 선호하는 운영자 모두 쉽게 사용할 수 있습니다. 이러한 워크플로우는 이미 뉴렐릭을 통해 흐르는 데이터를 사용하여 탐지부터 조치까지 이어지는 간단한 실행 모델을 따라갑니다.
트리거
트리거 조건이 충족되면 워크플로우가 시작됩니다. 이는 알림 조건, 인시던트, 예약된 실행, 또는 API나 뉴렐릭 UI를 통한 수동 실행일 수 있습니다.
워크플로우 실행
트리거되면, 워크플로우는 정의된 일련의 단계를 실행합니다. 각 단계에서 클라우드 제공업체 API 호출, 조건 평가, 영향을 받는 엔터티 반복 등 특정 작업이 수행됩니다. 대부분의 문제 해결 작업은 소프트웨어가 실행되는 시스템에서 이루어지며, 추가적인 컨텍스트가 필요한 경우 워크플로우에 NRDB 쿼리 같은 명시적인 쿼리 단계를 포함하여 필요 시 뉴렐릭에서 추가 데이터를 가져올 수 있습니다.
예를 들어, 워크플로우는 배포 도구를 통해 배포를 롤백하거나, 클라우드 제공업체 API를 통해 인프라를 확장하거나, 런타임 환경에서 서비스를 다시 시작할 수 있습니다. 이러한 작업은 뉴렐릭에서 오케스트레이션되고 연결된 플랫폼에서 실행됩니다.
제어 및 가시성
워크플로우는 작업 실행 시점을 제한하는 조건과 영향력이 큰 변경 사항에 대한 승인 단계를 포함할 수 있습니다. 모든 워크플로우 실행이 기록되므로, 팀은 실행 기록, 단계별 결과 및 실패 내역을 검토하여 무슨 일이 왜 일어났는지 파악할 수 있습니다.
설계에 내장된 보안
이러한 플랫폼은 뉴렐릭에 안전하게 저장된 크리덴셜을 통해 액세스할 수 있습니다. 통합에 따라, 워크플로우는 IAM 역할이나 서비스 계정 같은 클라우드 네이티브 ID를 사용하거나, API 키와 토큰을 사용하여 인증합니다. 워크플로우가 허용된 작업만 수행할 수 있도록 권한 범위가 정해집니다.
이러한 실행 모델을 사용하면 기존 툴을 교체하지 않고도 인시던트 대응과 인프라 관리를 손쉽게 자동화하고, 모든 운영 시나리오에 맞는 워크플로우를 생성할 수 있습니다.
첫 번째 워크플로우 만들기
워크플로우 오토메이션은 첫 인시던트 대응 워크플로우를 생성하든 더 복잡한 운영 로직을 구축하든 관계없이 간단한 자동화와 고급 자동화를 모두 지원하도록 설계되었습니다.
시작하려면, 뉴렐릭 계정에서 뉴렐릭 > All Capabilities > Workflow Automation으로 이동합니다. 여기에서 다음을 선택할 수 있습니다:
- Slack으로 보고서 전송, 배포 롤백, EC2 인스턴스 관리 등과 같은 일반적인 시나리오는 템플릿을 사용해 사전 구성된 워크플로우를 배포할 수 있습니다. 또는
- 시각적인 드래그 앤 드롭 방식의 빌더를 사용해 처음부터 맞춤화된 워크플로우를 구축할 수 있습니다. 작업들을 체인으로 연결하고, 조건부 로직을 추가하며, 사용 중인 툴과 통합할 수도 있습니다.
하지만 워크플로우가 작업을 실행하기 전에, 작업 대상 시스템과 상호 작용할 수 있도록 권한을 부여해야 합니다. 이를 위해서는 뉴렐릭에서 통합 크리덴셜을 설정해야 합니다. 예를 들어, AWS에서 작업을 자동화하려면 워크플로우가 AWS API를 안전하게 호출할 수 있도록 인증 방법을 구성합니다. 이를 통해 워크플로우가 크리덴셜을 하드코딩하거나 기밀 정보를 노출하지 않고도 EC2 인스턴스 확장, 대기열 관리, 배포 롤백 등의 작업을 수행할 수 있습니다. 인증은 IAM 역할과 같은 클라우드 네이티브 크리덴셜 방식을 사용하거나, 통합에 따라 지원되는 기타 크리덴셜 유형을 사용하여 처리됩니다. 보다 자세한 설정 지침과 지원되는 서비스는 워크플로우 오토메이션 문서를 참조하십시오.
일반적인 인시던트 대응 사례인 배포 롤백 자동화의 사례로 실제 환경에서 이 기능이 어떻게 적용되는지 살펴보겠습니다.
배포 롤백 자동화
배포 롤백은 워크플로우 오토메이션의 가장 효과적인 활용 사례 중 하나입니다. 새로운 릴리스로 인해 애플리케이션 상태가 저하될 때는 일분일초가 중요합니다. 수동 롤백 프로세스는 감지에서 해결까지 30분 이상이 소요될 수 있습니다. 워크플로우 오토메이션은 배포 상태를 자동으로 모니터링하고 문제가 감지되는 즉시 롤백을 트리거하여 이 프로세스를 몇 분으로 단축합니다.
다음 영상은 배포 롤백 자동화가 실제로 어떻게 작동하는지 보여줍니다:
영상에서 볼 수 있듯이, 워크플로우 자동화는 배포 후 애플리케이션의 상태를 지속적으로 모니터링하고, 알림 조건에 따라 성능 저하를 감지하며, CI/CD 파이프라인 전반에서 모든 롤백 실행 과정을 수동 개입 없이 수행합니다. 이는 자동화된 상태 모니터링 및 롤백 기능을 통해 사소한 문제가 심각한 인시던트로 이어지지 않도록 방지할 수 있는 모든 배포 시나리오에 적용할 수 있습니다.
핵심 요약
워크플로우 자동화는 옵저버빌리티를 수동적인 모니터링 툴에서 조치 실행 시스템으로 전환해줍니다. 이전에는 수 시간의 수동 개입이 필요했던 작업이 이제는 몇 초 만에 자동으로 수행됩니다. 인시던트 대응 절차를 워크플로우로 코드화함으로써, 팀은 MTTR을 줄이고 인적 오류를 최소화하며, 엔지니어는 반복적인 해결 작업 대신 실제 사람의 판단이 필요한 복잡한 문제에 집중할 수 있습니다.
이 블로그에 표현된 견해는 저자의 견해이며 반드시 New Relic의 견해를 반영하는 것은 아닙니다. 저자가 제공하는 모든 솔루션은 환경에 따라 다르며 New Relic에서 제공하는 상용 솔루션이나 지원의 일부가 아닙니다. 이 블로그 게시물과 관련된 질문 및 지원이 필요한 경우 Explorers Hub(discuss.newrelic.com)에서만 참여하십시오. 이 블로그에는 타사 사이트의 콘텐츠에 대한 링크가 포함될 수 있습니다. 이러한 링크를 제공함으로써 New Relic은 해당 사이트에서 사용할 수 있는 정보, 보기 또는 제품을 채택, 보증, 승인 또는 보증하지 않습니다.