팁 (조언)
이 콘텐츠는 eBook, Architecting Cloud Native .NET Applications for Azure에서 발췌한 것으로, .NET Docs 또는 오프라인에서 읽을 수 있는 다운로드 가능한 무료 PDF로 제공됩니다.
복원력은 시스템이 오류에 대응하고 계속 작동할 수 있는 기능입니다. 실패를 방지하는 것이 아니라 실패를 수락하고 클라우드 네이티브 서비스를 구성하여 이에 대응합니다. 가능한 한 빨리 완전히 작동하는 상태로 돌아가려고 합니다.
모든 것이 단일 프로세스에서 함께 실행되는 기존의 모놀리식 애플리케이션과 달리 클라우드 네이티브 시스템은 그림 6-1과 같이 분산 아키텍처를 수용합니다.
그림 6-1. 분산 클라우드 네이티브 환경
이전 그림에서 각 마이크로 서비스 및 클라우드 기반 지원 서비스는 네트워크 기반 호출을 통해 통신하는 서버 인프라 전반에 걸쳐 별도의 프로세스에서 실행됩니다.
이 환경에서 작동하는 서비스는 다양한 문제에 민감해야 합니다.
예기치 않은 네트워크 대기 시간 - 서비스 요청이 수신자 및 뒤로 이동하는 시간입니다.
일시적인 오류 - 수명이 짧은 네트워크 연결 오류입니다.
장기 실행되는 동기 작업으로 인한 지연.
충돌하여 다시 시작되거나 이동 중인 호스트 프로세스입니다.
짧은 시간 동안 응답할 수 없는 오버로드된 마이크로 서비스입니다.
비행 중 오케스트레이터 작업은 롤링 형태의 업그레이드 또는 한 노드에서 다른 노드로 서비스의 이동과 같은 것을 포함합니다.
하드웨어 오류.
클라우드 플랫폼은 이러한 많은 인프라 문제를 감지하고 완화할 수 있습니다. 서비스를 다시 시작, 규모 확장 및 다른 노드로 재배포할 수도 있습니다. 그러나 이러한 기본 제공 보호를 최대한 활용하려면 해당 보호에 대응하고 이 동적 환경에서 번창하도록 서비스를 설계해야 합니다.
다음 섹션에서는 서비스 및 관리되는 클라우드 리소스가 가동 중지 시간 및 중단을 최소화하기 위해 활용할 수 있는 방어 기술을 살펴봅니다.
.NET