English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

트래픽이 도착하기 전에 식별되는 병목 노드

사이중심성 (Betweenness Centrality)

그래프의 모든 노드 쌍 사이에 그들을 연결하는 최단 경로가 존재합니다. 노드 N의 사이중심성은 모든 최단 경로 중 N을 통과하는 경로의 비율입니다.

높은 사이중심성을 가진 노드는 많은 다른 노드 쌍 사이의 경로 위에 위치합니다. 이 노드가 느려지면 많은 플로우가 느려집니다. 이 노드가 실패하면 많은 플로우가 끊어집니다.

아키텍처적 해석: 높은 사이중심성을 가진 노드는 모든 아키텍처 리뷰에서 특히 주의 깊게 살펴봐야 할 대상입니다. 이들은 병목, 단일 장애점(SPOF), 용량 핵심 구성 요소를 모두 겸합니다. 이러한 노드는 보통 다음과 같은 특징을 가집니다:

- DNS 제공자 (모든 클라이언트와 모든 서비스 사이)

- 인그레스 프록시 (모든 클라이언트와 모든 백엔드 사이)

- 데이터베이스 프라이머리 (모든 백엔드와 모든 읽기 사이)

- 인증 서비스 (모든 사용자와 모든 권한 있는 작업 사이)

측정 없이 감지하기: 그래프 위상만으로도 높은 betweenness(중개성)를 가진 노드를 식별할 수 있습니다. 트래픽 데이터가 필요하지 않으며, 아키텍처 다이어그램만 있으면 됩니다. 많은 노드 쌍 사이에 위치하는 노드는 구조적으로 중요합니다.

운영적 결과: 높은 betweenness를 가진 노드는 (1) 용량 여유, (2) 중복성, (3) 관찰 가능성, (4) 장애 대응 플레이북에 대해 불균형한 수준의 투자가 필요합니다.

Betweenness centrality: highlighted node sits on most shortest paths

다음과 같은 시스템이 있습니다: 100개의 외부 클라이언트 -> 1개의 DNS -> 1개의 CDN 벤더 -> 3개의 리버스 프록시 -> 12개의 백엔드 리플리카 -> {1개의 DB 프라이머리, 2개의 캐시 노드, 5개의 외부 API 엔드포인트}. 이 노드 클래스들을 betweenness centrality(중개성 중심성) 기준으로 순위를 매겨라(가장 높은 것부터), 그리고 상위 2개 순위가 왜 특별한 주의를 요하는지 설명하라.

가장 작은 절단은 가장 작은 조각을 분리합니다

평이한 언어로 설명한 최소 절단 정리

그래프에서 두 노드 사이의 최소 컷(min-cut) = 그들을 분리하기 위해 제거해야 하는 가장 적은 수의 엣지(또는 노드)입니다.

운영적 해석: 최소 컷은 최악의 경우의 영향 범위(blast radius)를 상한으로 제한합니다. '클라이언트'와 '데이터베이스' 사이의 최소 컷이 1개의 엣지(단일 프록시)라면, 그 엣지가 손실되면 모든 클라이언트가 데이터베이스와 연결이 끊깁니다. 최소 컷이 5라면, 완전히 연결이 끊어지려면 5개의 구성 요소를 동시에 잃어야 합니다. 불운한 상황이지만, 그 영향은 제한되어 있습니다.

영향 범위를 고려한 설계: 모든 중요한 경계에서 최소 컷을 증가시킵니다. 여러 개의 프록시; 여러 개의 캐시 노드; 데이터센터 간 여러 개의 네트워크 경로. 각 추가 요소는 최소 컷을 1씩 높입니다.

그래프 관점에서의 벌크헤드(Bulkhead) 패턴: 리소스를 서로 최소 컷을 공유하지 않는 별도의 서브그래프로 분할합니다. 한 서브그래프 내부의 장애는 엣지가 존재하지 않으므로 다른 서브그래프로 전파될 수 없습니다.

지름(Diameter)은 장애 전파 거리를 설정합니다

그래프 지름(Graph diameter) = 임의의 두 노드 사이의 최단 경로 중 가장 긴 길이를 의미합니다.

장애 전파: 노드가 장애를 일으키고 재시도가 역류할 때, 지름 거리만큼의 상류 노드까지 영향을 미칩니다. 지름이 3인 시스템(클라이언트 -> 프록시 -> 백엔드 -> DB)에서는 DB 장애가 재시도 폭풍(retry storm)으로 인해 3개의 상류 레이어에 영향을 줍니다.

영향: 더 짧은 지름 = 더 빠른 장애 격리이지만, 동시에 노드 집중도 높아집니다. 각 설계 방식에는 트레이드오프가 있습니다.

최소 절단(min-cut)은 폭발 반경의 상한선, 지름(diameter)은 전파 거리

실제 아키텍처의 최소 절단(Min-Cut) 계산

아키텍처 구성: DNS 1개, CDN 1개, 리버스 프록시 3개, 백엔드 리플리카 12개, DB 프라이머리 1개.

다음 세 가지 경계에서의 최소 절단(min-cut)을 계산하거나 추정하십시오: (1) 외부 클라이언트와 리버스 프록시 계층 사이; (2) 리버스 프록시 계층과 백엔드 계층 사이; (3) 백엔드 계층과 DB 프라이머리 사이. 각 경계에서 해당 최소 절단 값이 초과될 때 어떤 것이 실패하는지 명시하십시오.

그래프 메트릭을 통한 장애 모드 감사

종합

이제 높은 betweenness(중개성)를 가진 노드를 식별하고, 모든 경계에서 min-cut(최소 절단)을 계산하며, 지름(diameter)을 통해 장애 전파 거리를 추정할 수 있습니다.

세 가지 모두 적용해 보세요.

시스템 구성: 50개의 고객 엔드포인트 -> 1개의 DNS -> 2개의 CDN POP -> 4개의 리버스 프록시 -> 16개의 백엔드 리플리카 -> { DB 클러스터 (1개 프라이머리 + 2개 스탠바이), Redis 클러스터 (5개 노드), 3개의 외부 API }.

시스템을 감사하세요: (1) 가장 높은 betweenness를 가진 노드를 명시하고, (2) 가장 우려되는 경계에서 min-cut을 계산하며, (3) 두 가지 구체적인 아키텍처 변경 사항을 제안하세요 (각 변경 사항은 min-cut을 높여야 하며, 강화하는 경계의 이름을 명시해야 합니다).

보조 노트

보조 노트

이 기하학(geometric) 레슨은 실패 모드 및 폭발 반경(Failure Modes & Blast Radius) 메인 레슨을 그래프 지표(중개성, 최소 절단, 지름)를 통해 재구성합니다.

마지막 보조 레슨인 geometry_of_observability_and_capacity는 CDN PoP(접속 지점)의 수취 범위에 대한 보로이 셀(Voronoi cells), 지연 시간 삼각형의 광속 하한선, 그리고 프록시 계층에서 재검토되는 대기열 곡선을 다룹니다.

잘 하셨습니다.