프로덕션 준비 검사 목록

애플리케이션 및 클러스터가 프로덕션 트래픽을 허용할 준비가 되었나요? 애플리케이션 및 클러스터를 실행하고 테스트한다고 해서 프로덕션으로 이동할 준비가 된 것은 아닙니다. 다음 검사 목록을 진행하여 애플리케이션 및 클러스터가 원활하게 실행되도록 유지합니다. 이러한 항목을 모두 검사하는 것이 좋습니다. 특정 라인 항목(예: 고유한 진단 프레임워크)의 경우, 대체 솔루션을 사용하도록 선택할 수 있습니다.

프로덕션 사전 요구 사항

  1. Azure Service Fabric 모범 사례: 애플리케이션 설계, 보안, 네트워킹, 용량 계획 및 크기 조정, 코드 인프라모니터링과 진단.
  2. Reliable Actors 프로그래밍 모델을 사용하고 있으며 안전한 서비스 간 통신이 필요한 경우 FabricTransport 설정을 구성하세요.
  3. 코어 20개 또는 노드 10개를 초과하는 클러스터의 경우, 시스템 서비스를 위한 전용 기본 노드 유형을 만듭니다. 배치 제약 조건을 추가하여 기본 노드 유형을 시스템 서비스에 예약합니다.
  4. 기본 노드 유형에 대해 D2v2 이상 SKU를 사용합니다. 하드 디스크 용량이 50GB 이상인 SKU를 선택하는 것이 좋습니다.
  5. 프로덕션 클러스터는 안전해야 합니다. 보안 클러스터 설정 예제는 이 클러스터 템플릿을 참조하세요. 인증서에 일반 이름을 사용하고, 자체 서명된 인증서를 사용하지 않습니다.
  6. 노드 리소스의 75% 이상을 사용하지 않도록 컨테이너 및 서비스에 대한 리소스 제약 조건을 추가합니다.
  7. 내구성 수준을 이해하고 설정합니다. 상태 저장 워크로드를 실행하는 노드 유형에는 실버 이상의 내구성 수준이 권장되며 프로덕션에 필요합니다.
  8. 노드 유형의 안정성 수준을 이해하고 선택합니다. 실버 이상의 안정성이 권장되며 프로덕션에 필요합니다.
  9. 워크로드를 로드하고 규모 테스트를 수행하여 클러스터의 용량 요구 사항을 파악합니다.
  10. 서비스 및 애플리케이션이 모니터링되고, 애플리케이션 로그가 생성되어 경고와 함께 저장됩니다. 예를 들어 Service Fabric 애플리케이션 추가Azure Monitor 로그를 사용하여 컨테이너 모니터링을 참조하세요.
  11. 클러스터는 경고(예: Azure Monitor 로그)를 사용하여 모니터링됩니다.
  12. 기본 가상 머신 확장 집합 인프라는 경고(예: Azure Monitor 로그)를 사용하여 모니터링됩니다
  13. 클러스터에는 항상 기본 및 보조 인증서가 있습니다(잠기지 않도록 방지).
  14. 개발, 스테이징 및 프로덕션을 위해 별도의 클러스터를 유지 관리합니다.
  15. 애플리케이션 업그레이드클러스터 업그레이드는 먼저 개발 및 스테이징 클러스터에서 테스트됩니다.
  16. 프로덕션 클러스터에서 자동 업그레이드를 끄고, 개발 및 스테이징 클러스터에서 켭니다(필요한 경우 롤백).
  17. 서비스에 대해 RPO(복구 지점 목표)를 설정하고, 재해 복구 프로세스를 설정한 후 테스트합니다.
  18. 수동 또는 프로그래밍 방식의 클러스터 크기 조정을 계획합니다.
  19. 클러스터 노드 패치 적용을 계획합니다.
  20. 최신 변경 내용이 지속적으로 테스트되도록 CI/CD 파이프라인을 설정합니다. 예를 들어 Azure DevOps 또는 Jenkins를 사용합니다.
  21. Fault Analysis Service를 사용하여 부하 상태에서 개발 및 스테이징 클러스터를 테스트하고, 제어된 혼란을 유도합니다.
  22. 애플리케이션 크기 조정을 계획합니다.

Service Fabric Reliable Services 또는 Reliable Actors 프로그래밍 모델을 사용하는 경우, 다음 항목을 검사해야 합니다.

  1. 로컬 개발 중에 애플리케이션을 업그레이드하여 서비스 코드가 RunAsync 메서드의 취소 토큰을 인식하고 사용자 지정 통신 수신기를 닫는지 확인합니다.
  2. 신뢰할 수 있는 컬렉션을 사용하는 경우, 일반적인 문제를 방지합니다.
  3. 부하 테스트를 실행할 때 .NET CLR 메모리 성능 카운터를 모니터링하고, 가비지 수집 또는 런어웨이 힙 증가 비율이 높은지 확인합니다.
  4. Reliable Services 및 Reliable Actors의 오프라인 백업을 유지 관리하고 복원 프로세스를 테스트합니다.
  5. 주 NodeType 가상 머신 인스턴스 수는 클러스터 안정성 계층의 최소값과 같아야 합니다. 단, 주 NodeTypes Virtual Machine Scale Set SKU를 수직 확장하는 등의 상황에서는 임시로 이 계층의 최소값을 초과해도 됩니다.

선택적 모범 사례

위의 목록이 프로덕션으로 이동하기 위한 필수 조건이지만, 다음 항목도 고려해야 합니다.

  1. 기본 제공 상태 평가 및 보고를 확장하기 위해 Service Fabric 상태 모델에 연결합니다.
  2. 애플리케이션을 모니터링하고, 리소스 부하 분산을 위해 부하를 보고하는 사용자 지정 Watchdog를 배포합니다.

다음 단계