7장 FlowNote를 로컬에서 실행하고 건강 상태를 분리한다
프로젝트 root에서 실행한다.
npm run app
curl -s http://127.0.0.1:8080/api/runtime | jq
curl -i http://127.0.0.1:8080/health/live
curl -i http://127.0.0.1:8080/health/ready
liveness는 process가 교착되어 재시작이 필요한지를 묻는다. readiness는 지금 traffic을 받아도 되는지를 묻는다. DB가 잠시 느리다고 liveness를 실패시키면 모든 replica가 재시작되어 장애를 키울 수 있다. 반대로 readiness가 항상 200이면 준비되지 않은 Pod에 traffic이 간다. startup probe는 느린 초기화 동안 liveness가 성급하게 죽이지 않게 한다.
FlowNote는 학습을 위해 dependency가 없다. 실무 서비스의 readiness는 필수 의존성만 확인하고, 외부 시스템 전체를 연쇄 호출하지 않는다. /api/runtime의 version과 commit은 smoke test와 incident timeline을 연결한다. secret이나 internal host는 절대 노출하지 않는다.