운영 및 → 자동 워크 플로 관리
자동 워크 플로
1) 왜 필요한가
자동화 된 워크 플로우는 수동 작동을 줄이고 "아이디어 대 화폐 시간" 을 가속화하며 실수의 위험을 줄입니다. iGaming/fintech에서는 예금/인출, KYC/AML, 보너스/잭팟 관리, 컨텐츠 업데이트, 사고 반응 및 백 오피스 작업에 중요합니다.
목표:- 트리거에서 결과에 이르기까지 견고하고 투명하게 관찰 된 프로
- 공정 SLO에 의해 예측 가능한 최소 수동 단계.
- 오류 제어: 배상, 보상 조치, 명확한 에스컬레이션.
- 폭풍과 중복없이 이벤트로 확장 및 하중.
2) 기본 용어
Workflow (WF): 비즈니스 결과를 달성하기위한 일련의 단계 (작업).
오케스트레이션: 중앙 코디네이터는 단계와 순서를 관리합니다.
안무: 단계는 사건에 반응하며 "중앙 뇌" 는 없습니다.
보상: 부분 고장 (사가) 에서의 역 동작.
HITL (Human-in-the-loop): WF 내에서 제어되는 "수동" 솔루션.
프로세스의 SLO: 특정 WF의 목표 완료 시간/성공 (예: "예금의 95%
3) 신청할 곳 (예)
지불 흐름: 예금, 사기 방지, 회계에 게시, 알림.
KYC/AML: 문서 수집, 공급자 별 점검, 규정 준수 확대.
콘텐츠/제한 관리: 게임 출판, 할당량, 지리 규칙.
보너스/잭팟: 발생, 공제, 조건 계산, 지불.
사건: 자동 진단, 약식 점검표, 통신.
데이터/ETL: 업로드, 조정, 보관 보고.
4) 오케스트레이션 vs 안무
오케스트레이션은 복잡한 브랜치 로직, 엄격한 SLO, 명시적인 마감일/타임 아웃, 비즈니스에 필요한 시각적 "프로세스 맵" 이 필요할 때 적합합니다.
안무-언제: 높은 이벤트, 약한 연결성, 한 이벤트의 많은 독립 소비자.
하이브리드: 오래 지속되는 사가는 오케 스트레이터에 의해 제어되며, 로컬 반응은 이벤트를 통해 수행됩니다.
5) 건축 원칙
이념성: 각 단계는 안전하게 반복되어야합니다 (demempotency 키, 메시지 ID로 dedup).
명시 적 타임 아웃 및 후퇴: 백오프 + 지터, 한계 시도, 안전한 실수에 대해서만 후퇴.
보상 (sagas): 부분 고장시 체인 롤백.
단계 격리: 벌크 헤드 (외부 다운 스트림의 개별 풀/제한).
계약: 모든 외부 통화, CDC 테스트에 대한 OpenAPI/AsyncAPI.
WF 버전 지정: 이전 인스턴스의 "질량" 방울없이 입력/출력 데이터의 스키마를 변경합니다.
6) 이벤트 및 트리거 모델
트리거 유형:- 도메인 이벤트 ('예금. 요청 '),
- 일정 (크론),
- 수동 시작 (운영자/지원),
- 경보 신호 (사고 자동 워크 플로).
- 상황: 상관 관계 'trace _ id', 'workflow _ indus _ id', 사용자/영역, phicheflag 버전.
- 저렴한 입력 필터: 조기 검증 및 테이크 오프.
7) 단계 설계 (작업)
각 단계는 진입, 종료, SLO, 타임 아웃, 시도, 재시도 조건, 보상, 권리/비밀로 설명됩니다.
의사 단계 설명:
task: call_psp input: { user_id, amount, currency, idempotency_key }
timeout: 200ms retries:
max: 2 on: [5xx, connect_error]
backoff: exponential jitter: true compensation: reverse_authorization secrets: [PSP_TOKEN]
sla: p99 <= 300ms
8) 보상 및 사가
지역 거래 + 이벤트 "저장 의도 → 게시 이벤트".
보상: 승인 취소, 보너스 반환, 잔액 재 계산, 티켓 폐쇄.
보상 dempotence: 반복적 인 취소가 불변을 깨뜨리지 않아야합니다.
9) 보안 및 비밀
KMS/비밀 관리자: 토큰 스토리지, 회전, 역할 액세스.
최소 권한: WF 엔진에는 정확한 범위가 제공됩니다.
Webhook/Kolbek 서명: HMAC/JWS, 타임 스탬프 확인.
데이터 정책: 로그/추적, 암호화로 마스킹하는 PII.
10) 관찰 및 SLO
프로세스 메트릭: '워크 플로우 _ 시작/완료', '성공 _ rate', '중단', '평균/p95/p99 지속 시간', 교수형 인스턴스, '죽은 글자'.
단계 메트릭: 'task _ latency', 'orm _ rate', 'rish _ count', 'Open _ circuit', 'cost _ per _ 1k _ calls'.
추적: 태그의 워크 플로 인 각 단계에 걸쳐 있습니다. 이름 ',' 단계 ',' 시도 '.
SLO: 예를 들어, "예금의 95% 는 3 초, 99% 는 5 초; 0을 중단하십시오. 3 %/일 ".
대시 보드: 열 단계 맵, 병목 현상, 종속성 맵.
11) 인간 회로 (HITL)
기준: 논란의 여지가있는 사례 (위험/AML), 대규모 지불에 대한 수동 확인.
마감일: 결정, 알림/에스컬레이션을 기다리는 타임 아웃.
감사: 누가/언제/무엇을 결정하고, 정당화하고, 티켓과 묶는 지.
12) 관리 및 릴리스 변경
워크 플로 버전: 병렬로 'v1' 및 'v2'; 인스턴스 마이그레이션이 불가능합니다. 이전 인스턴스를 자연스럽게 종료하고 'v2' 로의
카나리아 트래픽: 1% → 10% → 100%, 지표 '성공/p95/중단' 비교.
Ficheflags: 이전 단계/분기 구현으로의 빠른 롤백.
CDC/계약: CI의 게이트는 소비자/공급자를 깨뜨리는 단계 변경을 유지합니다.
13) 테스트
단위 단계: 양성/음성 + demotency.
계약 테스트: moka/stage 제공 업체에 대한
WF 시뮬레이션: 해피 패스 + 타임 아웃, 4xx/5xx, "느린 공급자", 이벤트 손실, 부분 오류.
게임 일: 결함 주입 (PSP/KYC 낙하, 대기열 지연, 폐쇄 차단기).
재생: 이주를 검증하기 위해 역사적 사건을 재생합니다.
14) 사건 및 자동 반응
인시던트 자동 워크 플로: 메트릭 수집, 다운 스트림 확인, 알림, 해결 방법 준비 (공급자 전환, 저하).
런북 단계: 수동 중단/강제 완료가 허용 될 때 인스턴스를 "풀기" 하는 방법.
15) 비용 관리
쿼타 및 "소프트 캡": 고가의 단계/공급자 제한.
캐시/데드 업: 불필요하게 외부 호출을 반복하지 마십시오.
보고서: 'cost _ per _ 1k _ workflows', WF 유형의 "성공 비용".
16) 미니 템플릿 워크 플로 (의사 -YAML)
workflow: deposit_v1 trigger:
event: deposit.requested filters: [amount > 0, currency in [USD,EUR,TRY]]
sla:
p95_ms: 3000 abort_rate_daily: 0.3%
steps:
- name: reserve_funds timeout_ms: 150 retries: {max: 2, on: [5xx, connect_error], backoff: exponential, jitter: true}
compensation: release_reserve
- name: call_psp timeout_ms: 200 retries: {max: 2, on: [5xx, connect_error]}
circuit_breaker: {error_rate: 0.05, window_s: 10, open_s: 30}
- name: post_ledger type: async topic: ledger.post
- name: notify_user channel: push hitl:
when: amount > 10000 or risk_score > 0.8 timeout_m: 30 escalate_to: "compliance@oncall"
observability:
emit_metrics: true trace: true security:
secrets: [PSP_TOKEN, PUSH_API_KEY]
17) 재 트레이 및 타임 아웃 정책 (권장 사항)
시간 초과 = 대기 시간 예산의 70-80%.
dempotent 작업 및 네트워크 장애에 대해서만 Retrai 소 2-3.
지터는 필수입니다. 폴벡이없는 병목 현상 시간에서 퇴각 금지.
보상-별도의 단계로서 demmpotent.
18) 대시 보드 (최소)
WF 개요: 출시/성공/중단, p95/p99 지속 시간, 교수형/할아버지.
스텝 드릴 다운: 최고의 느린/실수 단계, 퇴각, 열린 차단기.
공급자 패널: 발신 p95/오류율/할당량/비용.
HITL 이사회: "보류중인 결정", 타임 라인, 규정 준수 SLA.
19) 구현 점검표
- 키 WF 맵 및 소유자 (통화 중, 채팅, 리포).
- 단계 설명: in/out, SLO, 타임 아웃, 배상, 보상, 비밀.
- OpenAPI/AsyncAPI + CDC 계약.
- 입구와 계단에서 이데올로기/데드 업.
- 대시 보드, 흔적, 경고 (SLO 프로세스 및 단계).
- WF 릴리스를위한 카나리아 + phicheflags.
- 런북: 중단/부분적으로 실행되는 WF를 "치료" 하는 방법.
- 악화 계획: 대체 제공 업체, "무거운" 지점을 끄십시오.
- 비밀/액세스/감사 정책.
- 스프린트 한 번 게임 일/xaoc 시나리오.
20) 경고의 예 (아이디어)
ALERT WorkflowSLOBreached
IF workflow_p95_duration_ms{name="deposit_v1"} > 3000 FOR 15m
LABELS {severity="critical", team="payments"}
ALERT WorkflowAbortRateHigh
IF rate(workflow_aborted_total{name="deposit_v1"}[30m]) > 0.005
LABELS {severity="warning", team="payments"}
ALERT StepRetryStorm
IF step_retry_count{name="call_psp"} > 2 baseline_1w FOR 10m
LABELS {severity="warning", team="integrations"}
ALERT StuckInstances
IF workflow_in_progress_age_p95_m{name="kyc_v2"} > 60
LABELS {severity="warning", team="risk"}
21) 반 패턴
100 개 이상의 단계와 엄격한 연결성을 갖춘 "대형 모 놀리 식 WF" 는 어렵고 시끄럽습니다.
비정규 트랜잭션에 대한 배상 (이중 요금/청구).
사용자의 요청 → 행맨 및 "좀비" 의 "수명보다 긴 시간".
보상 부족 → 수동 수정 및 긴 사후 사후.
WF 버전 지정 → 릴리스는 이전 인스턴스를 중단합니다.
회전 및 감사없이 구성/변수 내부의 비밀.
22) 워크 플로 품질 KPI
WF 유형별 성공률 및 중단률.
p95/p99 단계 및 프로세스 지속 시간.
프로세스 사고에 대한 MTTD/MTTR.
폭풍 수/월을 시작합니다 (대상 → 0).
1k WF 당 비용 및 "성공 비용".
자동화 점유율: HITL이없는 사례의%.
23) 빠른 시작 (기본값)
3-5 중요 WF (예금, 인출, KYC) 로 시작하십시오.
오케스트레이트 장수 사가; 지역 반응-이벤트.
예산의 80% 에 해당하는 단계 시간 초과; 백오프 + 지터가있는 retrai
보상은 서면으로 결정되고 테스트됩니다.
비교 대시 보드로 5-10% 의 트래픽으로 카나리아를 켜십시오.
각 WF에는 소유자, 런북 및 SLO 경고가 있습니다.
24) FAQ
Q: 무엇을 선택해야합니까: 오케 스트레이터 또는 이벤트?
A: 시각적지도가 필요한 경우 마감일과 긴 사가는 오케 스트레이터입니다. 이벤트와 많은 소비자에 대한 간단한 반응이 우선하면 안무가 이루어집니다. 종종 최선의 선택은 하이브리드입니다.
Q: 중복을 피하려면 어떻게해야합니까?
A: WF 입력의 이데올로기 키, '메시지 _ id' 및 "보이는 이벤트 저장소. "단계는 엄청나다.
Q: 회로에 사람이 필요합니까?
A: 예, 논란의 여지가 있거나 비싼 경우입니다. 그러나 더 나은 자동화와 규칙을 통해 HITL 점유율을 측정하고 줄입니다.