InfoGrab DocsInfoGrab Docs

실험 롤아웃 및 피처 플래그

요약

각 실험에는 롤아웃부터 정리 및 제거까지 실험을 추적하기 위한 실험 롤아웃 이슈가 있어야 합니다. 실험이 배포되면 이슈의 마감일을 설정해야 합니다(실험에 따라 다르지만 최대 몇 주 후까지 설정할 수 있습니다). 실험이 성공하여 새로운 기본값이 되는 경우.

실험 롤아웃 이슈#

각 실험에는 롤아웃부터 정리 및 제거까지 실험을 추적하기 위한 실험 롤아웃 이슈가 있어야 합니다. 롤아웃 이슈는 피처 플래그 롤아웃 이슈와 유사하며, 실험의 상태를 추적하는 데에도 사용됩니다.

실험이 배포되면 이슈의 마감일을 설정해야 합니다(실험에 따라 다르지만 최대 몇 주 후까지 설정할 수 있습니다). 마감일 이후에는 이슈를 해결해야 하며, 다음 중 하나가 됩니다:

  • 실험이 성공하여 새로운 기본값이 되는 경우.

  • 실험이 성공하지 못하여 실험과 관련된 모든 코드가 제거되는 경우.

어느 경우든, 결정에 대한 이유와 함께 실험 결과를 이슈에 게시해야 합니다.

실험 검증 접근법#

개발 라이프사이클의 여러 단계에서 실험을 검증합니다:

Stage 검증 대상 도구
로컬 개발 이벤트 구조 (스키마, 필드, 값). Snowplow Micro.
스테이징 Snowplow에서 이벤트가 수신되는지 여부. Growth Experiment Event Validation Dashboard.
프로덕션 이벤트가 Snowflake로 올바르게 유입되는지 여부. GLEX Experiment Analysis Dashboard.

이벤트 구조 검증은 로컬 개발 중에 이루어져야 합니다. 실험이 스테이징에 도달할 때쯤에는 이벤트 구조가 이미 검증되어 있어야 합니다. 스테이징 및 프로덕션 검증은 이벤트가 파이프라인을 통해 흐르는지 확인하는 것에만 집중합니다.

스테이징에 배포하기 전에, 올바른 이벤트 구조의 증거로 Snowplow Micro의 원시 출력을 롤아웃 이슈에 붙여넣으세요. 예상 형식에 대해서는 실험 롤아웃 이슈 템플릿을 참조하세요.

모든 실험 끄기#

GitLab.com에서 모든 실험을 꺼야 하는 경우가 발생하면, 이 컨트롤을 사용할 수 있습니다.

gitlab_experiment 피처 플래그를 사용하여 GitLab.com에서 실험을 토글할 수 있습니다.

ChatOps를 통해 수행할 수 있습니다:

피처 플래그에 대한 참고 사항#

여기서는 "활성화됨(enabled)"과 "비활성화됨(disabled)"이라는 용어를 사용합니다. 이는 문서 스타일 가이드 권장 사항에 반하지만, 피처 플래그 문서에서 사용하는 용어이기 때문입니다.

GitLab의 피처 플래그 개념에 이미 익숙할 수 있지만, 실험에서 피처 플래그를 사용하는 것은 다소 다릅니다. 일반적으로 피처 플래그는 on 또는 off 상태로 간주되지만, 실험에서는 이것이 정확하지 않습니다.

일반적으로 off는 피처 플래그가 활성화되었는지 물어볼 때 항상 false를 반환한다는 의미이고, on은 항상 true를 반환한다는 의미입니다. conditional로 간주되는 중간 상태도 존재합니다. 우리는 피처 플래그의 이 세 가지 상태를 활용합니다. 이 conditional 측면을 이해하기 위해 다음 설정 중 하나가 피처 플래그를 이 상태로 만든다는 점을 고려하세요:

  • percentage_of_actors를 0%보다 큰 값으로 설정하는 경우.

  • 단일 사용자나 그룹에 대해 활성화하는 경우.

Conditional이란 일부 상황에서는 true를 반환하지만 모든 상황에서 그렇지는 않다는 것을 의미합니다.

피처 플래그가 비활성화되면(상태가 off인 경우), 실험은 비활성(inactive) 상태로 간주됩니다. 결정 트리 다이어그램에서 이를 시각화하면 첫 번째 Running? 노드에 도달하여 부정적인 경로를 따라가는 것을 확인할 수 있습니다.

피처 플래그가 percentage_of_actors 또는 유사한 방식으로 롤아웃되면(상태가 conditional인 경우), 실험은 실행 중(running) 상태로 간주됩니다. 이 상태에서는 때로는 컨트롤이 할당되고 때로는 후보가 할당됩니다. 여기서는 "활성화됨(enabled)"이라고 부르지 않는데, 이는 혼동을 줄 수 있는 과부하된 용어이기 때문입니다. 실험 용어로는, 실험이 *실행 중(running)*이며 피처 플래그는 conditional 상태입니다.

피처 플래그가 활성화되면(상태가 on인 경우), 항상 후보가 할당됩니다.

용어를 일관되게 사용하도록 노력해야 하므로, 실험에서는 피처 플래그를 conditional로 설정할 때까지 비활성(inactive) 상태의 실험이 됩니다. 그 이후에는 실험이 실행 중(running) 상태로 간주됩니다. 피처 플래그를 "활성화"하기로 선택한 경우, 실험 참여를 거부하지 않는 한 모든 사람에게 후보가 할당되므로 실험이 해결됨(resolved) 상태로 간주해야 합니다.

실험 롤아웃 및 피처 플래그

GitLab v19.1
원문 보기
요약

각 실험에는 롤아웃부터 정리 및 제거까지 실험을 추적하기 위한 실험 롤아웃 이슈가 있어야 합니다. 실험이 배포되면 이슈의 마감일을 설정해야 합니다(실험에 따라 다르지만 최대 몇 주 후까지 설정할 수 있습니다). 실험이 성공하여 새로운 기본값이 되는 경우.

실험 롤아웃 이슈#

각 실험에는 롤아웃부터 정리 및 제거까지 실험을 추적하기 위한 실험 롤아웃 이슈가 있어야 합니다. 롤아웃 이슈는 피처 플래그 롤아웃 이슈와 유사하며, 실험의 상태를 추적하는 데에도 사용됩니다.

실험이 배포되면 이슈의 마감일을 설정해야 합니다(실험에 따라 다르지만 최대 몇 주 후까지 설정할 수 있습니다). 마감일 이후에는 이슈를 해결해야 하며, 다음 중 하나가 됩니다:

  • 실험이 성공하여 새로운 기본값이 되는 경우.

  • 실험이 성공하지 못하여 실험과 관련된 모든 코드가 제거되는 경우.

어느 경우든, 결정에 대한 이유와 함께 실험 결과를 이슈에 게시해야 합니다.

실험 검증 접근법#

개발 라이프사이클의 여러 단계에서 실험을 검증합니다:

Stage 검증 대상 도구
로컬 개발 이벤트 구조 (스키마, 필드, 값). Snowplow Micro.
스테이징 Snowplow에서 이벤트가 수신되는지 여부. Growth Experiment Event Validation Dashboard.
프로덕션 이벤트가 Snowflake로 올바르게 유입되는지 여부. GLEX Experiment Analysis Dashboard.

이벤트 구조 검증은 로컬 개발 중에 이루어져야 합니다. 실험이 스테이징에 도달할 때쯤에는 이벤트 구조가 이미 검증되어 있어야 합니다. 스테이징 및 프로덕션 검증은 이벤트가 파이프라인을 통해 흐르는지 확인하는 것에만 집중합니다.

스테이징에 배포하기 전에, 올바른 이벤트 구조의 증거로 Snowplow Micro의 원시 출력을 롤아웃 이슈에 붙여넣으세요. 예상 형식에 대해서는 실험 롤아웃 이슈 템플릿을 참조하세요.

모든 실험 끄기#

GitLab.com에서 모든 실험을 꺼야 하는 경우가 발생하면, 이 컨트롤을 사용할 수 있습니다.

gitlab_experiment 피처 플래그를 사용하여 GitLab.com에서 실험을 토글할 수 있습니다.

ChatOps를 통해 수행할 수 있습니다:

피처 플래그에 대한 참고 사항#

여기서는 "활성화됨(enabled)"과 "비활성화됨(disabled)"이라는 용어를 사용합니다. 이는 문서 스타일 가이드 권장 사항에 반하지만, 피처 플래그 문서에서 사용하는 용어이기 때문입니다.

GitLab의 피처 플래그 개념에 이미 익숙할 수 있지만, 실험에서 피처 플래그를 사용하는 것은 다소 다릅니다. 일반적으로 피처 플래그는 on 또는 off 상태로 간주되지만, 실험에서는 이것이 정확하지 않습니다.

일반적으로 off는 피처 플래그가 활성화되었는지 물어볼 때 항상 false를 반환한다는 의미이고, on은 항상 true를 반환한다는 의미입니다. conditional로 간주되는 중간 상태도 존재합니다. 우리는 피처 플래그의 이 세 가지 상태를 활용합니다. 이 conditional 측면을 이해하기 위해 다음 설정 중 하나가 피처 플래그를 이 상태로 만든다는 점을 고려하세요:

  • percentage_of_actors를 0%보다 큰 값으로 설정하는 경우.

  • 단일 사용자나 그룹에 대해 활성화하는 경우.

Conditional이란 일부 상황에서는 true를 반환하지만 모든 상황에서 그렇지는 않다는 것을 의미합니다.

피처 플래그가 비활성화되면(상태가 off인 경우), 실험은 비활성(inactive) 상태로 간주됩니다. 결정 트리 다이어그램에서 이를 시각화하면 첫 번째 Running? 노드에 도달하여 부정적인 경로를 따라가는 것을 확인할 수 있습니다.

피처 플래그가 percentage_of_actors 또는 유사한 방식으로 롤아웃되면(상태가 conditional인 경우), 실험은 실행 중(running) 상태로 간주됩니다. 이 상태에서는 때로는 컨트롤이 할당되고 때로는 후보가 할당됩니다. 여기서는 "활성화됨(enabled)"이라고 부르지 않는데, 이는 혼동을 줄 수 있는 과부하된 용어이기 때문입니다. 실험 용어로는, 실험이 *실행 중(running)*이며 피처 플래그는 conditional 상태입니다.

피처 플래그가 활성화되면(상태가 on인 경우), 항상 후보가 할당됩니다.

용어를 일관되게 사용하도록 노력해야 하므로, 실험에서는 피처 플래그를 conditional로 설정할 때까지 비활성(inactive) 상태의 실험이 됩니다. 그 이후에는 실험이 실행 중(running) 상태로 간주됩니다. 피처 플래그를 "활성화"하기로 선택한 경우, 실험 참여를 거부하지 않는 한 모든 사람에게 후보가 할당되므로 실험이 해결됨(resolved) 상태로 간주해야 합니다.