Close

DevOps 모니터링

제공 파이프라인의 각 단계에서 인식 제고

Krishna Sai 얼굴 사진
Krishna Sai

엔지니어링 책임자, IT 솔루션


DevOps는 더 빠른 개발, 정기적인 테스트, 더 높은 빈도의 릴리스를 지원할 뿐만 아니라 동시에 품질 개선 및 비용 감축의 이점을 제공합니다. 이러한 이점을 달성할 수 있도록 DevOps 모니터링 도구는 계획, 개발, 통합 및 테스팅, 배포와 운영에 걸친 전체 수명 주기에서 자동화, 확장된 측정 및 가시성을 제공합니다.

최근의 소프트웨어 개발 수명 주기는 그 어느 때보다 빨라졌으며 여러 개발 및 테스트 단계가 동시에 진행되고 있습니다. 이로 인해 DevOps가 탄생하게 되었습니다. 개발, 테스팅, 운영 기능을 수행하는 사일로된 팀에서 통합된 팀으로의 전환이 이루어졌으며 DevOps 팀은 모든 기능을 수행하며 "직접 빌드, 직접 실행"(YBIYRI)이 가능합니다.

잦은 코드 변경이 이제 일반화됨에 따라 개발 팀은 프로덕션 환경에 대한 종합적인 실시간 뷰를 제공하는 DevOps 모니터링을 필요로 합니다.

DevOps 모니터링이란 무엇입니까?


모니터링 및 가시성 비교 다이어그램

DevOps 팀은 계획, 개발, 통합 및 테스트, 배포 및 운영에 이르는 전체 개발 수명 주기를 모니터링합니다. 여기에는 프로덕션 환경에서 애플리케이션, 서비스 및 인프라의 상태에 대한 완전한 실시간 보기가 포함됩니다. 실시간 스트리밍, 기록 재생 및 시각화와 같은 기능은 애플리케이션 및 서비스 모니터링의 중요한 구성 요소입니다.

연결된 링 아이콘
솔루션 보기

인시던트 관리 및 대응 간소화

도구 아이콘
관련 자료

DevOps 도구에 대해 자세히 알아보기

DevOps 모니터링을 통해 팀은 고객 경험의 수준이 낮아지면 신속하고 자동으로 대응할 수 있습니다. 더 중요한 것은 팀이 개발의 "조기 단계에서 개입”하여 잘못된 프로덕션 변경 사항을 최소화할 수 있습니다. 예를 들어, 소프트웨어를 더 잘 계측하여 대기 중 담당자를 통해 수동으로 및 가능한 경우 자동으로 모두 오류를 감지하고 대응할 수 있습니다.

DevOps 모니터링 및 가시성 비교


무한 루프의 왼쪽을 제품 측면으로, 오른쪽을 운영 측면으로 생각해 보면 새 기능을 프로덕션에 푸시하는 제품 관리자는 프로젝트가 작업과 사용자 스토리로 분할되는 방식을 확인하는 데 관심이 있습니다. 프로젝트의 왼쪽에 있는 개발자는 프로젝트 티켓, 사용자 스토리 및 종속성을 포함하여 기능을 프로덕션 환경으로 이동시키는 방법을 알아봐야 합니다. 개발자가 “직접 구축하고 직접 운영”이라는 DevOps 원칙을 준수하는 경우 인시던트 수정에도 관심을 갖게 됩니다.

수명 주기의 운영 측면을 살펴보면, 사이트 신뢰성 엔지니어는 문제가 있는 경우 이를 해결할 수 있도록 측정 및 모니터링할 수 있는 서비스를 이해해야 합니다. 이러한 모든 프로세스를 하나로 묶는 DevOps 도구 체인이 없다면 어지럽고 상관 관계가 없으며 혼란스러운 환경을 갖게 됩니다. 잘 통합된 도구 체인이 있다면 현재 상황에 대한 더 나은 컨텍스트를 얻을 수 있습니다.

DevOps 루프 이미지

DevOps 모니터링의 중요성


DevOps 접근 방식은 스테이징, 테스트 및 더 나아가 개발 환경까지 지속적 모니터링을 확장합니다. 여기에는 여러 이유가 있습니다.

잦은 코드 변경으로 인한 가시성 필요

지속적 통합 및 배포로 인한 잦은 코드 변경으로 인해 변경 속도가 빨라지고 프로덕션 환경이 점점 더 복잡해졌습니다. 마이크로서비스와 마이크로 프런트엔드가 최신 클라우드 네이티브 환경에 도입되면서 프로덕션 환경에는 수백에서 수천 개의 워크로드가 운영되고 있으며, 각 워크로드는 규모, 대기 시간, 중복성 및 보안에서 다양한 운영 요구 사항이 있습니다.

이로 인해 가시성 향상에 대한 요구가 커졌습니다. 팀은 저하된 고객 경험을 감지하고 이에 대응할 뿐만 아니라, 신속한 방식으로 해야 합니다.

자동화된 협업

DevOps는 팀 내 개발, 운영 및 비즈니스 기능 간의 협업을 강화할 필요가 있습니다. 그러나 도구 간의 통합 부족으로 인해 협업이 방해받을 수 있으며, Atlassian의 DevOps 설문조사에서 주요 시사점이었던 여러 팀과의 협력이 어려워질 수 있습니다.

편집기 내에서 개발 파이프라인의 전체 보기를 확인하기와 같은 방법을 통해 협업을 자동화할 수 있습니다. 또한 커밋 또는 풀리퀘스트를 수신한 다음 관련 Jira 이슈의 상태를 업데이트하고 팀의 Slack 채널로 메시지를 보내는 자동화 규칙을 설정하세요. 또한 스캔, 테스트 및 분석 보고서를 제공하는 인사이트를 활용하세요.

자동화된 협업 스크린샷

실험

개인화 및 최적화된 전환 퍼널에 의해 고객의 요구에 대응할 수 있도록 제품을 최적화해야 하는 필요는 지속적인 실험으로 이어집니다. 프로덕션 환경에서는 수백 개의 실험과 기능 플래그를 실행할 수 있으므로 모니터링 시스템이 경험 저하의 원인을 전달하기가 어렵습니다.

상시 가동 서비스 및 애플리케이션에 대한 요구 사항이 증가하고 SLA 준수가 엄격해짐에 따라 애플리케이션에 취약성이 더해질 수 있습니다. 개발 팀은 모니터링하고 조치를 취할 SLO(서비스 수준 목표) 및 SLI(서비스 수준 지표)를 정의해야 합니다.

변경 관리

대부분의 프로덕션 중단은 변경으로 인해 발생하므로, 특히 금융 및 의료 산업과 같은 미션 크리티컬 애플리케이션의 경우 변경 관리가 필수적입니다. 변경과 관련된 위험을 파악하고 변경 위험에 따라 승인 흐름을 자동화해야 합니다.

이러한 복잡성을 처리하려면 포괄적인 이해와 모니터링 전략이 필요합니다. 여기에는 모니터링 방식을 정의하고 수용하며 개발 프로세스에 중요한 풍부하고 유연한 고급 모니터링 도구의 집합을 갖추는 것이 수반됩니다.

종속 시스템 모니터링

분산된 시스템은 점점 더 보편화되고 있으며, 여러 소규모의 회사 간 서비스로 구성되는 경우가 많습니다. 이제 팀은 구축한 시스템을 모니터링할 뿐만 아니라 종속된 시스템의 성능과 가용성을 모니터링하고 관리해야 합니다. AWS(Amazon Web Services)는 컴퓨팅, 스토리지, 네트워킹, 데이터베이스, 분석, 배포, 관리, 모바일 및 개발자 도구를 포함하여 175개 이상의 제품과 서비스를 제공합니다. AWS에서 애플리케이션을 구축하는 경우 애플리케이션의 요구 사항에 적합한 서비스를 선택해야 합니다. 또한 분산된 방식으로 오류를 추적하고 종속 시스템의 오류를 처리하기 위한 계측 및 전략이 필요합니다.

DevOps 모니터링의 주요 기능


DevOps 전통에 따라 모니터링 전략을 개발하고 구현하려면 핵심 방식 및 도구 집합에도 주의를 기울여야 합니다.

조기 단계 테스트

수명 주기 초반에 수행하는 조기 단계 테스트는 품질을 높이고 테스트 주기를 단축하며 오류를 줄이는 데 도움이 됩니다. DevOps 팀의 경우 조기 단계 테스트 사례를 확장하여 사전 프로덕션 환경의 상태를 모니터링하는 것이 중요합니다. 이를 통해 프로덕션 과정에서 연속성을 유지하기 위해 모니터링을 조기에 자주 구현하고 모니터링 알림의 품질을 높게 유지할 수 있습니다. 테스트와 모니터링은 함께 작동해야 하며, 조기 모니터링은 주요 사용자 여정 및 트랜잭션을 통해 애플리케이션의 동작을 평가하는 데 도움이 됩니다. 또한 프로덕션 배포 전에 성능 및 가용성 편차를 식별하는 데도 도움이 됩니다.

알림 및 인시던트 관리

클라우드 네이티브 환경에서 인시던트는 코드에서 버그처럼 발생할 수밖에 없습니다. 인시던트는 하드웨어 및 네트워크 오류부터 잘못된 구성, 리소스 소모, 데이터 불일치 및 소프트웨어 버그에 이르기까지 다양합니다. DevOps 팀은 인시던트가 발생한다는 사실을 인정하고 이에 대응할 수 있는 고품질 모니터를 마련해야 합니다.

도움이 되는 몇 가지 모범 사례는 다음과 같습니다.

  • 개발 과정에서 기능 및 자동화된 테스트와 함께 모니터링이 사용되는 협업의 문화 구축
  • 개발 중에 평균 감지 시간(MTTD) 및 평균 격리 시간(MTTI)을 최소화하는 높은 품질의 적절한 알림을 코드에 빌드
  • 종속 서비스가 예상대로 작동하는지 확인하기 위한 모니터 구축
  • 필요한 대시보드를 구축하고 팀원에게 대시보드를 사용하도록 교육하는 데 시간을 할당
  • 모니터가 예상대로 작동하는지 확인하고 누락된 모니터를 포착하기 위해 서비스에 대한 “워(war) 게임”을 계획
  • 스프린트 중에는 이전 인시던트 검토의 작업, 특히 누락된 모니터 구축 및 자동화와 관련된 작업을 종료하도록 계획
  • 보안을 위한 감지기 구축(업그레이드/패치/롤링 자격 증명)
  • 감지된 알림에 대한 응답을 자동으로 결정하여 “모든 것을 측정 및 모니터링”하는 사고 방식 육성

DevOps 모니터링 도구


양호한 모니터링 방식을 보완해주는 것은 DevOps/YBIYRI 문화에 정렬되는 고급 도구입니다. 그러려면 코드 리포지토리, IDE, 디버깅 도구, 결함 추적, 지속적 통합 도구 및 배포 도구라는 잘 알려진 개발자 도구 외에도 모니터링 도구를 식별하고 구현하는 데 주의해야 합니다.

단일 창을 통해 프로덕션뿐만 아니라 스테이징 환경에서도 다양한 애플리케이션, 서비스 및 인프라 종속성을 포괄적으로 파악할 수 있습니다. 이를 통해 복잡한 분산 환경의 상태를 프로비저닝, 수집, 태그 지정, 보고 분석할 수 있습니다. 예를 들어, Atlassian의 내부 PaaS 도구 Micros에는 서비스에 대한 모든 정보를 간결하고 검색 가능한 방식으로 제공하는 마이크로스코프라는 도구가 포함되어 있습니다.

단일 창 스크린샷

애플리케이션 성능 모니터링은 CPU 및 메모리 사용률과 같은 기본 시스템 메트릭 외에도 페이지 로드 시간, 다운스트림 서비스의 대기 시간 또는 전환과 같은 애플리케이션별 성능 지표를 모니터링하도록 보장하는 데 필수적입니다. SignalFX 및 NewRelic과 같은 도구는 지표 데이터를 실시간으로 관찰하는 데 적합합니다.

개발 중 오류, 트랜잭션, 가상, 하트비트, 경보, 인프라, 작업 수용량 및 보안을 포함하여 다양한 유형의 모니터를 구현하세요. 모든 구성원이 이 분야에서 교육을 받았는지 확인하세요. 이러한 모니터는 애플리케이션에 따라 다르며 각 애플리케이션의 요구 사항에 따라 구현해야 하는 경우가 많습니다. 예를 들어, Opsgenie 개발 팀은 알림 또는 인시던트를 만들고 알림 흐름이 예상대로 실행되는지(예: 통합, 라우팅 및 정책이 올바르게 작동하는지) 확인하는 가상 모니터를 구현합니다. 또한 다양한 AWS 서비스의 기능을 주기적으로 확인하는 인프라 종속성에 대한 가상 모니터를 구현합니다.

알림 및 인시던트 관리 시스템은 팀의 개발 및 운영 리듬에 적합하도록 팀의 도구(로그 관리, 충돌 보고 등)와 원활하게 통합됩니다. 도구는 중요한 알림을 가장 빠르게 응답할 수 있는 기본 알림 채널로 중요한 알림을 전송해야 합니다. 또한 알림을 그룹화하여 여러 알림을 필터링하는 기능도 포함해야 합니다(특히 단일 오류 또는 실패로 인해 여러 알림이 생성되는 경우). Atlassian에서는 Opsgenie를 고객에게 이러한 기능을 제공하는 제품으로서 제공할 뿐만 아니라, 내부적으로 사용하여 개발 사례와 통합된 강력하고 유연하며 신뢰할 수 있는 알림 및 인시던트 관리 시스템을 구축합니다.

결론...


DevOps를 수용하는 동안 테스트 외에도 모니터링을 조기 단계에 개입하는 것이 중요하며, 변경 사항을 높은 품질로 프로덕션에 빠르게 전달할 수 있도록 관행과 도구를 마련하는 것이 중요합니다.

자세한 내용은 DevOps, 인시던트 관리변경 관리에 대한 Atlassian의 추가 리소스를 확인하세요.

Krishna Sai
Krishna Sai

Krishna Sai는 Atlassian의 IT 솔루션 엔지니어링 책임자로, Atlassian, Groupon, Polycom을 포함한 여러 스타트업 및 기업에서 20년 이상의 엔지니어링/기술 리더십 경험을 보유하고 있습니다. 인도 벵갈루루에 거주하며 팀의 공동 작업 방식에 영향을 주는 제품을 만드는 데 열정을 가지고 있습니다.


이 기사 공유

여러분께 도움을 드릴 자료를 추천합니다.

이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.

DevOps 일러스트레이션

DevOps 커뮤니티

DevOps 일러스트레이션

DevOps 학습 경로

맵 일러스트레이션

무료로 사용해보기

DevOps 뉴스레터 신청

Thank you for signing up