다섯 살도 알 수 있게 · SRE

서비스 디스커버리가 뭐예요?

서비스 디스커버리를, 지금 어느 창구가 열려 있는지 알려주는 안내판 이야기로 풀어봤어요.

1번2번3번지도엔 2번이 열려있다는데...?창구가 늘었다 줄었다 하는데, 어디가 열렸는지 몰라서 닫힌 곳 앞에 줄서요

창구가 늘었다 줄었다 하는데, 어디가 열렸는지 몰라서 닫힌 곳 앞에 줄서요.종이 지도는 2번이 열려 있다고 하는데, 사실은 닫혔어요.

방금 두 개 더 늘었어요종이엔 아직 세 개뿐인데...기구 수가 자동으로 늘고 주는데, 종이 지도는 금방 틀려져요

기구 수가 자동으로 늘고 주는데, 종이 지도는 금방 틀려져요.방금 두 개 더 늘었는데, 아무도 종이를 못 고쳐요.

안내판1번 — 열림2번 — 열림3번 — 삭제됨4번 — 방금 등록!1번4번(새로 열림)창구가 열리고 닫힐 때마다, 스스로 안내판에 등록하고 지워요그래서 다들 항상 최신 안내판만 보면 돼요

창구가 열리고 닫힐 때마다, 스스로 안내판에 등록하고 지워요.그래서 다들 항상 최신 안내판만 보면 돼요.

열리면 스스로 등록해요'저 열었어요' 하고요
닫히면 스스로 지워요또는 헬스체크로 빠져요
남들은 안내판만 보면 돼요일일이 찾아다닐 필요 없어요
안내판도 여러 개 둬요안내판도 죽을 수 있으니까요
안내판1번2번4번(새)기구들도 서로 찾아갈 때 안내판을 봐요

기구들도 서로 찾아갈 때 안내판을 봐요.손님만이 아니라, 기구끼리도 안내판으로 찾아가요.

안내판2번 — 열림방금 닫혔는데 안내판은 아직 '열림'헛걸음해요 — 헬스 체크와 같이 써야 정확해요

방금 닫혔는데 안내판은 아직 '열림'이라고 하면, 헛걸음해요.헬스 체크와 같이 써야 안내판이 정확해요.

한 줄로

서비스 디스커버리 = 창구가 열리고 닫힐 때마다 스스로 안내판에 등록·삭제해서, 다들 항상 최신 안내판만 보면 되게 하는 일. 안내판이 틀리면 헛걸음하니 헬스 체크와 함께 써야 해요.

서버(서비스 인스턴스)가 늘고 줄 때마다 스스로 등록·해제되는 레지스트리를 두어, 다른 서비스나 로드 밸런서가 항상 최신 목록을 조회할 수 있게 하는 메커니즘이에요. DNS 기반으로 구현하기도 하고, 오토스케일링과 짝을 이뤄 꼭 필요해져요.

어른들은 이렇게 불러요

서비스 디스커버리
Service discovery
지금 뭐가 열려 있는지 알려주는 안내판 체계. 창구 수가 자꾸 바뀌는 곳엔 꼭 필요해요.
레지스트리
Registry
창구 목록이 실제로 적히는 안내판 그 자체. 다들 이 한 곳만 보면 돼요.
등록/해제
Register / deregister
창구가 열리거나 닫힐 때 스스로 하는 일. 누가 대신 적어주는 게 아니라, 스스로 적고 스스로 지워요.
헬스 체크 연동
Health-check integration
창구가 진짜 살아 있는지 확인하고 안내판을 고치는 일. 등록만 믿으면 틀린 안내판이 남을 수 있어요.
DNS 기반 디스커버리
DNS-based discovery
마을 안내소 같은 이름표로 찾는 방식. 마을 안내소 이야기와 같은 원리예요. → 마을 안내소
오토스케일링과의 관계
Relation to autoscaling
창구 수를 자동으로 늘리고 줄이는 일과의 짝. 창구 수가 자동으로 바뀌니까, 안내판도 자동이어야 해요.
로드 밸런서
Load balancer
손님을 어느 창구로 보낼지 정하는 안내원. 안내판을 보고 어디로 보낼지 정해요. → 줄 안내원
서비스 메시
Service mesh
기구들끼리 다니는 길 자체를 관리하는 체계. 서비스 디스커버리는 그 길 찾기의 한 부분이에요.
다음 이야기
몇 대를 켤지 정하는 운영 본부 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →