클라우드 네이티브 복원력

이 콘텐츠는 Azure용 클라우드 네이티브 .NET 애플리케이션 설계 eBook 에서 발췌한 것으로, .NET 문서에서 제공되거나 오프라인 상태에서도 읽을 수 있는 PDF(무료 다운로드 가능)로 제공됩니다.

Cloud Native .NET apps for Azure eBook cover thumbnail.

복원력은 시스템이 오류에 대응하고 계속 작동할 수 있게 하는 기능입니다. 실패를 방지하는 것이 아니라 실패를 수락하고 클라우드 네이티브 서비스를 구성하여 실패에 반응하기 위한 것입니다. 가능한 한 빨리 완전히 작동하는 상태로 돌아가려고 합니다.

모든 것이 단일 프로세스에서 함께 실행되는 기존의 모놀리식 애플리케이션과 달리 클라우드 네이티브 시스템은 그림 6-1과 같이 분산 아키텍처를 수용합니다.

Distributed cloud-native environment

그림 6-1. 분산 클라우드 네이티브 환경

이전 그림에서 각 마이크로 서비스와 클라우드 기반 지원 서비스는 네트워크 기반 호출을 통해 통신하는 서버 인프라 전반에 걸쳐 별도의 프로세스로 실행됩니다.

이 환경에서 작동하는 서비스는 다양한 문제에 민감해야 합니다.

  • 예기치 않은 네트워크 대기 시간 - 서비스 요청이 수신자 및 뒤로 이동하는 시간입니다.

  • 일시적인 오류 - 수명이 짧은 네트워크 연결 오류입니다.

  • 장기 실행 동기 작업에 의한 차단입니다.

  • 충돌하여 다시 시작되거나 이동 중인 호스트 프로세스입니다.

  • 짧은 시간 동안 응답할 수 없는 오버로드된 마이크로 서비스입니다.

  • 롤링 업그레이드 또는 한 노드에서 다른 노드로의 서비스 이동과 같은 진행 중인 오케스트레이터 작업입니다.

  • 하드웨어 오류.

클라우드 플랫폼은 이러한 많은 인프라 문제를 감지하고 완화할 수 있습니다. 서비스를 다시 시작하고, 확장하며, 다른 노드로 재배포할 수도 있습니다. 그러나 이 기본 제공 보호를 최대한 활용하려면 해당 보호에 대응하고 이 동적 환경에서 많은 사람들이 이용하도록 서비스를 설계해야 합니다.

다음 섹션에서는 서비스 및 관리되는 클라우드 리소스가 가동 중지 시간 및 중단을 최소화하기 위해 활용할 수 있는 방어 기술을 살펴봅니다.