Django 배포용 probe endpoint 패키지 하나 만들어봤습니다

Django 배포용 probe endpoint 패키지 하나 만들어봤습니다

안녕하세요.

Django 프로젝트를 배포할 때 health check endpoint를 매번 비슷하게 만들게 돼서, 아예 작은 패키지로 분리해봤습니다.

이름은 django-deploy-probes이고, Django 애플리케이션에 아래 같은 endpoint를 붙여주는 패키지입니다.

- /healthz

- /readyz

- /startupz

- /version

주로 이런 상황을 생각하고 만들었습니다.

- Docker health check

- Kubernetes liveness/readiness/startup probe

- rolling deployment

- blue-green deployment

- CI/CD 배포 검증

구현하면서 가장 신경 쓴 부분은 /healthz를 최대한 가볍게 두는 것이었습니다.

DB나 Redis 같은 외부 의존성 체크까지 전부 healthz에 넣기보다, readiness나 startup 성격의 체크와 분리하는 쪽이 실무적으로 더 낫다고 생각해서 그 방향으로 설계했습니다.

설치는 아래처럼 하면 됩니다.

pip install django-deploy-probes

그리고 urls.py에 추가하면 바로 쓸 수 있습니다.

from django.urls import include, path

urlpatterns = [
    path("probes/", include("django_deploy_probes.urls")),
]

 

GitHub: https://github.com/emfpdlzj/django-deploy-probes

PyPI: https://pypi.org/project/django-deploy-probes/

 

아직 첫 공개 버전이라 부족한 부분이 있을 수 있습니다.
실제로 Django를 운영 환경에서 배포해보신 분들 기준으로, 이런 endpoint 분리 방식이 실무적으로 괜찮은지 피드백 주시면 많이 도움될 것 같습니다. 감사합니다.

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘