파이프라인 모니터링
소프트웨어 개발과 배포 과정은 점점 자동화되고 있다.
CI/CD 환경이 일반화되면서 더 이상 개발자가 직접 배포하지 않고 자동화된 파이프라인이 이를 대신하고 있다.
그러나 자동화가 이루어진다고 해서 모든 문제가 해결되는 것은 아니다.
어떤 시점에 빌드와 배포가 이루어졌는지,
코드 변경 사항은 무엇이었는지,
시스템 상태는 어떤지를 명확하게 인지하고 관리하는 것은 여전히 중요하다.
이때 필요한 것이 바로 파이프라인 모니터링이다.
빌드와 배포 상태 실시간 확인
파이프라인 모니터링의 핵심은 운영자가 빌드 및 배포가 실행되고 있다는 사실을 인지할 수 있도록 알림을 설정하는 것이다.
보통 릴리스 브랜치를 따로 구성하고, 해당 브랜치에서 파이프라인이 동작하게 설정하여 명확성을 갖는다.
이러한 알림은 일반적으로 Slack과 같은 협업 툴의 hook을 사용해 받을 수 있다.
Slack 채널을 생성하고 Jenkins CI와 연동하는 Slack App을 설치한 뒤, 인증 토큰을 생성하여 Jenkins에 등록하면 된다.
이후 Jenkins Pipeline Script에 슬랙 알림을 추가하는 함수를 추가함으로써 파이프라인 시작과 종료 시점에 자동으로 메시지가 전송되도록 설정할 수 있다.
코드 변경 내역 공유
파이프라인에서 실제 어떤 코드가 변경되었는지도 함께 공유할 수 있다.
Jenkins 플러그인인 Last Changes를 통해 진행할 수 있는데 이 플러그인은 직전 커밋과 현재 커밋 간의 차이를 제공해준다.
Jenkins 파이프라인에서 코드 차이를 추출하고, 파일로 저장한 후, Slack 메시지에 링크를 포함하는 방식으로 알릴 수 있다.
이 과정을 통해 팀원들은 슬랙 메시지를 통해 직접 Jenkins 링크를 클릭하여 변경 사항을 확인할 수 있게 된다.
이는 배포 후 발생할 수 있는 문제의 원인을 빠르게 파악하는 데에도 큰 도움이 된다.
시스템 상태 확인
파이프라인뿐만 아니라 시스템 자원 및 응용 소프트웨어의 실행 상태도 주기적으로 점검할 필요가 있다.
이를 위해 클러스터 내에 메트릭 수집 도구를 설치하고, 수집된 데이터를 대시보드로 시각화하여 운영자가 쉽게 확인할 수 있도록 한다.
이러한 시각화 도구는 Grafana, Prometheus, Kibana 등이 있으며, 실제 운영 환경에서는 대시보드를 통해 실시간으로 CPU, 메모리, 네트워크, 응용 프로그램 상태 등을 한눈에 확인하는 것이 가능하다.