InfoGrab DocsInfoGrab Docs

Geo 셀프 서비스 프레임워크

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

Note 이 문서는 프레임워크를 계속 구현하고 개선함에 따라 변경될 수 있습니다. 진행 상황은 에픽 에서 확인합니다. 새로운 데이터 유형을 복제해야 한다면 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 : 모델은 Rails 코드베이스 전반에서 알려진 그대로의 Active Model 입니다. 대개 데이터베이스 테이블과 연결됩니다. Geo 관점에서 하나의 모델은 하나 이상의 리소스를 가질 수 있습니다. Resource : 리소스는 모델에 속하며 GitLab 기능이 만들어 내는 데이터 조각입니다. 스토리지 메커니즘을 사용해 영속화됩니다. 기본적으로 리소스는 Geo replicable 이 아닙니다. Data type : 데이터 유형은 리소스가 저장되는 방식입니다. 각 리소스는 Geo가 지원하는 데이터 유형 중 하나에 속해야 합니다. Git 리포지터리 Blob 데이터베이스 자세한 내용은 데이터 유형 을 참고합니다. Geo Replicable : Replicable은 Geo가 Geo 사이트 간에 동기화하려는 리소스입니다. replicable로 지원되는 데이터 유형은 제한적입니다. 알려진 데이터 유형에 속하는 리소스의 복제를 구현하는 데 필요한 노력은 최소한입니다. Geo Replicator : Geo Replicator는 replicable을 복제하는 방법을 아는 객체입니다. 다음을 담당합니다. 이벤트 발행(producer) 이벤트 소비(consumer) Geo Replicable 데이터 유형과 연결됩니다. 모든 replicator는 이벤트를 처리(즉, 생산하고