GitLab Duo 구성
GitLab v19.2GitLab Duo는 소프트웨어 개발 라이프사이클 전반에 걸쳐 도움을 주는 AI 네이티브 어시스턴트입니다. GitLab Duo를 다음과 같이 구성할 수 있습니다: 클라우드 기반 AI Gateway(기본값): 벤더 언어 모델을 사용하는 GitLab 호스팅 AI Gateway.
-
Offering: GitLab Self-Managed, GitLab Dedicated for Government
GitLab Duo는 소프트웨어 개발 라이프사이클 전반에 걸쳐 도움을 주는 AI 네이티브 어시스턴트입니다.
GitLab Duo를 다음과 같이 구성할 수 있습니다:
-
클라우드 기반 AI Gateway(기본값): 벤더 언어 모델을 사용하는 GitLab 호스팅 AI Gateway.
-
자체 호스팅 모델: 데이터와 보안에 대한 완전한 제어를 위해 자체 AI Gateway와 언어 모델 사용.
-
하이브리드 구성: 일부 기능은 자체 호스팅 모델을, 다른 기능은 클라우드 기반 모델을 사용.
사전 요건#
-
Silent Mode가 꺼져 있어야 합니다.
-
인스턴스가 활성화 코드로 활성화되어 있어야 합니다.
라이선스 키는 사용할 수 없습니다.
-
GitLab Duo Self-Hosted를 제외하고, 오프라인 라이선스로는 GitLab Duo를 사용할 수 없습니다.
-
인스턴스를 실행하는 호스트가 HTTP/S 프록시 서버를 사용하는 경우에도 DNS로 공개 호스트명을 확인할 수 있어야 합니다.
GitLab 인스턴스에서 GitLab Duo로의 아웃바운드 연결 허용#
-
GitLab 애플리케이션 노드는 HTTP/2를 통해
https://duo-workflow-svc.runway.gitlab.net에서 GitLab Duo Workflow에 연결할 수 있어야 합니다. 애플리케이션과 서비스는 gRPC로 통신합니다. -
GitLab Duo Agent Platform 기능의 경우, 방화벽과 HTTP/S 프록시 서버는
duo-workflow-svc.runway.gitlab.net의 포트443으로https://를 통한 아웃바운드 연결과 HTTP/2 트래픽을 허용해야 합니다. -
인스턴스가 HTTP/S 프록시 서버를 통해 연결하는 경우, 호스트는 여전히 DNS로 공개 호스트명을 확인할 수 있어야 합니다. 호스트명을 프록시 서버를 통해서만 확인할 수 있는 경우, GitLab Duo 헬스 체크, GitLab Credits 대시보드, GitLab Duo Agent Platform 등의 GitLab Duo 기능이 타임아웃되거나 실패할 수 있습니다. 자세한 내용은 이슈 602538을 참조하세요.
-
AI 기능은 오래 유지되는 HTTP 연결을 통해 응답을 스트리밍합니다. 최대 요청 지속 시간 또는 유휴 시간 초과를 적용하는 HTTP/S 프록시 서버나 방화벽은 오류 없이 긴 응답을 중단시킬 수 있습니다. 경로상의 다른 구성 요소보다 더 긴 시간 초과 값으로 프록시를 구성하세요.
클라이언트에서 GitLab 인스턴스로의 인바운드 연결 허용#
GitLab 인스턴스는 IDE 클라이언트로부터의 인바운드 연결을 허용해야 합니다.
- 다음 헤더를 포함한 WebSocket 프로토콜 업그레이드 요청을 허용하세요:
Connection: upgrade
-
Upgrade: websocket -
HTTP/2프로토콜 지원 -
표준 WebSocket 보안 헤더:
Sec-WebSocket-* -
wss://(WebSocket Secure) 프로토콜 지원을 활성화하세요. -
허용할 특정 엔드포인트를 추가하세요:
기본 엔드포인트: wss://<customer-instance>/-/cable
-
HTTP/2프로토콜이HTTP/1.1로 다운그레이드되지 않도록 하세요. -
포트:
443(HTTPS/WSS)
문제가 발생하면:
-
wss://gitlab.example.com/-/cable및 기타.com도메인에 대한 WebSocket 트래픽 제한을 확인하세요. -
Apache와 같은 리버스 프록시를 사용하는 경우, 로그에서 WebSocket connection to …. failures와 같은 GitLab Duo Chat 연결 문제가 발생할 수 있습니다.
이 문제를 해결하려면 프록시 설정을 수정하세요:
# Enable WebSocket reverse Proxy
# Needs proxy_wstunnel enabled
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]
러너로부터의 연결 허용#
flows와 같이 러너를 사용하는 GitLab Duo Agent Platform 기능의 경우, 러너가 GitLab 인스턴스에 연결할 수 있어야 합니다.
클라이언트에서 GitLab 인스턴스로의 인바운드 연결과 동일한 연결이 러너에서 GitLab 인스턴스로의 아웃바운드 연결로 허용되어야 합니다.
또한, 러너는 다음에 연결할 수 있어야 합니다:
| 대상 | 포트 | 목적 |
|---|---|---|
| registry.npmjs.org | 443 | 런타임 시 Duo CLI 패키지 다운로드 |
| registry.gitlab.com | 443 | 기본 Docker 이미지 다운로드(커스텀 이미지를 사용하지 않는 경우) |
조직에서 공개 npm 레지스트리에 대한 액세스를 허용할 수 없는 경우, 필요한 의존성이 이미 설치된 커스텀 Docker 이미지를 사용할 수 있습니다.
러너의 GitLab Duo 에이전트 플랫폼 서비스 연결은 GitLab 인스턴스를 통해 라우팅됩니다. 러너는 duo-workflow-svc.runway.gitlab.net에 직접 연결하지 않습니다. 포트 443의 duo-workflow-svc.runway.gitlab.net에 대한 방화벽 요구 사항은 러너가 아니라 GitLab 인스턴스에 적용됩니다. 러너 네트워크 구성은 GitLab 인스턴스로의 아웃바운드 HTTPS 트래픽을 허용해야 합니다.
GitLab과 사용 데이터 공유#
히스토리
- GitLab 18.9.1에서 도입됨.
서비스 품질 향상을 위해 GitLab Duo Agent Platform 기능에 대한 사용 데이터를 GitLab과 공유할 수 있습니다.
데이터 수집을 켜면, GitLab은 GitLab Duo 기능 사용에 대한 정보를 기록합니다. 이 데이터는 서비스 개선 및 디버깅 목적으로만 사용되며, AI 모델 훈련에는 사용되지 않습니다.
수집되는 데이터에 대한 자세한 내용은 Agent Platform 사용 데이터를 참조하세요.
사전 요건:
- GitLab 18.9.1 이상이 필요합니다.
확장 로깅을 켜려면:
-
오른쪽 상단에서 Admin을 선택합니다.
-
왼쪽 사이드바에서 GitLab Duo를 선택합니다.
-
구성 변경을 선택합니다.
-
사용 데이터 수집 체크박스를 선택합니다.
-
변경 사항 저장을 선택합니다.
자체 호스팅 모델의 데이터 사용#
자체 호스팅 AI Gateway와 자체 호스팅 모델을 사용하는 경우, 상세 로그는 사용자의 인프라에 저장되며 GitLab과 공유되지 않습니다. GitLab과 데이터를 공유하려면, 자체 호스팅 AI Gateway가 외부 옵저버빌리티 서비스로 추적 정보를 전송하도록 구성해야 합니다.
Service Ping을 사용하여 사용 데이터를 GitLab으로 전송할 수 있습니다. 이 데이터는 텔레메트리 데이터와는 다릅니다.
GitLab Duo 헬스 체크 실행#
-
Status: Beta
히스토리
- GitLab 17.3에서 도입됨.
-
GitLab 17.5에서 헬스 체크 보고서 다운로드 기능 추가됨.
-
GitLab 19.1에서 Foundational flows 준비 상태 확인 기능이 추가됨.
인스턴스가 GitLab Duo를 사용하기 위한 요건을 충족하는지 확인할 수 있습니다. 헬스 체크가 완료되면 통과 또는 실패 결과와 문제 유형이 표시됩니다. 헬스 체크에서 테스트 중 하나라도 실패하면, 사용자가 인스턴스에서 GitLab Duo 기능을 사용하지 못할 수 있습니다.
이 기능은 베타 기능입니다.
사전 요건:
- 관리자여야 합니다.
헬스 체크를 실행하려면:
-
오른쪽 상단에서 Admin을 선택합니다.
-
왼쪽 사이드바에서 GitLab Duo를 선택합니다.
-
오른쪽 상단에서 헬스 체크 실행을 선택합니다.
-
선택 사항. GitLab 17.5 이상에서, 헬스 체크가 완료된 후 보고서 다운로드를 선택하여 헬스 체크 결과의 상세 보고서를 저장할 수 있습니다.
다음 테스트가 수행됩니다:
| 테스트 | 설명 |
|---|---|
| AI Gateway | GitLab Duo Self-Hosted 모델 전용. AI Gateway URL이 환경 변수로 구성되어 있는지 테스트합니다. AI Gateway를 사용하는 자체 호스팅 모델 배포에 이 연결이 필요합니다. |
| 네트워크 | 인스턴스가 customers.gitlab.com과 cloud.gitlab.com에 연결할 수 있는지 테스트합니다. 인스턴스가 어느 대상에도 연결할 수 없는 경우, 방화벽 또는 프록시 서버 설정에서 연결을 허용하는지 확인하세요. |
| 동기화 | 구독 상태를 테스트합니다: - 활성화 코드로 활성화되어 customers.gitlab.com과 동기화될 수 있는지.- 올바른 액세스 자격 증명이 있는지.- 최근에 동기화되었는지. 동기화되지 않았거나 액세스 자격 증명이 없거나 만료된 경우, 구독 데이터를 수동으로 동기화할 수 있습니다. |
| Code Suggestions | GitLab Duo Self-Hosted 모델 전용. Code Suggestions를 사용할 수 있는지 테스트합니다: - 라이선스에 Code Suggestions 액세스 권한이 포함되어 있는지.- 기능을 사용하는 데 필요한 권한이 있는지. |
| GitLab Duo Agent Platform | 백엔드 서비스가 작동 중이고 접근 가능한지 테스트합니다. 이 서비스는 Agent Platform 및 GitLab Duo Agentic Chat과 같은 에이전틱 기능에 필요합니다. GitLab Duo Self-Hosted의 경우, GitLab Duo Agent Platform 기능에 대한 자체 호스팅 모델을 선택할 때까지 이 테스트가 통과되지 않습니다. 또한 다음 foundational flows 사전 요건을 확인합니다:- 인스턴스 수준의 flow 실행 설정이 활성화되어 있는지.- 인스턴스 수준의 foundational flows 설정이 활성화되어 있는지.- gitlab--duo 태그를 가진 활성 인스턴스 러너가 최소 하나 이상 등록 및 연결되어 있고, Docker 호환 실행기를 사용하는지. |
| 시스템 교환 | 인스턴스에서 Code Suggestions를 사용할 수 있는지 테스트합니다. 시스템 교환 평가에 실패하면, 사용자가 GitLab Duo 기능을 사용하지 못할 수 있습니다. |
버전 17.10 이전의 GitLab 인스턴스에서 헬스 체크에 문제가 발생하는 경우, 문제 해결 페이지를 참조하세요.
기타 호스팅 옵션#
기본적으로, GitLab Duo는 지원되는 AI 벤더 언어 모델을 사용하고 GitLab이 호스팅하는 클라우드 기반 AI Gateway를 통해 데이터를 전송합니다.
자체 언어 모델 또는 AI Gateway를 호스팅하려면:
-
GitLab Duo Self-Hosted를 사용하여 AI Gateway를 호스팅하고 지원되는 자체 호스팅 모델을 사용할 수 있습니다. 이 옵션은 데이터와 보안에 대한 완전한 제어를 제공합니다.
-
하이브리드 구성을 사용하면, 일부 기능은 자체 AI Gateway와 모델을 호스팅하고, 다른 기능은 GitLab AI Gateway와 벤더 모델을 사용하도록 구성할 수 있습니다.
GitLab Dedicated for Government#
GitLab Dedicated for Government의 경우, FedRAMP 승인 모델이 적용된 GitLab Duo Self-Hosted를 사용해야 합니다. 클라우드 기반 AI Gateway 및 벤더 모델은 GitLab Dedicated for Government에서 사용할 수 없습니다.
자세한 내용은 GitLab Dedicated for Government에서 GitLab Duo 구성을 참조하세요.