이 페이지에서는 이중 실행의 주요 구성요소를 설명합니다. 아키텍처의 일부는 일괄 비교와 온라인 비교 간에 공유되지만 다른 부분은 워크로드에 따라 다릅니다.
Dual Run 구성요소
이중 실행 구성요소는 Google Kubernetes Engine(GKE) 클러스터에서 컨테이너로 실행됩니다. 듀얼 실행은 BigQuery, Cloud Storage, 일괄 비교 및 온라인 비교를 위한 기타 전문 구성요소와 같은 다른 Google Cloud 제품도 사용합니다.
온라인 및 배치 워크로드 모두에 공유되는 이중 실행 클러스터 구성요소는 다음과 같습니다.
- 구성 관리자: 사용자 인터페이스 및 대시보드
- Env Checker: 설치 확인 엔진입니다.
구성 관리자
구성 관리자는 이중 실행 애플리케이션의 프런트엔드입니다. 이 구성요소를 사용하여 사용자 권한을 관리하고, 엔드포인트를 통해 온라인 워크로드를 구성하고, 대시보드를 수정합니다. ID 및 액세스 관리 시스템을 사용하여 사용자 인증을 설정할 수 있습니다.
또한 구성 관리자는 비교 결과를 검토할 수 있는 대시보드 환경을 제공합니다. 대시보드에서는 적용한 필터를 기반으로 비교 결과를 요약하여 볼 수 있으며, 각 개별 레코드의 결과 세부정보를 검토할 수 있습니다.
대시보드는 데이터 시각화 및 데이터 탐색을 위한 오픈소스 소프트웨어인 Apache Superset을 기반으로 합니다. 또한 맞춤 보고서와 쿼리를 만들 수 있습니다.
Env Checker
Env Checker는 이중 실행의 설치 및 배포가 성공적으로 완료되었는지 확인하는 이중 실행 구성요소입니다. 필요한 모든 이중 실행 구성요소가 올바르게 구성되고 실행되고 있는지 확인하고, 그렇지 않은 경우 오류나 잘못된 구성을 보고합니다.
일괄 비교를 위한 아키텍처
다음 다이어그램은 다음 섹션에 설명된 대로 배치 비교를 위한 이중 실행 아키텍처를 보여줍니다.

파일 비교
파일 비교는 이중 실행 설정의 예상 파일 출력과 실제 파일 출력을 비교할 수 있는 이중 실행 구성요소입니다. 비교를 실행할 때 허용 범위를 설정하여 결과를 동등한 것으로 표시할 수 있습니다.
파일 비교에서는 완전 관리형 Apache Spark 클러스터가 Google Cloud에서 실행되는 Managed Service for Apache Spark를 사용하여 비교를 실행합니다. 비교하려는 데이터의 크기와 인프라 요구사항에 따라 다음 두 가지 접근 방식을 선택할 수 있습니다.
- 이중 실행 배포의 일부로 생성되며 Managed Service for Apache Spark에서 실행되는 관리형 서버리스 Spark 기반 환경입니다. 최대 수 GB의 파일을 비교할 수 있는 고정 구성을 사용합니다. 기본 접근 방식입니다.
- 이중 실행 배포 후에 만들고 구성하는 Managed Service for Apache Spark의 Spark 클러스터입니다. 이는 다음과 같은 경우에 유용합니다.
- 커스텀 VM 또는 디스크 구성을 사용하려고 합니다.
- 수 GB보다 큰 파일을 비교해야 합니다.
- 여러 비교 작업을 동시에 실행하려고 합니다.
온라인 비교를 위한 아키텍처
다음 다이어그램은 다음 섹션에 설명된 온라인 비교를 위한 이중 실행 아키텍처를 보여줍니다.

Interceptor
인터셉터는 기본 시스템인 메인프레임 애플리케이션의 안정적이고 성능이 우수한 프록시 역할을 합니다. 애플리케이션 트래픽을 수신하고 지연 시간을 최소화하여 기본 시스템에 요청을 전달합니다. 후속 이중화를 위해 모든 요청과 응답을 복제합니다. 듀얼 실행 프로젝트 또는 온프레미스 환경을 비롯한 Kubernetes 기반 환경에 인터셉터를 배포할 수 있습니다.
인터셉터는 Google Cloud 서비스에 대한 연결이 실패하는 경우에도 작동하여 기본 시스템의 최대 가용성을 보장합니다.
듀얼 실행은 HTTP, TN3270, MQ 메시지의 인터셉터를 지원합니다.
Dualizer
듀얼라이저는 캡처된 온라인 트랜잭션을 현대화된 보조 시스템에 재생합니다. Pub/Sub의 이중화 대기열에서 기록된 트랜잭션을 사용하고, 보조 시스템에 요청을 보내고, 응답을 가져옵니다.
기본 응답과 보조 응답은 일괄 처리의 파일 비교에서 사용하는 것과 동일한 기본 비교 엔진을 사용하여 비교됩니다. 요청, 응답, 비교 결과는 Cloud Storage에 저장되고 비교 결과는 BigQuery로 스트리밍됩니다. 구성 파일은 구성 관리자가 관리하며 Cloud Storage에서 읽습니다.
세션 핸들러
세션 핸들러는 보조 시스템과의 활성 세션을 유지 관리합니다. 세션 핸들러는 TN3270과 같이 상태 저장 통신 프로토콜의 경우 클라이언트 연결당 열린 TCP 소켓을 유지합니다. 보조 시스템으로 이중화된 각 요청에 대해 이중화기는 이중화된 요청을 세션 핸들러에 전송합니다. 그런 다음 세션 핸들러는 열린 소켓을 사용하여 보조 시스템에 이를 전송하고 보조 응답을 수신하여 처리할 수 있도록 듀얼라이저에 다시 전송합니다.
Google Cloud 종속 항목
듀얼 실행은 다음 Google Cloud 제품을 사용하여 실행됩니다.
- Google Kubernetes Engine: Dual Run은 GKE를 사용하여 포드에서 마이크로서비스를 실행합니다.
- Cloud Storage: Dual Run은 환경의 구성 파일과 비교 아티팩트를 Cloud Storage 버킷에 저장합니다.
- Artifact Registry: Dual Run은 GKE 사용을 위해 레지스트리에 컨테이너 이미지를 저장합니다.
- BigQuery: 이중 실행은 일괄 트랜잭션과 온라인 트랜잭션 모두의 비교 출력 결과를 BigQuery에 저장합니다.
- Pub/Sub: 이중 실행은 Pub/Sub을 내부 메시지 시스템으로 사용하여 서로 다른 포드 간에 구성 변경사항을 전달합니다.
- Cloud SQL: Dual Run은 향후 업데이트와의 호환성을 보장하기 위해 Cloud SQL 데이터베이스 인스턴스를 만듭니다.
듀얼 실행 배치 비교는 다음 추가 제품을 사용합니다.
- Managed Service for Apache Spark: 이중 실행은 Managed Service for Apache Spark의 서버리스 Spark 클러스터를 사용하여 파일 비교를 실행합니다.
- 워크플로 및 Cloud Run 함수: 이중 실행은 워크플로를 사용하여 파일 비교 작업을 실행하는 Cloud Run 함수를 관리합니다.
- Identity and Access Management: Dual Run은 인증 및 액세스 관리를 위해 Identity and Access Management를 사용하므로 Google 또는 SAML ID 공급자를 사용하여 사용자 역할을 인증하고 승인할 수 있습니다.
듀얼 실행 온라인 비교는 다음 추가 제품을 사용합니다.
- Secret Manager: Dual Run은 Secret Manager를 사용하여 Dual Run에 배포하는 대기열 관리자의 사용자 인증 정보와 같은 보안 비밀을 저장합니다.
- Cloud Monitoring: Dual Run은 Cloud Monitoring을 사용하여 Dual Run 구성요소 및 Google Cloud 리소스에서 측정항목, 이벤트, 로그를 수집하고 모니터링합니다.
- Cloud Trace: Dual Run은 Cloud Trace를 사용하여 향상된 모니터링 및 디버깅 기능을 제공합니다.
다음 단계
Dual Run 파일 비교에 대해 자세히 알아보세요.