블로그

박민정

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-probesPyPI: https://pypi.org/project/django-deploy-probes/ 아직 첫 공개 버전이라 부족한 부분이 있을 수 있습니다.실제로 Django를 운영 환경에서 배포해보신 분들 기준으로, 이런 endpoint 분리 방식이 실무적으로 괜찮은지 피드백 주시면 많이 도움될 것 같습니다. 감사합니다.    

데브옵스 · 인프라django파이썬

채널톡 아이콘