다섯 살도 알 수 있게 · SRE
서비스 디스커버리가 뭐예요?
서비스 디스커버리를, 지금 어느 창구가 열려 있는지 알려주는 안내판 이야기로 풀어봤어요.
창구가 늘었다 줄었다 하는데, 어디가 열렸는지 몰라서 닫힌 곳 앞에 줄서요.종이 지도는 2번이 열려 있다고 하는데, 사실은 닫혔어요.
기구 수가 자동으로 늘고 주는데, 종이 지도는 금방 틀려져요.방금 두 개 더 늘었는데, 아무도 종이를 못 고쳐요.
창구가 열리고 닫힐 때마다, 스스로 안내판에 등록하고 지워요.그래서 다들 항상 최신 안내판만 보면 돼요.
열리면 스스로 등록해요'저 열었어요' 하고요
닫히면 스스로 지워요또는 헬스체크로 빠져요
남들은 안내판만 보면 돼요일일이 찾아다닐 필요 없어요
안내판도 여러 개 둬요안내판도 죽을 수 있으니까요
기구들도 서로 찾아갈 때 안내판을 봐요.손님만이 아니라, 기구끼리도 안내판으로 찾아가요.
방금 닫혔는데 안내판은 아직 '열림'이라고 하면, 헛걸음해요.헬스 체크와 같이 써야 안내판이 정확해요.
한 줄로
서비스 디스커버리 = 창구가 열리고 닫힐 때마다 스스로 안내판에 등록·삭제해서, 다들 항상 최신 안내판만 보면 되게 하는 일. 안내판이 틀리면 헛걸음하니 헬스 체크와 함께 써야 해요.
서버(서비스 인스턴스)가 늘고 줄 때마다 스스로 등록·해제되는 레지스트리를 두어, 다른 서비스나 로드 밸런서가 항상 최신 목록을 조회할 수 있게 하는 메커니즘이에요. DNS 기반으로 구현하기도 하고, 오토스케일링과 짝을 이뤄 꼭 필요해져요.
어른들은 이렇게 불러요
- 서비스 디스커버리
Service discovery - 지금 뭐가 열려 있는지 알려주는 안내판 체계. 창구 수가 자꾸 바뀌는 곳엔 꼭 필요해요.
- 레지스트리
Registry - 창구 목록이 실제로 적히는 안내판 그 자체. 다들 이 한 곳만 보면 돼요.
- 등록/해제
Register / deregister - 창구가 열리거나 닫힐 때 스스로 하는 일. 누가 대신 적어주는 게 아니라, 스스로 적고 스스로 지워요.
- 헬스 체크 연동
Health-check integration - 창구가 진짜 살아 있는지 확인하고 안내판을 고치는 일. 등록만 믿으면 틀린 안내판이 남을 수 있어요.
- DNS 기반 디스커버리
DNS-based discovery - 마을 안내소 같은 이름표로 찾는 방식. 마을 안내소 이야기와 같은 원리예요. → 마을 안내소
- 오토스케일링과의 관계
Relation to autoscaling - 창구 수를 자동으로 늘리고 줄이는 일과의 짝. 창구 수가 자동으로 바뀌니까, 안내판도 자동이어야 해요.
- 로드 밸런서
Load balancer - 손님을 어느 창구로 보낼지 정하는 안내원. 안내판을 보고 어디로 보낼지 정해요. → 줄 안내원
- 서비스 메시
Service mesh - 기구들끼리 다니는 길 자체를 관리하는 체계. 서비스 디스커버리는 그 길 찾기의 한 부분이에요.
다음 이야기
몇 대를 켤지 정하는 운영 본부 →