분산 서비스에서의 R&R에 대한 고찰
이것 또한 최근 포스트와 마찬가지로, 최근에 진행했던 프로젝트의 회고입니다.
개요
해당 프로젝트에는 개인적으로 몇가지 이해가 어려운 부분들이 좀 있었습니다. 그 중 R&R에 대해 제가 품은 의문과 그에 대한 제 나름의 해결 방법을 서술하고자 합니다.
본문
어떤 부분이?
- API GW와 서비스만 책임 분리
- API GW와 인증 및 인가 책임
- 각 서비스 간의 역할과 책임 분리
API GW와 서비스간의 책임 분리에 대해
설계 당시부터 지금까지 모든 서비스는 k8s에 pod로써 운영되고 있습니다. 대략적으로 네트워크 요청 트래픽은 ingress -> API GW -> each service
로 흐릅니다. 이 중 API GW는 솔루션이 아니라 자사에서 내부적으로 만든 것입니다. 기능으론 일반적인 API GW와 유사하게 요청에 대해 특정 서비스로의 라우팅과 요청에 대한 인증 토큰 검증 등이 있습니다. 그리고 각 서비스는 특정 데이터를 다루는 서비스와 저장하는 DB를 세트로 구성됩니다. 제가 보는 문제는 이 구조로 인해 생성되는 gray zone이 있습니다.