가용성 및 성능 패턴


잘 설계된 신뢰성 → 고가용성 아키텍처에 대해 자세히 알아보기

패턴

찾을 위치유사성
비즈니스 영향 분석✅ 비즈니스 성능별로 정의된 SLO(예: “기회 마감 플로: 기술 구성 요소별이 아닌 99.9% 가용성, p95 대기 시간이 2초 미만”)
사용자 플로 문서✅ 각 중요 사용자 플로에는 실제 사용자 환경과 연결된 가용성, 대기 시간, 처리량, 오류 비율, 복구 시간이 포함된 측정 가능한 SLO가 있습니다.
아키텍처 결정 레코드✅ 문서화된 근거가 있는 비즈니스 가동 중지 시간 영향 분석을 기반으로 하는 가용성 목표(예: 내부 배치 보고 99% 및 매출 크리티컬 주문 처리 99.95%)
SLO 사양✅ 아키텍처 복잡성을 고려하여 현실적인 목표(99% = 표준 플랫폼 기능, 99.5% = 기본 중복 및 활성 모니터링, 99.9% = 다중 지역 인식 및 자동 페일오버, 99.95% = 활성-활성 패턴 및 혼란 테스트, 99.99% = 멀티 조직 아키텍처)
플랫폼 문서✅ 플랫폼 SLA보다 덜 엄격한 솔루션 SLO(예: 플랫폼 99.9% SLA → 솔루션 99.5% SLO) - 응용 프로그램 계층 실패에 대한 오류 예산 제공
모니터링 구성✅ 플랫폼 도구를 통해 객관적으로 측정할 수 있는 SLI(서비스 수준 지표): Trust.salesforce.com 가동 시간, Experience Cloud 분석, 이벤트 모니터링 API 응답 시간, AsyncApexJob 완료
사용자 환경 메트릭✅ SLO는 개별 API 가동 시간이 아닌 전체 사용자 여정(예: “사례 제출 플로: p95 사용자의 경우 5단계 모두가 8초 이내에 완료됨”)을 반영합니다.

안티 패턴

찾을 위치불만 사항
아키텍처 문서⚡️ “시스템이 빠르고 신뢰할 수 있어야 함”(측정할 수 없으며 아키텍처 결정을 내리지 않음)
SLO 사양⚡️ “모든 작업에 99.999% 가동 시간이 필요합니다”(매출 운영과 내부 관리자 도구 간 비즈니스 크리티컬리티 차이를 무시하는 부적절한 비용)
모니터링 전략⚡️ 인프라스트럭처 CPU 모니터링(기본 SLI)(플랫폼 메트릭 설계자가 조치를 취할 수 없으며 사용자 대면 환경을 반영하지 않음)
플랫폼 수용력 계획⚡️ 솔루션 SLO는 99.9%의 플랫폼 SLA와 정확하게 일치합니다(응용 프로그램 계층 문제, 통합 실패 또는 계획된 서비스 점검에 대한 오류 예산 없음)
SLO 문서⚡️ 사용자 대면 비즈니스 성능이 아닌 기술 구성 요소별로 정의된 SLO(구성 요소 가용성 필요하지만 사용자 환경 신뢰성에 충분하지 않음)

패턴

찾을 위치유사성
지역 배포 전략✅ 플랫폼이 관리하는 Hyperforce 이중화(다중 가용성 영역, 자동 인프라 페일오버)를 통한 단일 지역 배포는 대부분의 솔루션에 99.9%의 SLO를 제공합니다.
다중 조직 아키텍처✅ 비즈니스에 플랫폼 기능 이상의 보증 RPO/RTO, 규제 지리적 데이터 격리 또는 완전한 지역 독립(활성-패시브 또는 데이터 동기화 포함 활성-활성)가 필요한 경우에만 멀티 조직 패턴
데이터 복제✅ 중요 데이터에 대한 변경 데이터 수집(직접 실시간 RPO, 분), 거의 실시간 비즈니스 이벤트에 대한 플랫폼 이벤트, 참조 데이터를 위한 예약 대량 API 2.0 추출(24시간 RPO)
플랫폼 상태 모니터링✅ Trust.salesforce.com 상태 알림 및 인스턴스별 상태 API를 구독하여 사고, 서비스 점검 기간 및 성능 영향에 대해 사전 예방적 대응
동적 로드 관리✅ 솔루션은 성능 저하 시 비중요한 배치 처리를 줄이고 서비스 점검 기간 동안 백그라운드 작업을 지연하여 플랫폼 상태에 대응합니다.
스케일 센터 사용✅ 주간 스케일 센터 검토에서 비례하지 않은 리소스를 소비하는 장기 실행 트랜잭션 및 작업을 식별하여 사용자에게 영향을 미치기 전에 아키텍처를 수정할 수 있습니다.
실패 감지 레이어✅ 다단계 감지: 상태 API를 통한 플랫폼 실패, 시간 초과 모니터링을 통한 통합 실패, 예외 로깅을 통한 응용 프로그램 실패, 대기 시간 백분율을 통한 성능 저하, Proactive Monitoring 통한 수용력 경고
경고 임계값✅ 오류 비율 패턴(예: 60초에 5개의 API 시간 초과) 또는 지속적인 저하, 분산 시스템에서 정상인 고립 실패가 아닌 경고 트리거

안티 패턴

찾을 위치불만 사항
다중 조직 설계데이터 동기화, 사용자 프로비저닝, 배포 조정에 대한 운영 복잡성을 정당화하는 문서화된 비즈니스 요구 사항 없이 “대상에 맞게” 구현된 다중 조직 아키텍처
플랫폼 상태 모니터링⚡️ Trust.salesforce.com 상태 알림을 무시하고, 사용자가 실패를 보고할 때 유지 보수 창을 검색합니다(예방적 대응 대신 반응)
실패 감지⚡️ 속도에 관계없이 모든 개별 오류에 대해 경고(중요한 신호를 숨기는 경고 피로 생성), 단일 API 시간 제한이 페이지 아웃 트리거(정상 분산 시스템 동작에 대한 과반응)
데이터 복제⚡️ 통합별 모니터링 없음, 사용자가 차단된 작업을 보고하는 경우(외부 시스템 상태에 대한 가시성 누락) 통합 실패만 발견
중복 전략시간 초과 또는 대체가 없는 외부 보강 서비스에 대한 동기식 콜아웃(외부 서비스가 느리거나 사용할 수 없을 때 사용자가 차단됨)

패턴

찾을 위치유사성
실제 사용자 모니터링(RUM)✅ 실제 네트워크 조건, 장치 성능, 지리적 분포를 반영하는 Experience Cloud 분석 또는 사용자 정의 계측을 통해 측정된 실제 사용자 대기 시간
합성 모니터링✅ 사용자가 문제를 보고하기 전에 가용성 및 성능을 확인하는 여러 위치의 자동 트랜잭션(예: 3개 지역에서 15분 간격으로 주문 제출)
트랜잭션 추적✅ 지체 지점을 식별하는 단계당 타이밍이 표시된 다단계 작업(예: 총 대기 시간의 70%에 해당하는 3단계 주소 확인 콜아웃)
쿼리 최적화✅ 색인화된 필터를 사용하는 선택적 쿼리, 반올림 쿼리를 줄이는 관계 쿼리, 프로덕션 규모 데이터 볼륨을 사용하는 쿼리 최적화 프로그램 고려(10만 개 이상의 레코드에서 동작이 크게 변경됨)
플랫폼 캐시 사용량✅ 자주 액세스하는 참조 데이터를 제공하는 세션 또는 조직 캐시 파티션, 실시간 API를 사용할 수 없는 경우 사용되지 않지만 사용 가능한 데이터를 제공하는 성공적인 작업 중 미리 채워진
시간 초과 구성✅ 사용자 대면 동기식 콜아웃 5-10초(응답형 UI), 백그라운드 비동기식 콜아웃 30-60초(변수 외부 성능), 배치 처리 120초(사용자 대기 없음), 트랜잭션당 여러 콜아웃 전반의 예산 합계
통합 대기 시간 모니터링✅ SLO 및 끝점별 통합당 p50/p95/p99 지연 백분율, 지연 변칙(응답 시간이 위로 드리프트됨)은 완전한 실패 전에 수용력 채우기를 나타냅니다.

안티 패턴

찾을 위치불만 사항
모니터링 전략⚡️ 사용자 대면 플로 측정 없이 인프라 메트릭(서버 CPU, 네트워크 대역폭)만 모니터링(메트릭은 실제 사용자 환경을 반영하지 않음)
캐시 전략⚡️ 자주 액세스하는 참조 데이터에 대한 플랫폼 캐시 사용 없음(같은 데이터에 대한 쿼리 반복으로 대기 시간이 증가하고 SOQL 제한 사용)
시간 초과 구성⚡️ 사용자가 2분 동안 스피너를 로드하는 동안 눈을 돌리게 하는 120초 시간 제한이 있는 동기식 플로 콜아웃(대체와 함께 5-10초 시간 제한 사용해야 함)
성능 테스트최소 데이터 용량을 사용하는 소규모 테스트(소규모 결과가 잘못되게 만드는 10만 개 이상의 레코드에서 쿼리 최적화 프로그램 동작이 급격하게 변경됨)
통합 설계⚡️ 다단계 워크플로의 트랜잭션 수준 추적 없음(집계 메트릭에 표시되지 않는 병목 끝 단계)

패턴

찾을 위치유사성
가로 크기 조정 패턴✅ 여러 자원에 작업 부하 분포: 대량 처리 - 트랜잭션당 여러 레코드를 처리하고 비동기 처리 - 시간에 따른 작업 분포, 데이터 분할 - 경계에 걸친 부하 분포
배치 처리 구성✅ 최적의 배치 크기 균형 처리량 및 총괄자 제한(배치 Apex 실행당 레코드 2,000개, 트리거 호출당 레코드 200개, 복합 API 호출당 25개의 요청)
API 요율 관리✅ 통합 배치 및 캐싱은 API 소비를 줄이고, Edition별로 24시간 API 할당을 모니터링하며, 수용력 계획은 사용 중지 전에 라이센스를 추가하거나 증가를 제한합니다.
동시 실행✅ 분할된 데이터에 대한 병렬 배치 작업(동시에 실행되는 지역 롤업 배치 5개), 플랫폼 이벤트 구독자가 동시에 스트림을 처리합니다.
대기열 깊이 모니터링✅ 비동기 통합의 경우 대기열 깊이 추세는 수용력 증가 또는 처리량 최적화가 필요한 프로덕션 비율의 처리를 나타냅니다.
볼륨 변칙 감지✅ 예상 패턴보다 상당히 높거나 낮은 트랜잭션 볼륨은 조사 및 조절이 필요한 런어웨이 프로세스를 나타낼 수 있습니다.

안티 패턴

찾을 위치불만 사항
배치 처리⚡️ 데이터 용량에 분할된 병렬 실행이 필요한 경우 모든 레코드를 순차적으로 처리합니다(날짜 기반, 레코드 유형 기반 또는 소유자 기반 분할은 동시 처리를 활성화함).
API 사용⚡️ 수용력 계획 없이 25% API 소비를 추가하는 통합 패턴(사용자에게 “API 제한 초과” 오류가 발생함)
대기열 모니터링⚡️ 비동기 통합 대기열 깊이 모니터링 안 함(가시성이 없으면 프로덕션 비율이 낮아짐)
총괄자 제한 관리⚡️ 힙 크기 또는 CPU 시간 제한에 도달하는 대용량 처리 동기 작업(전용 제한이 있는 비동기 처리로 전환해야 함)

패턴

찾을 위치유사성
기능 중요성 계층✅ 정의된 계층: 중요(매출/규정 준수, 성능 저하 없음), 중요(핵심 워크플로, 주요 사고 중에만 성능 저하), 지원(고급 경험, 통합 실패 시 비활성화), 옵션(유용하지 않음, 고부하 경우 비활성화)
회로 차단기 구현✅ 회로 상태(마감됨 = 정상, 열림 = 임계값 직후 실패, 반 열림 = 복구 프로브), 플랫폼 캐시 저장 상태, 플랫폼 이벤트 브로드캐스트 변경 사항, 연속 실패 후 열기(예: 실패 10개)
재시도 논리✅ 임시 실패(1s, 2s, 4s, 8s, 30~60s)에 대한 기하급수 백오프, 백오프를 사용하여 네트워크 시간 초과 및 5xx 오류 재시도, 재시도 후 머리글 후 429 속도 제한 재시도, 동일한 트랜잭션에서 클라이언트 4xx 오류 또는 총괄자 제한 오류를 다시 시도하지 마십시오.
대체 전략✅ 대체 데이터 소스(실시간 API를 사용할 수 없는 경우 플랫폼 캐시), 기본 동작(개인화 서비스가 중단된 경우 표준 규칙), 수동 프로세스(고정 트랜잭션을 위한 관리자 인터페이스), 재시도 대기열(72시간 재생되는 플랫폼 이벤트)
오류 처리 아키텍처✅ 빠르게 실패(입력 유효성 검사 시), 정상적으로 실패(확인에 실패한 레코드 3개 중 200개 중 197개 프로세스), 정보에 따른 실패(트랜잭션 ID, 사용자 컨텍스트, 스택 추적 포함 로그), 안전하게 실패(일부 트랜잭션 롤백, 사용자에게 내부 정보를 노출하지 않음)
복구 자동화✅ 플랫폼 모니터링은 자동 복구를 트리거합니다. 비동기식 재시도 메커니즘, 실패한 처리를 위한 사전 처리 대기열, 수동 개입 없이 신속한 복구를 지원하는 자체 복구 워크플로

안티 패턴

찾을 위치불만 사항
통합 종속성⚡️ 외부 주소 확인 서비스가 다운되었을 때 주문 제출이 완전히 실패합니다(지원 기능으로 중요한 플로가 차단되었으므로 수동 검토 시 정상적으로 성능이 저하되어야 함)
회로 차단기 전략⚡️ 외부 콜아웃에 회로 차단기가 없으므로 외부 시스템이 다운되면 모든 트랜잭션이 시간 초과에 대해 120초를 기다립니다(일부 통합 실패로 인한 모든 사용자 영향)
재시도 논리⚡️ 동일한 트랜잭션 컨텍스트에서 즉시 Apex CPU 제한을 초과한 오류를 다시 시도합니다(다시 실패; 전용 제한이 있는 비동기 작업으로 다시 대기열 지정해야 함)
재시도 논리성공할 때까지 무기한 재시도(무제한 루프 위험, 트랜잭션이 완료되지 않음, 최대 재시도 횟수 제한)
오류 처리⚡️ 시험 포착 블록은 로깅 없이 예외를 삼키며(진단 및 치료를 방지하는 연산자에게 표시되지 않는 실패)
오류 처리⚡️ Lightning 페이지에서 최종 사용자에게 스택 추적 표시(보안 위험이 구현 세부 사항을 드러내고 사용자 경험이 부족함)
대체 전략⚡️ 세금 계산 서비스가 모든 주문 제출을 차단하지 못함(대체 기능 없음, 수동 처리를 위해 대기열에 지정하거나 기본 비율을 사용해야 함)

패턴

찾을 위치유사성
건강 모델링✅ 집계 건강 상태: 서비스 건전성(트랜잭션 성공률 >99.5% 녹색, 98-99.5% 노란색, <98% 빨간색), 통합 건전성(전체 응답 녹색, 저하된 노란색, 회로 차단기가 빨간색 열림), 데이터 건전성(동기화 전류 녹색, 노란색 뒤, 오래된/실패한 빨간색), 수용력 건전성(<70% 녹색, 70-85% 노란색, >85% 빨간색)
이벤트 모니터링✅ EventLogFile 객체는 24시간/1시간 전달을 외부 SIEM으로 라우팅하여 네이티브 보존 한도를 넘어 보존합니다. API 호출, 페이지 보기, 보고서 내보내기, 로그인 활동, Apex 실행을 캡처합니다.
Proactive Monitoring 경고✅ 지속적인 평가 영역 API 요청 제한 증가(75% 임계값 트리거 조사), 동시 Apex 실행 실패, SOQL 행 제한 문제, 스토리지 사용 추세
통합 상태 대시보드✅ 통합별 메트릭: 오류 비율(<1% 대상), 지연 시간 p50/p95/p99 및 SLO, 시간 초과 비율(<0.1% 대상), 회로 차단기 상태, 비동기 대기열 깊이, 요청 ID, 끝점, 응답 코드, 기간이 포함된 구조화된 로그
실천 가능한 경고 설계✅ 모든 경고는 응답자, 확인자, 수정 방법을 정의합니다. 임계값 크로스, 현재 값, 최근 추세, 대시보드 링크, 실행북 링크, 긴급성과 일치하는 심각도(사용자 영향에 대한 중요 페이지 호출, 추세 문제에 대한 경고 이메일)를 포함합니다.
변칙 감지✅ 볼륨 변칙(일반적인 로드의 300%), 오류 비율 변칙(5% 임계값 미만인 경우에도 일반적으로 2% vs. 0.5%), 지연 드리프트(단계적으로 증가하는 추세), 동작 변칙(일반적이지 않은 로그인 패턴, 일정 외 배치 작업), 즉시 에스컬레이션을 트리거하지 않는 조사 지침에 사용됨

안티 패턴

찾을 위치불만 사항
이벤트 모니터링⚡️ 이벤트 모니터링이 활성화되었지만 내보내지 않았습니다(트렌드 분석을 위해 네이티브 보존이 부족하고 내역 데이터가 손실됨)
경고 설계컨텍스트, 임계값 또는 응답 작업이 없는 “오류 발생” 경고 메시지(경고 피로 발생, 연산자가 효율적으로 정렬할 수 없음)
경고 심각도⚡️ 모든 변칙을 중요 경고로 처리합니다(높은 위양성 비율로 인해 경고 피로가 발생하여 중요 경고가 누락됨)
건강 모니터링⚡️ 집계 상태 모델 없음, 개별 기술 메트릭으로 압도된 연산자의 교차 시스템 패턴 누락
통합 모니터링⚡️ 통합별 오류 비율, 대기 시간 또는 차단기 상태 추적 없음(사용자 보고서를 통해 대응적으로 발견된 통합 실패)
수용력 모니터링Proactive Monitoring 또는 Scale Center 검토 없음(자원 집약 거래의 신뢰성 위험은 생산에 영향을 미치기 전까지 감지되지 않음)

인라인 예제 및 자세한 지침은 신뢰도 기둥을 참조하거나 Patterns 및 Anti-Patterns 탐색기를 탐색하십시오.