본문 바로가기
Coding

새로운 교차 아키텍처 다이어그램 소개: 중요한 경로

by Emily Blunt 2022. 5. 8.
반응형

새로운 교차 아키텍처 다이어그램 소개: 중요한 경로

 

이 새로운 아키텍처 다이어그램은 C4 모델의 레벨 1–3에 걸쳐 있어 시스템에서 가능한 가장 빠른 보기를 제공합니다.

Unsplash의 charlesdeluvio의 사진

아키텍처 다이어그램은 놀랍습니다. 그들은 당신과 당신의 앱 이해 관계자 사이에 애플리케이션 아키텍처, 비즈니스 프로세스 및 데이터 흐름에 대한 공유된 이해를 만드는 데 도움이 됩니다.

약 1년 전, 나는 오늘날 우리가 사용하는 많은 다이어그램을 설명하는 5가지 유형의 아키텍처 다이어그램에 대한 게시물을 작성했습니다. 다음과 같은 다이어그램을 만들어야 하는 방법과 이유를 안내합니다. 흐름, 서비스, 페르소나, 하부 구조그리고 개발자 도표.

소프트웨어 아키텍처 다이어그램을 작성하기 위해 c4 모델에 느슨하게 적응합니다. 미묘한 차이가 있으며 둘 다 다른 방식으로 앱에 대한 중요한 정보를 제공하는 데 도움이 됩니다.

요전날, 나는 응용 프로그램을 라이브로 준비하기 위한 탁상용 연습을 준비하고 있었고 아키텍처 다이어그램 목록을 읽고 있었습니다. 하지만 뭔가 빠졌다.

현실적인 재해 시나리오를 준비할 수 있도록 시스템을 통해 중요한 경로를 보여주는 다이어그램이 필요했습니다. 아키텍처를 일반화했지만 내 애플리케이션에서 중단점이 어디에 있는지 알 수 있을 만큼 충분한 세부 정보를 제공할 만큼 구체적이었습니다.

다른 기사에서 이야기한 다이어그램 중 어느 것도 해당 시나리오를 다루지 않습니다. 새로운 유형이 필요했습니다.

임계 경로 다이어그램이 필요했습니다.

중요 경로 다이어그램은 전체 생태계의 지도를 의미합니다. 시스템에서 시스템으로의 주요 비즈니스 프로세스의 데이터 흐름을 추적합니다. 모든 점프, 팬아웃, 웹훅 등이 문서화되어 실패 지점을 쉽게 식별할 수 있습니다.

임계 경로 다이어그램 예

이 다이어그램을 사용하면 전체 시스템에서 데이터를 추적할 수 있습니다. 데이터가 애플리케이션에서 내부적으로 전송되는 방식을 추적하고 시스템 간의 모든 점프를 따릅니다. 기본 비즈니스 프로세스로 인해 3개 또는 4개의 애플리케이션이 업데이트되는 경우 이는 이를 설명하는 완벽한 다이어그램입니다.

청중

이 유형의 다이어그램에는 모든 사람에게 약간의 정보가 있습니다. 위에서 아래로 세부 사항이 있으므로 지원 담당자, 제품 팀 및 개발자에게 매우 중요합니다.

고려 사항

중요 경로 다이어그램에 모든 API에 대한 모든 세부 정보를 넣을 필요는 없습니다. 유사한 끝점을 함께 일반화하고 그룹화해야 합니다. 기술적으로 모두 동일한 흐름을 따르는 끝점 집합이 있는 경우( 예를 들어 API 게이트웨이에서 Lambda에서 DynamoDB로, DynamoDB로 스트림), 해당 패턴을 한 번 포함할 수 있습니다.

데이터 흐름에 대해 이야기할 때 시스템을 통한 경로 비즈니스 프로세스는 다음과 같습니다. Gopher Holes Unlimited의 예를 들면 새로운 고퍼가 시스템에 추가될 때 어떤 일이 발생하는지 알 수 있습니다.

새 고퍼 추가를 위한 데이터 흐름

구성품

  • 창시자 — 비즈니스 프로세스 또는 데이터 흐름이 시작되는 곳. 다이어그램에 다음과 같이 표시됩니다.
  • 애플리케이션 — 생태계에서 역할을 하는 별개의 독립 실행형 애플리케이션 - 알려진 앱 — 귀하가 소유하거나 내부적으로 어떻게 구성되어 있는지 알고 있는 애플리케이션. 다이어그램에 다음과 같이 표시됩니다. 윤곽이 그려진 흰색 상자 - 타사 앱 — 귀하가 소유하지 않았거나 작동 방식을 알지 못하는 애플리케이션. 다이어그램에 다음과 같이 표시됩니다. 블랙 박스
  • 데이터 흐름 — 시스템을 통한 데이터의 진행을 보여주는 일련의 연결된 라인입니다. 대표 비동기 호출의 점선 그리고 동기 호출에 대한 실선. 여러 데이터 흐름을 표시할 때 색상별로 구성하는 것이 가장 좋습니다.
  • 하부 구조 — 알려진 앱의 경우 애플리케이션이 구축되는 방식과 시스템을 통해 흐르는 데이터를 조작하는 서비스에 대한 일반화된 세부 정보를 보여줍니다. 대표 관련된 서비스의 이미지.
  • UI 상호 작용 — 일반적으로 데이터 흐름을 시작하는 양식 작성 또는 검색 수행과 같은 작업입니다. 에 의해 대표 레이블이 있는 직사각형

위의 예에서 창시자 데이터 흐름의 시작은 "Add New Gopher" UI 상호 작용. 이 비즈니스 프로세스에서 상호 작용은 사용자에게 gopher에 필요한 모든 데이터 요소를 추가하는 과정을 안내하는 UI의 마법사입니다. 화살표를 따라갈 때 우리는 별에서 시작합니다.

흐름은 검색 메커니즘을 사용하여 기존 고퍼를 찾습니다. 해당 검색 엔드포인트는 AppSync를 사용하여 도우미 Lambda 함수인 DynamoDB에서 고퍼를 찾고 National Rodent Registry에서 API를 호출합니다.

데이터가 제출되면 API 게이트웨이에서 DynamoDB로, DynamoDB에서 Step Functions로 스트리밍되는 기본 데이터 수집 흐름을 거칩니다(해당 패턴은 이 게시물에 설명되어 있음).

완료되면 SNS 주제는 Zapier가 선택한 메시지를 게시하여 데이터를 타사 앱 Varmint Hunters Collective 및 Small Animal Preservation Society. 또한 자동 확장 EC2 집합 위에 ALB를 통해 데이터를 가져오는 National Rodent Registry에 게시합니다.

데이터가 SNS를 통해 통합자에게 도달하면 데이터 흐름이 완료됩니다. 화살표를 추적하여 새 고퍼가 추가될 때 4개의 시스템이 업데이트됨을 알 수 있습니다. 중요한 데이터 흐름처럼 들립니다!

이 비즈니스 프로세스는 임계 경로 다이어그램이 왜 중요한지를 보여주는 완벽한 예입니다. 가장 중요한 데이터 흐름을 볼 수 있습니다. 또는 가장 연약한. 또는 가장 바쁘다. 중요 경로 다이어그램을 작성하면 각 서비스 데이터가 통과하는 것을 보여주므로 문제가 발생하기 전에 문제 영역을 더 쉽게 격리할 수 있습니다.

모든 기본 데이터 흐름을 동일한 다이어그램에 배치하면 밀도가 높고 복잡해 보입니다. 이것은 따라가기 어렵게 만들고 지나치게 복잡하게 보일 수 있습니다. 사람들이 무슨 일이 일어나고 있는지 알아내지 못하게 할 수 있습니다.

반대로 앱의 복잡하거나 트래픽이 많거나 폭발 반경이 큰 영역을 표시하는 데도 도움이 됩니다. 데이터 밀도가 중요함을 보여주고, 항상은 아니지만.

즉, 중요 경로 다이어그램을 대화형으로 만드는 것이 더 간단하고 따르기 쉽게 보이게 하는 열쇠입니다.

나는 diagrams.net(이전의 draw.io)이라는 무료 애플리케이션에서 모든 다이어그램을 그립니다. 중요 경로 다이어그램을 작성할 때 각 데이터 흐름을 자체 레이어에 넣습니다. 그런 다음 레이어의 가시성을 토글하는 버튼을 키에 추가하여 전체 흐름을 쉽게 표시/숨길 수 있습니다.

중요 경로 다이어그램 키

이 버튼은 열쇠 그래서 그들은 한 곳에서 통합됩니다. 다이어그램의 소비자는 단추를 클릭하여 모든 데이터 흐름 라인을 숨기거나 다시 클릭하여 다시 가져올 수 있습니다. Diagrams.net은 레이어를 생성하고 레이어를 표시하거나 숨기는 버튼을 만드는 방법에 대한 완전한 단계별 자습서를 제공합니다.

대화형 버전의 Gopher Holes Unlimited 임계 경로 다이어그램을 보려면 여기를 클릭하십시오.

임계 경로 다이어그램에는 여러 사용 사례가 있습니다.

  • 시스템 차트 — 에코시스템과 관련된 모든 애플리케이션과 애플리케이션이 결합된 방식을 나열합니다.
  • 재해 계획 — 재해가 발생할 경우 잠재적인 병목 현상 및 폭발 반경이 높은 영역을 식별합니다.
  • 아키텍처 다이어그램 라이트 — 사용 중인 아키텍처 유형을 보여줍니다. Gopher Holes Unlimited는 서버리스 애플리케이션이고 National Rodent Registry는 컨테이너화된 자동 크기 조정 ec2 앱 등…

이러한 사용 사례 각각은 생산 준비 계획을 수립하는 데 중요합니다. 임계 경로 다이어그램을 사용하면 데이터가 A 지점에서 B 지점으로 이동하는 방법을 일반화하고 자세히 설명하는 방식으로 모든 조각이 사용자 앞에 표시됩니다.

모든 조각이 없으면 퍼즐을 완성할 수 없습니다.

이것을 C4 모델과 비교하면 이 유형의 아키텍처 다이어그램에는 처음 세 수준의 요소가 포함됩니다( 문맥, 컨테이너그리고 구성품). 이것은 한 눈에 세부 사항의 흥미롭고 교차 절단 혼합을 제공합니다. 그러나 임계 경로 다이어그램은 다른 유형의 다이어그램으로 보완되어야 합니다. 전체 그림을 그리는 것만으로는 충분하지 않습니다.

마지막 수준의 세부 정보가 필요합니다. 종속성 또는 사물이 연결된 방식에 대한 세부 사항을 표시하려면 더 자세한 다이어그램의 뉘앙스가 필요합니다. 인프라 다이어그램은 재해 시나리오를 진행할 때 필요한 경우 세부 정보를 제공합니다. C4 모델에서는 레벨 4( 암호).

임계 경로 다이어그램은 뒷주머니에 넣을 수 있는 훌륭한 도구입니다. "집계" 다이어그램으로, 여러 다른 유형의 다이어그램에서 중요한 부분을 하나로 결합합니다.

전체 생태계의 큰 그림을 얻는 데 사용됩니다. 스로틀링 및 문제점을 발견할 수 있을 만큼 충분한 세부 정보를 제공하지만 문제가 발생하지 않도록 세부 정보를 충분히 추상화하여 조직 전체의 모든 사람과 공유하기에 좋습니다. 중요한 경로 다이어그램은 개발자, 지원, 기술 지원 및 SRE 팀에게 매우 유용할 수 있습니다.

이 다이어그램은 도구 상자의 다른 다이어그램을 대체하지 않지만 시스템 다이어그램을 작성할 때 개선 사항 및 시작점으로 사용해야 합니다.

솔루션 아키텍트인 경우 업무의 중요한 부분은 애플리케이션의 이해 관계자와 공유된 이해를 구축하는 것입니다. 임계 경로 다이어그램 또는 실제로 모든 유형의 다이어그램을 작성하면 해당 이해를 구축할 가능성이 크게 높아집니다.

사용해 보고, 어떻게 생각하는지 알려주고, 구축한 내용을 공유하세요!

즐거운 코딩!

반응형

댓글