Github의 최신 지배력, Tencent Architects가 제작한 "Ceiling Notes" 500페이지 분량의 마이크로서비스 아키텍처 매뉴얼

머리말

지난 5년 동안 마이크로서비스 아키텍처 스타일(애플리케이션을 세분화되고 느슨하게 결합되고 독립적으로 배포 가능한 일련의 서비스로 구성)이 점차 대중화되었습니다. 회사 규모에 관계없이 마이크로서비스는 엔지니어링 팀만으로도 점점 더 실현 가능해지고 있습니다. 오늘날 마이크로서비스는 더 이상 개념이 아니라 거스를 수 없는 트렌드로, 대형 인터넷 전자상거래 기업에서 실제 사례가 풍부하고 효과가 매우 좋습니다. 그러나 마이크로서비스 아키텍처로 전환하는 데 관심이 있는 다른 기술 애호가들에게는 마이크로서비스가 어떻게 구현될 것인지에 대해 여전히 많은 불분명한 점이 있습니다.

오늘 편집자는 Tencent의 형들이 요약한 500페이지 이상의 마이크로 서비스 아키텍처 연구 소책자를 여러분과 공유할 것입니다!이 문서를 공부함으로써 독자는 마이크로 서비스 애플리케이션을 개발하고 배포하는 방법 과 microservices 효과적인 지속적 배포 및 Kubernetes, Docker 및 Google Container Engine으로 예제를 개발하는 방법.

좋아요, 더 이상 고민하지 않고 먼저 카탈로그를 살펴보겠습니다!

디렉토리 개요

메인 콘텐츠

이 글은 총 13개의 챕터로 구성되어 있어 마이크로서비스의 실제 전투를 철저히 해석할 수 있도록 안내하고 있습니다 . !

1장 마이크로서비스의 설계 및 운영,

  • (1) 마이크로서비스는 건축 양식일 뿐만 아니라 일련의 문화적 습관의 집합체이기도 합니다. 자율성, 복구 가능성, 투명성, 자동화 및 일관성이라는 다섯 가지 핵심 원칙이 뒷받침됩니다.
  • (2) 마이크로서비스는 개발 충돌을 줄이고 자율성, 기술적 유연성 및 느슨한 결합을 달성합니다.
  • (3) 마이크로서비스의 설계 프로세스는 풍부한 비즈니스 도메인 지식이 필요할 뿐만 아니라 개발자가 팀 간에 우선순위의 균형을 유지해야 하기 때문에 매우 어렵습니다.
  • (4) 서비스는 계약을 다른 서비스에 노출합니다. 잘 설계된 계약은 간결하고 완전하며 예측 가능합니다.
  • (5) 장기 실행 소프트웨어 시스템에서는 복잡성이 불가피하지만 개발자는 충돌과 위험을 줄이기 위해 일부 결정을 내린 다음 이러한 시스템에서 계속해서 가치를 제공할 수 있습니다.
  • (6) 자동화되고 검증 가능한 릴리스 작업은 배포 프로세스를 보다 안정적이고 "사고 없는" 상태로 만들어 마이크로서비스의 위험을 줄일 수 있습니다.
  • (7) 컨테이너 기술은 운영 환경에서 서비스 간의 차이점을 추상화하고 다양한 유형의 마이크로 서비스의 대규모 관리 방법을 단순화합니다.
  • (8) 실패는 불가피합니다. 팀의 경우 마이크로서비스는 투명하고 관찰하기 쉬워야 팀이 서비스 운영 및 유지 관리를 적극적으로 관리, 이해하고 진정으로 소유할 수 있으며 그 반대의 경우도 마찬가지입니다.
  • (9) 마이크로서비스를 채택하는 팀은 운영 및 유지 관리에서 더 성숙해야 하며 설계 및 개발 단계뿐만 아니라 서비스의 전체 수명 주기에 집중해야 합니다.

2장 SimpleBank Company의 마이크로서비스,

  • (1) 마이크로서비스는 제품의 공급 범위, 글로벌 배포 및 규제 압력과 같은 다차원적 복잡성이 있는 시스템에 매우 적합합니다.
  • (2) 마이크로서비스를 설계할 때 제품 비즈니스 도메인을 이해하는 것이 중요합니다.
  • (3) 서비스 상호 작용은 조율되거나 편성될 수 있습니다. 후자는 시스템의 복잡성을 증가시키지만 시스템의 서비스 간 결합을 줄일 수 있습니다.
  • (4) API 게이트웨이는 마이크로 서비스 아키텍처의 복잡성을 캡슐화하고 추상화하는 일반적인 패턴이므로 프런트 엔드 또는 외부 소비자는 복잡성의 이 부분을 고려할 필요가 없습니다.
  • (5) 개발자가 자신의 서비스가 프로덕션 환경의 트래픽 압력을 처리할 수 있다고 완전히 신뢰하는 경우 서비스가 프로덕션 준비가 되어 있다고 말할 수 있습니다.
  • (6) 개발자가 서비스를 안정적으로 배포하고 모니터링할 수 있으면 서비스에 대한 확신을 가질 수 있습니다.
  • (7) 서비스 모니터링에는 서비스 수준에서 로그 집계 및 상태 확인이 포함되어야 합니다.
  • (8) 마이크로서비스는 하드웨어, 통신, 종속성 등의 이유로 실패할 것이며 코드의 결함뿐만 아니라 실패가 발생할 것입니다.
  • (9) 마이크로서비스 애플리케이션의 현재 및 과거 성능을 이해하려면 서비스 간 비즈니스 지표, 로그 및 링크 추적 기록을 수집하는 것이 중요합니다.
  • (10) 마이크로서비스 및 지원 팀의 수가 계속 증가함에 따라 기술적 차이와 격리가 기술 팀의 과제가 될 것입니다.
  • (11) 기술적 차이와 격리를 피하려면 사용된 기술 기반에 관계없이 서로 다른 팀 간에 유사한 표준과 모범 사례를 채택해야 합니다.

3장 마이크로서비스 애플리케이션의 아키텍처

  • (1) 별도로 마이크로서비스의 내부는 모놀리식 애플리케이션과 유사합니다.
  • (2) 마이크로서비스 응용 프로그램은 블록과 같습니다. 최종 모양이 지정되지는 않지만 일련의 지침과 높은 수준의 개요 모델에 따라 안내됩니다.
  • (3) 마이크로서비스 아키텍처를 안내하는 원칙은 조직의 목표를 반영하고 팀의 실행에 영향을 미칩니다.
  • (4) 아키텍처 계획은 전체 응용 프로그램을 지정하기보다는 건전한 개발을 촉진해야 합니다.
  • (5) 마이크로서비스 애플리케이션은 플랫폼 계층, 서비스 계층, 경계 계층 및 클라이언트 계층의 4개 계층으로 구성됩니다.
  • (6) 플랫폼 계층은 생산 지향 서비스 개발을 지원하는 일련의 도구와 인프라를 제공합니다.
  • (7) 마이크로 서비스 응용 프로그램에서 동기식 통신은 일반적으로 첫 번째 선택이며 명령 유형의 상호 작용에 매우 적합하지만 결합과 불안정성을 증가시키는 단점도 있습니다.
  • (8) 비동기식 통신은 더 유연하며 복잡성이 증가하는 대신 빠른 시스템 진화에 적응할 수 있습니다.
  • (9) 일반적인 비동기 통신 패턴에는 대기열과 게시-구독이 포함됩니다.
  • (10) 경계층은 외부 소비자에게 매우 적합한 마이크로 서비스 응용 프로그램의 외관입니다.
  • (11) 일반적인 경계 계층 패턴에는 API 게이트웨이 및 소비자 중심 게이트웨이(예: GraphQL)가 포함됩니다.
  • (12) 웹사이트 및 모바일 애플리케이션과 같은 클라이언트 애플리케이션은 경계 계층을 통해 모바일 백엔드와 상호 작용합니다.
  • (13) 클라이언트는 점점 더 비대해질 위험이 있지만 이제 마이크로서비스 원칙을 프런트엔드 애플리케이션에 적용하는 일부 기술도 나타나기 시작했습니다.

4장 새로운 기능 설계;

  • (1) 비즈니스 문제 이해 - 엔터티 및 사용 사례 식별 - 서비스 책임 분담, 이 프로세스를 사용하여 서비스 범위를 설명할 수 있습니다.
  • (2) 서비스는 비즈니스 기능, 사용 사례 및 가변성 등 다양한 방식으로 나눌 수 있습니다. 독자는 이러한 방법을 조합하여 사용할 수 있습니다.
  • (3) 좋은 분할 결정은 서비스가 마이크로 서비스의 세 가지 주요 특성을 충족하도록 만들 수 있습니다. 단일 책임만 담당, 교체 가능 및 독립적으로 배포 가능.
  • (4) 제한된 컨텍스트는 일반적으로 서비스 경계에 해당하며 이는 서비스의 향후 발전을 생각할 때 매우 효과적인 방법입니다.
  • (5) 가변 필드에 대한 심층적 사고를 통해 개발자는 함께 변경될 필드를 캡슐화하여 향후 변경에 대한 적응성을 향상시킬 수 있습니다.
  • (6) 서비스 분할이 좋지 않으면 나중에 수정하는 비용이 특히 높을 것입니다. 그 이유는 당시 개발자가 여러 코드 베이스를 리팩터링해야 하고 결과적으로 작업 부하가 특히 커지기 때문입니다.
  • (7) 기술 기능을 서비스로 캡슐화하여 비즈니스 기능을 단순화할 수 있을 뿐만 아니라 비즈니스 기능을 지원하고 서비스 가용성을 극대화할 수 있습니다.
  • (8) 서비스 경계가 명확하지 않은 경우에는 거친 서비스를 선택하되 향후 분할에 대비하기 위해 서비스 내에서 모듈식 솔루션을 적극적으로 채택합니다.
  • (9) 오프라인 서비스는 특히 어려운 작업이지만 마이크로서비스 애플리케이션의 지속적인 개발로 인해 언젠가는 이 작업을 수행해야 합니다.
  • (10) 대규모 조직에서는 여러 팀 간의 소유권 분할이 필요하지만 이로 인해 제어력 약화, 설계 제한, 일관성 없는 개발 속도와 같은 새로운 문제가 발생합니다.
  • (11) 개방형 코드, 명확한 인터페이스, 지속적인 커뮤니케이션, DRY 원칙에 대한 완화된 요구 사항은 모두 팀 간의 긴장을 완화할 수 있습니다.

5장 마이크로서비스의 트랜잭션 및 쿼리

  • (1) 교차 서비스 상호 작용에서 ACID 특성을 달성하기 어렵고 마이크로 서비스는 일관성을 달성하기 위해 다른 방법을 채택해야 합니다.
  • (2) 2단계 커밋과 같은 조정 방식은 잠금 작업을 도입하고 확장성이 좋지 않습니다.
  • (3) 이벤트 기반 아키텍처는 독립 구성 요소 간의 결합을 해제하고 마이크로 서비스 응용 프로그램의 비즈니스 논리 및 쿼리 확장성을 위한 기반을 마련할 수 있습니다.
  • (4) 일관성보다는 가용성이 높은 경향이 있어 아키텍처의 확장성을 높일 수 있습니다.
  • (5) Saga는 그룹 메시지에 의해 구동되는 독립적인 로컬 트랜잭션으로 구성된 글로벌 작업입니다. 일관성을 유지하기 위해 보상 작업을 통해 잘못된 상태를 롤백합니다.
  • (6) 실제 환경을 반영한 마이크로서비스를 구축할 때 장애 시나리오를 예측하고 대비하는 것은 콘텐츠의 매우 중요한 부분이며 운영의 격리는 그다지 중요하지 않습니다.
  • (7) 일반적으로 여러 API의 결과를 결합하여 여러 마이크로 서비스에 걸쳐 쿼리 기능을 구현합니다.
  • (8) 효율적인 복합 쿼리는 CQRS 모드를 사용하여 독립적인 읽기 데이터 모델 세트를 구현해야 합니다. 특히 해당 쿼리 모드가 다른 데이터 스토리지 시스템을 사용해야 하는 경우 더욱 그렇습니다.

6장 고신뢰 서비스 설계

  • (1) 복잡한 분산 시스템에서는 결함이 불가피합니다. 개발자는 이러한 시스템을 설계할 때 내결함성을 고려해야 합니다.
  • (2) 각 서비스의 가용성은 전체 애플리케이션의 가용성에 영향을 미칩니다.
  • (3) 장애 위험을 완화하기 위해 각 애플리케이션에 대한 적절한 전략을 개발하려면 이러한 드문 장애 이벤트를 줄이는 빈도, 영향 및 비용을 신중하게 고려해야 합니다.
  • (4) 대부분의 장애는 하드웨어, 통신, 종속성 및 내부의 4가지 영역에서 발생합니다.
  • (5) 포지티브 피드백으로 인한 계단식 오류는 마이크로 서비스 애플리케이션에서 매우 일반적인 오류 형태입니다. 일반적으로 계단식 오류의 대부분은 과부하된 서비스로 인해 발생합니다.
  • (6) 재시도 및 시간 초과 전략을 사용하여 서비스 상호 작용 실패의 영향을 완화할 수 있습니다. 개발자는 재시도 방법을 채택할 때 다른 서비스의 장애를 악화시키지 않도록 각별히 주의해야 합니다.
  • (7) 캐싱, 후보 서비스 및 기본값과 같은 백업 방식(fllback)을 사용하여 서비스 종속성을 사용할 수 없는 경우에도 성공적인 결과를 반환할 수 있습니다.
  • (8) 타임아웃 기간은 서비스 상호 작용 중에 다운스트림 서비스로 전파되어 시스템 전체에서 타임아웃 기간이 일관되도록 할 뿐만 아니라 불필요한 작업을 줄여야 합니다.
  • (9) 서비스 간의 회로 차단기는 오류 양이 특정 임계값에 도달할 때 빠르게 실패하여 계단식 오류를 방지합니다.
  • (10) 서비스는 트래픽 제한 전략을 사용하여 서비스 용량을 초과하는 갑작스러운 피크 로드 요청으로부터 서비스를 보호할 수 있습니다.
  • (11) 각 서비스는 로드 밸런서 및 모니터링 시스템이 사용할 상태 확인 인터페이스를 열어야 합니다.
  • (12) 스트레스 테스팅과 카오스 테스팅을 통해 시스템 복구 가능성을 효과적으로 검증할 수 있다.
  • (13) 프레임워크를 통해서든 프록시를 통해서든 표준을 채택하여 엔지니어가 기본적으로 내결함성이 있는 서비스를 신속하게 개발할 수 있도록("fall into the pit of sccess"") 도울 수 있습니다.

7장에서는 재사용 가능한 마이크로서비스 프레임워크를 구축합니다.

  • (1) 마이크로서비스 기반은 새로운 서비스의 시작을 가속화하고 실험 영역을 확장하며 위험을 줄일 수 있습니다.
  • (2) 서비스 기반을 사용하면 개발자가 특정 인프라와 관련된 코드 구현을 추출할 수 있습니다.
  • (3) 서비스 검색, 관찰 가능성 및 다양한 통신 프로토콜은 모두 서비스 기반의 관심사이며 서비스 기반은 이러한 기능을 제공해야 합니다.
  • (4) 적합한 도구가 있으면 재고 판매 주문과 같은 복잡한 기능을 위한 프로토타입을 신속하게 개발할 수 있습니다.
  • (5) 마이크로서비스 아키텍처는 종종 모든 언어로 시스템을 개발할 수 있는 가능성과 관련이 있지만 프로덕션 환경에서 이러한 시스템은 운영 및 유지 관리를 관리할 수 있도록 하는 메커니즘을 보장하고 제공해야 합니다.
  • (6) 마이크로 서비스 기반은 위의 보장을 실현할 수 있으며 동시에 개발자가 아이디어의 정확성을 검증하기 위해 신속하게 시작하고 개발할 수 있으며 검증이 통과되면 프로덕션 환경에 배포할 수 있습니다.

8장 마이크로서비스 배포

  • (1) 새로운 애플리케이션 배포 및 변경 사항은 마이크로서비스 개발 중 마찰을 피하기 위해 표준화되고 간단해야 합니다.
  • (2) 마이크로서비스는 어디에서나 실행할 수 있지만 이상적인 배포 플랫폼은 보안, 구성 관리, 서비스 검색, 중복성을 비롯한 다양한 기능을 지원해야 합니다.
  • (3) 개발자는 일반적인 서비스를 동일한 인스턴스 그룹으로 배포하고 로드 밸런서에 연결합니다.
  • (4) 인스턴스 그룹, 로드 밸런서 및 상태 확인을 통해 배포된 서비스가 자가 치유 및 자동 확장을 달성할 수 있습니다.
  • (5) 위험을 최소화하고 인지 어려움을 줄이며 배포 추상화를 단순화하기 위해 서비스 아티팩트가 변경 불가능하고 예측 가능해야 합니다.
  • (6) 개발자는 서비스를 언어별 패키지, 운영 체제 패키지, 가상 머신 템플릿 또는 컨테이너 이미지로 패키징할 수 있습니다.
  • (7) 마이크로서비스의 단일 인스턴스 추가/삭제는 개발자가 상위 수준 배포에 결합할 수 있는 기본적인 기본 작업입니다.
  • (8) 개발자는 카나리아 배포 또는 청록색 배포를 사용하여 가용성에 대한 예기치 않은 결함의 영향을 줄일 수 있습니다.

9장 컨테이너 및 스케줄러 기반 배포

  • (1) 마이크로서비스를 변경 불가능하고 실행 가능한 아티팩트로 패키징하면 개발자가 기본 작업(컨테이너 추가 또는 제거)을 통해 배포 프로세스를 조정할 수 있습니다.
  • (2) 서비스 개발 및 배포를 용이하게 하기 위해 스케줄러와 컨테이너는 기본 머신 관리 개념을 추출합니다.
  • (3) 스케줄러의 작업은 애플리케이션의 리소스 요구 사항을 클러스터 시스템의 리소스 사용량과 일치시키고 실행 중인 서비스에 대한 상태 검사를 수행하여 서비스가 올바르게 실행되고 있는지 확인하는 것입니다.
  • (4) Kubernetes는 암호 자격 증명 관리, 서비스 검색 및 수평적 확장을 포함하여 마이크로서비스 배포 플랫폼의 이상적인 특성을 가지고 있습니다.
  • (5) Kubernetes 사용자는 원하는 클러스터 서비스 상태(또는 사양)를 정의하고 Kubermetes는 "관찰-비교 실행" 루프 작업을 계속 실행하여 원하는 상태를 달성하는 방법을 계산합니다.
  • (6) 쿠버네티스의 논리적 애플리케이션 단위는 팟(Pod): 컨테이너 또는 함께 실행되는 여러 컨테이너입니다.
  • (7) 레플리카 세트는 포드 그룹의 라이프 사이클을 관리합니다. 기존 포드가 실패하면 복제본 세트가 새 포드를 시작합니다.
  • (8) Kubernetes의 배포 개체는 복제 세트의 포드에 대한 롤링 업데이트를 수행하여 서비스 가용성을 유지하도록 설계되었습니다.
  • (9) 개발자는 서비스 개체를 사용하여 클러스터 내부 및 외부의 다른 애플리케이션이 액세스할 수 있도록 기본 포드를 그룹화할 수 있습니다.

10장에서는 마이크로서비스 제공 파이프라인을 구축합니다.

  • (1) 마이크로서비스 배포 프로세스는 리듬 안전성과 일관성이라는 두 가지 목표를 충족해야 합니다.
  • (2) 새로운 서비스를 배포하는 데 걸리는 시간은 일반적으로 마이크로서비스 애플리케이션의 주요 장애물입니다.
  • (3) 마이크로서비스의 경우 지속적인 전달은 확인된 변경 세트의 작은 버전을 신속하게 전달하여 위험을 줄이는 이상적인 배포 사례입니다.
  • (4) 우수한 지속적 배포 파이프라인은 배포 프로세스의 가시성과 배포 결과의 정확성을 보장하고 엔지니어링 팀에 풍부한 정보를 피드백할 수 있습니다.
  • (5) Jenkins는 스크립팅 언어를 사용하여 서로 다른 도구를 함께 연결하고 전달 파이프라인으로 결합하는 매우 인기 있는 자동 빌드 도구입니다.
  • (6) 시험판 환경은 매우 가치가 있지만 많은 수의 독립적인 변경 사항에 직면했을 때 좋은 시험판 환경을 유지하는 것도 큰 어려움에 직면해 있습니다.
  • (7) 독자는 여러 서비스에서 선언적 파이프라인 단계를 재사용할 수 있으며 표준화를 적극적으로 추진하면 여러 팀에서 배포 프로세스의 예측 가능성을 개선할 수 있습니다.
  • (8) 릴리스 및 롤백에 대한 세밀한 제어를 제공하기 위해 독자는 기능 릴리스의 비즈니스 활동과 별도로 배포하는 기술 활동을 관리해야 합니다.

11장에서는 모니터링 시스템을 구축합니다.

  • (1) 신뢰할 수 있는 마이크로서비스 모니터링 시스템에는 메트릭, 링크 추적 및 로그가 포함됩니다.
  • (2) 마이크로서비스에서 풍부한 데이터를 수집하면 개발자가 결함을 찾고 문제를 조사하고 전체 애플리케이션의 성능을 이해하는 데 도움이 됩니다.
  • (3) 메트릭을 수집할 때 개발자는 대기 시간, 오류 볼륨, 트래픽(처리량 속도) 및 포화의 네 가지 황금 신호에 집중해야 합니다.
  • (4) Prometheus 및 StatsD는 마이크로서비스에서 메트릭을 수집하기 위한 두 가지 공통 언어 독립적 도구입니다.
  • (5) 개발자는 Grafana를 사용하여 메트릭 데이터를 차트 형식으로 표시하고 사람이 읽을 수 있는 대시보드를 만들고 경고를 트리거할 수 있습니다.
  • (6) 지표에 기반한 경보가 시스템 이상 현상의 원인이 아닌 증상을 반영하는 경우 이러한 경보는 더 오래 지속되고 유지 관리가 가능합니다.
  • (7) 잘 정의된 경보는 명확한 우선 순위를 가져야 하고, 계층별로 해당 직원에게 에스컬레이션할 수 있어야 하며, 작동 가능하고 간결하고 가치 있는 정보를 포함해야 합니다.
  • (8) 여러 서비스에서 수집 및 집계된 데이터를 통해 개발자는 서로 다른 메트릭을 연관시키고 비교하여 시스템을 보다 포괄적으로 이해할 수 있습니다.

12장에서는 로깅 및 링크 추적을 사용하여 시스템 동작을 이해합니다.

  • (1) 독자는 Elasticsearch, Kibana 및 Fluentd를 사용하여 함께 로그 인프라를 구축하고 Jaeger를 사용하여 분산 링크 추적 시스템을 구축할 수 있습니다.
  • (2) 로그 인프라는 색인화된 로그 데이터를 생성, 전달 및 저장하여 서로 다른 요청의 검색 및 상관 관계를 용이하게 할 수 있습니다.
  • (3) 분산 링크 추적을 통해 개발자는 서로 다른 마이크로 서비스 간의 요청 실행 프로세스를 추적할 수 있습니다.
  • (4) 메트릭 수집 외에도 링크 추적을 통해 개발자는 시스템 작동 방식을 더 잘 이해하고 잠재적인 문제를 발견하고 언제든지 시스템을 검토할 수 있습니다.

13장 마이크로서비스 팀 구축

  • (1) 우수한 소프트웨어를 구축하는 것은 솔루션 선택뿐만 아니라 효과적인 커뮤니케이션, 조정 및 협업과도 관련이 있습니다.
  • (2) 애플리케이션 아키텍처와 팀 구조는 공생 관계에 있습니다. 후자는 전자를 변경하는 데 사용할 수 있습니다.
  • (3) 팀이 효율적이기를 원한다면 자율성, 소유권 및 종단 간 책임을 극대화하도록 조직해야 합니다.
  • (4) 마이크로서비스 제공 측면에서 교차 기능 팀은 기존 기능 팀보다 빠르고 효율적입니다.
  • (5) 대규모 엔지니어링 조직은 인프라, 플랫폼 및 제품 팀으로 계층화된 모델을 설정해야 합니다. 하위 팀은 상위 팀이 보다 효율적으로 작업할 수 있도록 서비스를 제공합니다.
  • (6) 기능적 지식을 공유할 수 있는 커뮤니티 관행(예: 협회 및 지부).
  • (7) 마이크로서비스 애플리케이션은 인간의 두뇌에 맞추기 어려우며, 이로 인해 글로벌 의사 결정 및 근무 엔지니어에게 문제가 발생합니다.
  • (8) 설계자는 응용 프로그램의 방향과 결과를 지시하기보다는 응용 프로그램의 진화를 안내하고 영향을 주어야 합니다.
  • (9) 내부 오픈 소스 모델은 팀 간 협업을 개선하고 소유욕을 약화시키며 버스 요인의 위험을 줄일 수 있습니다.
  • (10) 설계 검토는 마이크로서비스의 품질, 접근성 및 일관성을 향상시킬 수 있습니다.
  • (11) 마이크로서비스 문서에는 개요, 운영 매뉴얼, 메타데이터 및 서비스 계약이 포함되어야 합니다.

이 [Microservice Actual Combat] 문서는 총 551페이지입니다.

추천

출처blog.csdn.net/wdj_yyds/article/details/127224896