512
고성능 파이썬(2판)
12.8.4
보고, 모니터링, 디버깅, 배포
우리는 파이썬 소프트웨어와 다양한 인프라를 지탱하는 여러 시스템을 유지한다. 이들 모두를
중단 없이 실행하기란 어려운 일이다. 다음은 그 과정에서 우리가 배운 교훈들이다.
여러분의 소프트웨어든 그 소프트웨어를 실행하는 인프라든 간에, 시스템 안에서 벌어지는 일
을 실시간으로, 또 과거 이력까지 볼 수 있다면 정말 강력한 힘을 얻을 수 있다. 우리는 그래파
이트와
collectd
,
statsd
를 함께 사용해서 벌어지는 일을 멋진 그래프로 그렸다. 이를 통해
추세를 파악하고, 문제를 과거의 흐름부터 살펴보며 분석하여 핵심 원인을 찾을 수 있다. 아직
우리 시스템에 구현할만한 시간은 없었지만, 지표가 너무 많아 다 추적할 수 없을 정도라면 엣
시
Etsy
의 스카이라인
Skyline
이 예상치 못한 문제를 발견하는 데 큰 도움을 준다. 다른 유용한 도구
로는 센트리가 있다. 센트리는 여러 컴퓨터로 이뤄진 클러스터에서 발생한 예외를 추적하고 이
벤트 로그를 남겨주는 훌륭한 시스템이다.
어떤 도구를 사용하든 배포는 만만치 않다. 우리는 퍼핏, 앤서블
Ansible
, 솔트를 사용해봤다. 이
들은 모두 장단점이 있지만, 어느 도구도 복잡한 배포 문제를 마법처럼 사라지게 할 수는 없다.
고가용성이 필요한 일부 시스템을 위해서는 인프라를 지리적으로 분산된 클러스터에서 운영하
며, 시스템 몇 개를 핫 스페어로 두고
DNS
의
TTL
값을 작게 설정해 문제가 있을 시 바로 라이
브 시스템과 전환하도록 ...