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 분리 방식이 실무적으로 괜찮은지 피드백 주시면 많이 도움될 것 같습니다. 감사합니다.
댓글을 작성해보세요.