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

un

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

교통통로가 도착하기 전에 병목 노드 식별

사이퍼시티

그래프의 모든 노드 쌍에 대해 그 사이의 가장 짧은 경로가 있습니다. 노드 N의 사이퍼시티 = 모든 가장 짧은 경로 중 N를 통과하는 비율입니다.

노드가 높은 사이퍼시티를 가질 때, 다른 쌍 사이의 경로를 통과하는 많은 흐름이 있습니다. 이 노드가 느려지면 많은 흐름이 느려집니다. 이 노드가 실패하면 많은 흐름이 끊깁니다.

아키텍처 읽기: 높은 사이퍼시티 노드는 모든 아키텍처 리뷰에서 특별한 주의를 기울여야 합니다. 이들은 병목, SPOF, 한 곳에서 용량이 중요한 구성 요소입니다. 이들은 종종:

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

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

- 데이터베이스 주(모든 백엔드와 읽기 사이)

- 인증 서비스(모든 사용자와 인증된 작업 사이)

측정 없이 탐지: 그래프 토폴로지 alone이 높은 사이퍼시티 노드를 식별합니다. 트래픽 데이터가 필요하지 않습니다. 아키텍처 다이어그램이 필요합니다. 다른 쌍 사이에 많은 경로를 차지하는 노드는 구조적으로 중요합니다.

운영적 결과: 높은 사이퍼시티 노드는 (1) 용량 헤드룸, (2)冗餘, (3) 관찰 가능성 및 (4) 인시던트 리스폰스 플레이북에 비례한 투자에 적합합니다.

사이퍼시티: 하이라이트된 노드가 가장 짧은 경로의 대부분을 통과합니다

시스템이 다음 구조를 가집니다: 100 외부 클라이언트 -> 1 DNS -> 1 CDN 공급자 -> 3 역프록시 -> 12 백엔드 복제본 -> {1 DB 주, 2 캐시 노드, 5 외부 API 엔드포인트}. 사이퍼시티 순위를 매겨서 (가장 높은 순서대로) 그리고 왜 상위 두 순위가 특별한 관심을 받을 만한 이유를 설명하세요.

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

min-cut 정리

그래프의 두 노드 사이의 min-cut = 이들을 분리해야 하는 가장 작은 수의 엣지(또는 노드)입니다.

운영 중인 읽기: min-cut이 최악의 경우 폭발 반경을 제한합니다. '클라이언트'와 '데이터베이스' 사이의 min-cut이 1개 엣지(단일 프록시)라면, 그 엣지를 잃으면 모든 클라이언트가 데이터베이스에서 분리됩니다. min-cut이 5라면, 완전히 분리하려면 동시에 5개의 구성 요소를 잃어야 합니다; 불행하지만 한계가 있습니다.

폭발 반경을 위한 설계: 중요한 경계마다 min-cut을 높여주세요. 여러 프록시; 여러 캐시 노드; DC 사이의 네트워크 경로 여러 개. 각 추가는 min-cut을 1씩 높입니다.

그래프 용의 배수 패턴: 자원을 서로 다른 하위 그래프로 나누어 서로 다른 min-cut을 공유하지 않게 합니다. 한 하위 그래프에서 실패가 발생해도 다른 것들로 전파되지 않습니다. 그 이유는 엣지가 존재하지 않기 때문입니다.

지름이 설정된 실패 확산 거리

그래프 지름 = 두 노드 사이의 가장 긴 가장 짧은 경로입니다.

실패 확산: 노드가 실패하고 재시도가 백플로우되면, 그들은 최대 지름 거리까지 상류 노드를 건드입니다. 지름이 3인 시스템(클라이언트 -> 프록시 -> 백엔드 -> DB)이라면, DB 실패가 3개 상류 계층에서 재시도 폭풍을 유발합니다.

의미: 지름이 짧을수록 실패 격리 속도가 빠르지만, 동시에 노드 집중도가 높아집니다. 각 디자인에는 장단점이 있습니다.

min-cut으로 폭발 반경을 묘사하고 지름으로 실패 확산 거리를 묘사한 이미지

실제 아키텍처에서 Compute Min-Cut

아키텍처: 1 DNS, 1 CDN, 3 역프록시, 12 백엔드 복제본, 1 DB 주-primary.

3가지 경계에서 min-cut을 계산(추정)하거나, 각 경계마다 다음을 작성하세요: (1) 외부 클라이언트와 역프록시 계층 사이의 min-cut; (2) 역프록시 계층과 백엔드 계층 사이의 min-cut; (3) 백엔드 계층과 DB 주-primary 사이의 min-cut. 각 경우마다, 해당 min-cut이 초과될 때 발생하는 실패를 명시하세요.

그래프 메트릭을 통해 실패 모드 감사

합성

이제 높은 사이클 간섭 노드를 식별할 수 있으며, 모든 경계에서 min-cut을 계산하고 실패 확산 거리를 diameter로 추정할 수 있습니다.

모두 적용하세요.

시스템: 50 고객 엔드포인트 -> 1 DNS -> 2 CDN POPs -> 4 역방향 프록시 -> 16 백엔드 복제본 -> { DB 클러스터 (1 주-primary + 2 standbys), Redis 클러스터 (5 노드), 3 외부 API }.

시스템을 감사하세요: (1) 가장 높은 사이클 간섭 노드의 이름을 작성하세요, (2) 가장 우려되는 경계에서 min-cut을 계산하세요, (3) min-cut을 높이는 두 가지 구체적인 아키텍처 변경 제안을提出하세요(각 변경이 강화하는 경계를 명시합니다).

동료 노트

동료 노트

이 기하학-lesson은 Failure Modes & Blast Radius 주 lesson을 그래프 메트릭 (사이의 구조, min-cut, 지름)으로 재해석한다.

마지막 동료, geometry_of_observability_and_capacity,는 CDN PoP 수용지의 Voronoi 셀, 속도-빛 바닥을 다루는 지연 삼각형 및 프록시 계층에서 다시 방문한 대기열 곡선이다.

잘 했다.