InfoGrab DocsInfoGrab Docs

Geo 셀프 서비스 프레임워크

GitLab Geo의 셀프 서비스 프레임워크(Self Service Framework)를 사용하여 새로운 데이터 타입을 Geo 사이트 간에 복제하는 방법을 설명합니다.

이 문서는 프레임워크를 계속 구현하고 개선함에 따라 변경될 수 있습니다. 진행 상황은 에픽 에서 확인할 수 있습니다. 새로운 데이터 타입을 복제해야 하는 경우 Geo 팀에 연락하여 옵션을 논의하세요. Slack의 #g_geo 채널에서 팀에 연락하거나, 이슈 또는 머지 리퀘스트에서 @geo-team 을 멘션하세요. Geo는 Geo 사이트 간에 데이터 타입을 복제할 수 있도록 API를 제공합니다. 이 API는 Ruby 도메인 특정 언어(Domain-Specific Language, DSL)로 제공되며, 데이터 타입을 생성한 엔지니어의 최소한의 노력으로 데이터를 복제할 수 있도록 하는 것을 목표로 합니다. Geo는 완료 정의의 요구사항입니다 # Geo는 재해 복구 를 위한 GitLab 솔루션입니다. 견고한 재해 복구 솔루션은 재해 발생 시 최소한의 데이터 손실로 모든 GitLab 서비스를 전체적으로 성공적으로 복원할 수 있도록 모든 GitLab 데이터 를 복제해야 합니다. 이러한 이유로 GitLab이 생성한 데이터에 대한 Geo 복제 및 검증 지원은 완료 정의 의 일부입니다. 이를 통해 새로운 기능이 Geo 지원과 함께 출시되고 고객이 데이터 손실에 노출되지 않도록 합니다. 셀프 서비스 프레임워크(Self Service Framework, SSF)로 Geo 지원을 추가하는 것은 간단하며, 다양한 데이터 타입에 대해 이 페이지에서 자세히 설명합니다. 단, 새로운 GitLab 기능에 Geo 지원을 추가해야 하는지 여부와 방법을 결정하는 데 도움이 되는 보다 일반적인 가이드는 여기에서 시작할 수 있습니다 . 명명 규칙 # API를 살펴보기 전에 개발자는 다음과 같은 Geo 특정 명명 규칙을 알아야 합니다: 모델(Model) : 모델은 Active Model로, 전체 Rails 코드베이스에서 이와 같이 알려져 있습니다. 일반적으로 데이터베이스 테이블과 연결됩니다. Geo 관점에서 모델은 하나 이상의 리소스를 가질 수 있습니다. 리소스(Resource) : 리소스는 모델에 속하며 GitLab 기능에 의해 생성되는 데이터 조각입니다. 저장소 메커니즘을 사용하여 지속됩니다. 기본적으로 리소스는 Geo 복제 가능 대상이 아닙니다. 데이터 타입(Data type) : 데이터 타입은 리소스가 저장되는 방식입니다. 각 리소스는 Geo가 지원하는 데이터 타입 중 하나에 해당해야 합니다: Git 리포지터리 Blob 데이터베이스 자세한 내용은 데이터 타입 을 참조하세요. Geo 복제 가능(Geo Replicable) : 복제 가능(Replicable)은 Geo가 Geo 사이트 간에 동기화하려는 리소스입니다. 지원되는 복제 가능 데이터 타입의 집합은 제한적입니다. 알려진 데이터 타입 중 하나에 속하는 리소스의 복제를 구현하는 데 필요한 노력은 최소화됩니다. Geo 복제자(Geo Replicator) : Geo 복제자는 복제 가능 대상을 복제하는 방법을 아는 객체입니다. 다음을 담당합니다: 이벤트 발생(생산자) 이벤트 소비(소비자) Geo 복제 가능 데이터 타입과 연결됩