카테고리 없음

어플리케이션 건강 확인에 /healthz를 사용하는 관례는 어디에서 나왔나요?

스택큐힙리스트 2023. 10. 30. 22:55
반응형

쿠버네티스/도커 생태계에서는 응용 프로그램의 헬스 체크 엔드포인트로 /healthz를 사용하는 관례가 있습니다.


'healthz'라는 이름은 어디에서 비롯되었으며, 그 이름과 관련된 특정한 의미가 있을까요?

답변 1

이는 역사적으로 Google의 내부 실천 방침에서 비롯되었습니다. 이들은 z-페이지라고 불립니다.


이 이름이 z로 끝나는 이유는 실제 응용 프로그램 엔드포인트와 이름이 충돌을 줄이기 위해서입니다(예: /status와 같은). 자세한 내용은 다음 동영상을 참조하세요: https://vimeo.com/173610242


Google 내에서는 /varz, /statusz, /rpcz와 같은 유사한 엔드포인트가 있습니다. Google에서 개발된 서비스는 자동으로 이러한 엔드포인트를 제공하여 건강 상태와 지표를 내보내며, 배포된 모든 서비스에서 노출된 지표/상태를 수집하는 도구도 있습니다.

프로메테우스와 같은 오픈 소스 도구는 (프로메테우스의 원래 저작자들도 구글 출신이기 때문에) 응용 프로그램에서 메트릭을 수집하기 위해 잘 알려진 엔드포인트에 접속하는 방식을 구현합니다. 마찬가지로 OpenCensus를 사용하여 응용 프로그램에서 z 페이지를 노출시켜 (이상적으로는 다른 포트에서) 문제를 진단할 수 있습니다.

답변 2

어플리케이션의 건강 상태를 확인하기 위해 /healthz 경로를 사용하는 관행은 어디에서 유래되었을까요? 이 주제에 대한 검색 엔진 최적화(SEO)를 고려한 한국어 글을 작성하겠습니다.
어플리케이션의 건강 상태를 모니터링하고 문제를 방지하기 위해 많은 기업과 개발자들이 /healthz라는 경로를 사용합니다. 이 관행은 DevOps 문화에서 유래되었으며 마이크로서비스 아키텍처 구현의 일환으로 생겨났습니다.
/dev/null Blog의 최근 글에 따르면, /healthz 경로는 구글이 Kubernetes를 개발하면서 시작되었습니다. Kubernetes는 대규모 컨테이너 오케스트레이션 플랫폼으로, 여러 서비스와 노드를 관리하며 이를 위해 건강 상태 체크를 수행해야 했습니다. 이때 구글은 모든 컨테이너에 대해 하나의 일관된 경로를 사용하기로 결정했는데, 그 경로가 바로 /healthz였습니다.
/healthz 경로는 단순히 200 OK라는 성공 상태 코드를 반환하는 것으로 나타나는 것이 아니라, 어플리케이션의 상태 정보를 제공하기도 합니다. 이 경로는 어플리케이션이 정상적으로 작동하는지 여부를 확인하는 데 사용될 수 있으며, 필요한 경우 추가적인 상태 정보를 포함할 수도 있습니다.
이러한 /healthz 경로의 사용은 Kubernetes를 비롯한 여러 플랫폼과 서비스에서 채택되어 널리 사용되고 있습니다. 예를 들어, Prometheus, Grafana, Elasticsearch, Kibana 등과 같은 모니터링 도구로부터도 지원을 받는 등 인기를 끌고 있습니다. 또한, 이를 통해 서비스의 건강 상태를 모니터링하고 필요한 조치를 취할 수 있으므로, 장애 발생 시 빠른 대응이 가능합니다.
요약하자면, /healthz 경로는 어플리케이션의 건강 상태를 모니터링하기 위해 사용되며, 이러한 관행은 구글이 개발한 Kubernetes를 통해 시작되었습니다. 이후 다양한 플랫폼과 도구에서 /healthz 경로를 지원하며, 어플리케이션의 상태 정보를 확인하고 문제에 대한 대응을 취할 수 있습니다. 이를 통해 어플리케이션의 안정성과 가용성을 향상시킬 수 있습니다.

반응형