개요
첨단 기술, 제조, 의료, 금융 서비스 등 업계를 불문하고 고객들은 항상 기업과 원활하게 소통할 수 있길 기대합니다. 고객 충성도는 쉽게 변할 수 있기 때문에, 기업은 소프트웨어를 이용해 고객을 적극 공략하는 방법을 모색하고 있습니다. 조사에 따르면, 인게이지먼트(반응) 수준이 높은 고객이 90% 더 자주 구매를 하고, 구매당 60% 더 많은 비용을 지출하며, 평균 고객에 비해 연간 가치가 3배 더 높은 것으로 나타났습니다. 이것이 바로 가장 분주한 날에 맞춰 인프라를 확장하여 만족스럽고차별화된 경험을 지속적으로 제공해야 하는 이유입니다.
하지만 이는 모순적이라고 할 수 있습니다. 고객 경험을 저해하지 않으면서 어떻게 이러한 남다른 고객 경험을 지원할 수 있을까요? 탁월한 고객 경험이 왜 중요한지는 잘 알려져 있습니다. 나쁜 고객 경험은 좋은 고객 경험보다 더 강력합니다.
지금까지 몇 시간의 다운타임 으로 기업이 수백만 달러의 매출을 손실하고 평판을 잃었다는 헤드라인들을 많이 봐왔을 것입니다. 다행스러운 점은 새로운 코드를 사용하고 최신 인프라를 활용하는 것이 그렇게 어렵지는 않다는 것입니다. 옵저버빌리티, 즉 관찰 practice 를 효과적으로 운영하면 복잡한 현대 디지털 엔터프라이즈에서도 소프트웨어를 통해 우수한 고객 경험을 제공할 수 있습니다.
뉴렐릭은 옵저버빌리티의 성숙도를 사후 대응, 선제적 대응, 데이터 중심의 세 단계로 정의합니다. 옵저버빌리티, 즉 관찰 practice의 궁극적인 목표는, 개발자가 엔드유저의 디지털 경험에 업데이트가 어떤 영향을 미치는지 실시간으로 이해하고, 장애가 발생했다는 사실뿐만 아니라그 이유까지 알 수 있도록 해주는 자동화된 자가 복구 시스템을 확보하는 것입니다.
이 eBook에서는 옵저버빌리티, 즉 관찰 여정의 각 단계를 자세히 살펴보고, 각 단계에 포함된 활동과 핵심 성과 지표(KPI)에 대해 설명하고 있습니다.
효과적으로 운영되는 옵저버빌리티, 관찰 practice는 복잡한 현대 디지털 엔터프라이즈에서도 소프트웨어를 통해 우수한 고객 경험을 제공할 수 있게 합니다.
옵저버빌리티 성숙도 : 사후 대응 단계
“측정할 수 없는 것은 개선할 수 없다”라는 말을 들어보셨을 겁니다. 강력한 옵저버빌리티, 관찰 practice에서 중요한 것은, 시스템에 대한 텔레메트리 데이터를 가능한 한 많이 수집할 수 있도록 계측 방안을 마련하는 것입니다. 그런 후 팀들은 명백한 문제를 제거할 수 있도록 우선순위를 정합니다.
계측 및 조율
모니터링할 항목을 선택할 때는 조직의 비즈니스 이해 관계자와 디지털 리더를 참여시켜야 합니다. 목표는 비즈니스에 중요한 것을 모니터링하고, 불필요한 작업으로 팀에 부담을 주지 않는 것입니다.
메트릭, 이벤트, 로그 및 트레이스(M.E.L.T)는 옵저버빌리티을 확보하는 데 필수적인 데이터 유형입니다. 로그 등 서로 다른 소스의 데이터를 집계하고 한 곳에 저장하면, 단일 플랫폼에서 시스템을 분석하고 시각화하여 문제를 해결할 수 있습니다. 모든 소스(독점 또는 오픈 소스)에서 모든 데이터 유형을 계측할 수 있는 능력은 옵저버빌리티에 매우 중요합니다. 데이터 유형에 관계없이 신속하게 텔레메트리를 확보하고 문제가 발생할 때 동적으로 해결할 수 있기 때문입니다.
비즈니스에 핵심적인 관측 데이터를 한 곳에서 확인할 수 있기 때문에, 운영 부담은 물론 데이터의 저장, 쿼리, 조회 및 알람을 위해 다른 시스템을 유지하는데 드는 비용도 절감할 수 있습니다.
기준 및 기본 알림 설정
애플리케이션 및 인프라에 대한 메트릭과 성능 통계를 수집하면, 소프트웨어가 불안정해지거나 사용자의 불편을 초래할 수 있는 병목 현상 및 오류를 식별할 수 있습니다. 가장 느린 트랜잭션과 가장 일반적인 오류를 해결하여 앱을 개선해야 합니다.
그런 다음, 서비스 및 시스템에 대한 ‘정상’의 기준을 설정할 수 있습니다. 명백한 오류를 분석하여 기본 알림 조건을 만들고 필요에 따라 감도를 조정합니다. 서비스 경계 트랜잭션 성능을 제품 기능들에 연결하는 것은 제품, 운영, 엔지니어링 및 서비스소유자 팀 간의 사일로를 허무는 데 매우 중요한 역할을 합니다.
옵저버빌리티 성숙도 : 선제적 대응 단계
수많은 tool에서 발생하는 신호들 속에서 인시던트의 근본 원인을 신속하게 파악해 해결한다는 것은 결코 쉬운 일이 아닙니다. 이슈를 선제적으로 감지해 대응한다는 것은 더욱 그렇습니다. 기술 및 프로세스의 복잡성이 나날이 증가하면서, 수천 가지의 ‘알려지지 않은 상황’을 조사하고 해석해야 하는 문제가 대두되었습니다. 이 단계에서는 서비스 수준 목표(SLO)를 설정하고, 프로세스를 최적화하여 시스템 안정성과 속도 간의 균형을 맞추고 고객에게 영향을 미치기 전에 문제를 해결할 수 있도록 팀들을 정렬해야 합니다.
팀들에 정렬되도록 SLO 설정
서비스 수준 목표(SLO)는 팀의 목표를 측정 및 공유할 수 있는 방식으로 규정하는 강력한 메커니즘을 제공합니다. 또한, 서비스 기대치에 대한 명확한 경계를 제공하여 팀이 더 신속하고 자유롭게 새로운 접근 방식을 실험해볼 수 있도록 합니다. 어디서부터 시작해야 할지 잘 모르겠다면 Google의 SRE 핸드북에 나와 있는 4개의 황금 신호(레이턴시, 트래픽, 오류 및 포화)가 문제를 노출시키는 데 도움이 될 수 있습니다. 그런 다음, 서비스의 전반적인 상태를 나타내는 한 두 가지의 고급 서비스 수준 지표(SLI)를 찾습니다. 예를 들어, 비디오 스트리밍 서비스는 사용자가 동영상을선택하고 첫번째 프레임이 나타나는 데 걸리는 시간을 지표로 사용합니다.
알림 전략 최적화
데이터 취합 방안이 마련되었고 팀의 목표가 명확하게 정의되면, 문제 발생 시 비상 호출 대기 팀을 동원할 체계적이고 안정적인 방법을 강구해야 합니다. 효과적으로정의된 알림을 통해 시스템 상태를 파악하면 성능 문제에 신속하게 대응할 수 있습니다.
모든 SLO가 알림이 될 필요는 없습니다. 강력한 알림 전략은 SLO를 사용해 간단하면서도 실행 가능한 알림 그룹을 만드는 것입니다. 많은 성숙 단계의 조직은 일반적인 알림의 수는 줄이고, 알림을 고객 경험의 저하를 나타내는 핵심 메트릭에 집중적으로 사용합니다. 데브옵스(DevOps) 팀은 알림 전략의 일환으로 애플리케이션 성능지표(Apdex)를 사용해 알림을 사용자의 만족도 저하 징후에 맞게 정렬해야 합니다.
알림 기본 사항
알림 전략을 설계할 때는 '고객에게 영향을 주지 않는데 누군가의 단잠을 깨울 가치가 있는가?' 라는 질문을 염두에 두어야 합니다.
인시던트 대응 개선
문제 진단 및 해결을 위해 텔레메트리 데이터를 수동으로
해석하는 데 소요되는 시간은 회사의 평판과 수익에 영향을 미칩니다. IT 운영 팀이 인텔리전스와 자동화를 사용해 선제적으로 문제를 감지하고 신속하게 해결할 수 있도록 만들어 주어야 합니다.
애플리케이션 및 서비스의 상태에 대한 책임을 개인이나 팀에 할당합니다. 할당된 개인이나 팀이 인시던트 발생 시 가장 먼저 대응을 합니다. 중요한 인시던트 발생 시, 쉽게 액세스 가능하고 가시성이 높은 채널에서 소통이 이루어지도록 해야 합니다. 예를 들어, 팀이 Slack 같은 툴로 소통하는 경우, Sack으로 인시던트 알림이 전송되도록 해야 합니다.
신속한 피드백 루프 활성화
릴리스를 위한 신속한 피드백 루프는 잦은 애플리케이션 업데이트와 관련된 평균 장애복구시간(MTTR)과 안정성 위험을 줄여줍니다. 배포를 추적하여 코드와 인프라 변경이 엔드유저의 환경에 어떠한 영향을 미치는지 파악하는 것이 중요합니다.
배포 추적은 애플리케이션의 즉각적, 장기적 또는 점진적인 성능 저하의 근본 원인을 파악하는 데 유용한 방법입니다. 신속한 피드백 루프는 카나리 배포나 블루/그린 배포 같은 최신 릴리스 방식에도 중요합니다.
옵저버빌리티 성숙도 : 데이터 중심 단계
궁극적으로, 옵저버빌리티의 목표는 팀이 공유 데이터를 사용해 조치를 취할 수 있도록 지원하는 것입니다. 조직 전체에서 직원을 프로세스 및 기술 성과와 연결하고, 이를 특정 비즈니스 성과와 연계시켜야 합니다. 옵저버빌리티 데이터의 흐름을 유지하려면, 새 애플리케이션 및 서비스에 대한 계측을 자동화해야 합니다. 그러면, 데이터 중심의 조직으로서 확신을 가지고 빠르게 이동할 수 있습니다.
SLO 트렌드 분석
SLO를 정의하고 측정하면 소프트웨어의 주요 지표를 세분화하여 서비스의 예상 행동을 검증하고, 인시던트가 서비스 제공에 미치는 영향을 추적할 수 있습니다. SLO를 정의하기 위해 수행한 작업(위에서 언급한 선제적 대응 단계)을 활용해 집중해야 하는 영역을 찾습니다. 팀 대시보드는 시간 추이에 따라 SLO 달성 상황을 확인할 수 있는 훌륭한 참조 지점입니다.
개발자, 운영 및 고객 간의 관계 시각화
큐레이션된 비즈니스 성과 대시보드는 팀에게 사용자의 앱 경험에 대한 개요를 제공합니다. 고객이 앱을 어떻게 사용하고, 또 왜 이탈하는지를 알면 향후 해야 할 일을 구분하는 데 도움이 됩니다. 강력한 관찰 문화는 일반 백엔드 사용자 이외에도 고객 서비스, 지원, 제품, 영업, 마케팅, 경영진 등의 그룹이 데이터에 액세스할 수 있도록 합니다. 이러한 데이터를 가장 중요한 위치에 두는 것은 팀에게 강력한 동기 부여가 됩니다.
계측 자동화
자동화는 업무의 속도를 높일 수 있으며, 실수를 제거하는 데 도움이 됩니다. 무엇보다도 옵저버빌리티을 향상시킵니다. 애플리케이션 및 인프라 스택이 필연적으로 증가해도 시스템 계측 시간을 줄이고 작업 시간을 줄일 수 있습니다. 이러한 원칙을 실천하려면, 티켓, 호출 대기, 수동 작업 등 모든 SRE 관련 총 ‘운영’ 작업에 40%의 한도를 정해 두는 것이 좋습니다. SRE 팀은 나머지 시간을 앱 개발에 써야 합니다. 시간이 지남에 따라 서비스가 자체적으로 실행 및 수리되기 때문에 SRE 팀은 운영 작업 대신 개발 작업에 매진할 수 있게 됩니다. 팀이 수작업을 최소화하고 자동화를 극대화할 수 있도록 해주는 옵저버빌리티 전략을 활용해야 합니다.
옵저버빌리티의 모범 사례
뉴렐릭의 옵저버빌리티
지금까지 옵저버빌리티 성숙도의 세 단계에 대해 알아보았습니다. 이제 뉴렐릭을 시작하기 위한 몇 가지 실질적인 팁을 소개합니다.
사후 대응 단계
• 애플리케이션에 적합한 모니터링 에이전트, 이를 지원하는 인프라 그리고 이러한 에이전트로 지원되는 프런트엔드 사용자 환경을 설치합니다.
• Amazon Web Services, Microsoft Azure, Google Cloud Platform을 비롯한 주요 클라우드 기반 서비스와 OpenTelemetry, Envoy, Drop-wizard, Prometheus 등 모든 소스로부터 핵심적인 텔레메트리 데이터를 수집합니다.
• 인프라 에이전트를 통해 호스트 통합에 액세스합니다.
• New Relic APM에서 주요 트랜잭션을 설정하여 맞춤화된 수준의 모니터링, 또는 고유한 알림 정책을 확보합니다.
선제적 대응 단계
• 뉴렐릭 Synthetics를 설정해 외부 사용자처럼 전체 시스템과 상호 작용을 해보고, 팀이 성능, 가용성 및 사용자 경험을 높은 수준에서 확인할 수 있도록 합니다.
• 뉴렐릭 AI를 구현하여 운영 인시던트를 간소화하고 개선합니다.
• 뉴렐릭 APM 배포 마커기능을 사용해 각 애플리케이션의 배포를 기록합니다. 팀 대시보드의 배포마커는 소프트웨어 릴리스 전후의 성능을 비교 분석할 수 있게 합니다.
데이터 중심 단계
• SLO/R 애플리케이션을 New Relic One에서 활용해 SLI를 정의하고 SLO 타깃을 설정합니다. SLO 달성 보고를 고려해야 합니다. 신뢰성 작업에 집중하고 새로운 기능을 도입하기 위해 속도를 늦추어야 할 때를 나타내는 지표로서 SLO 목표를 추적해야 합니다. SLO의 추이를 사용해 조직의 의사 결정을 가속화할 수도 있습니다.
• 이 튜토리얼을 사용해, 지리적 위치 또는 디바이스 유형 같은 다양한 그룹에서 고객들이 앱을 어떻게 경험하는지 살펴보시기 바랍니다. 엔드유저 그룹을 구분 및 평가하고 전체 비즈니스 전략에 맞게 고객 경험을 정렬해야 합니다.
• New Relic One 대시보드를 사용해 New Relic One 플랫폼의 모든 곳에서 데이터를 상호 작용이 가능하도록 시각화합니다.
• Synthetics Rest API를 사용해 New Relic Synthetics 모니터를 생성하고 관리합니다.
• 알림과 알림 조건을 설정합니다.
• 상호 종속성 및 작업을 캡처하는 빌드 스크립트나 플러그인을 작성하여 에이전트 설치를 완료하고 적절한 기본 설정을 제공합니다.
옵저버빌리티 여정을 시작할 준비가 되셨습니까?
지금 바로 무료 뉴렐릭 계정을 신청하십시오.