실험 롤아웃 및 피처 플래그

실험 롤아웃 이슈

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

실험이 배포되면 이슈의 기한을 설정해야 합니다(실험에 따라 다르지만 앞으로 몇 주간일 수 있음). 마감일 이후에 이슈를 해결하고 다음 중 하나여야 합니다. - 성공적이며 실험이 새로운 기본값이 됩니다. - 성공하지 않고 실험과 관련된 모든 코드가 제거됩니다.

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

모든 실험 중지

GitLab.com(SaaS)에서 모든 실험을 중지해야 하는 경우에는 이 컨트롤이 있습니다.

gitlab_experiment 피처 플래그를 사용하여 SaaS에서 실험을 켜거나 끌 수 있습니다.

이를 ChatOps를 통해 수행할 수 있습니다.

  • 비활성화: /chatops run feature set gitlab_experiment false
  • 활성화: /chatops run feature delete gitlab_experiment
  • 이는 YAML의 default_enabled 값이 true로 지정될 수 있도록 합니다.

피처 플래그에 관한 참고사항

note
우리는 여기서 “enabled”와 “disabled”라는 용어를 사용합니다. 이는 우리의 문서 스타일 가이드 권장에 반하는 것입니다만, 피처 플래그 문서에서 이 용어를 사용하기 때문입니다.

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

일반적으로 off는 피처 플래그가 활성화되어 있는지 물어보면 항상 false를 반환하고, on은 항상 true를 반환한다는 것을 의미합니다. conditional이라는 중간 상태도 존재합니다. 우리는 이러한 피처 플래그의 삼상 상태를 활용합니다.

피처 플래그가 비활성화(상태가 off인 경우)되었을 때(즉, 실험이 활성화되지 않았을 때) 해당 실험은 _비활성화_로 간주됩니다. 이를 피처 플래그에 따른 의사결정 트리 다이어그램에서 시작 노드로 이동하는 것으로 시각화할 수 있습니다.

피처 플래그가 percentage_of_actors 또는 유사한 대상에게 도입되었을 때(즉, 상태가 conditional인 경우) 해당 실험은 진행 중인 것으로 간주됩니다. 제어가 할당되는 경우도 있고 대상이 할당되는 경우도 있기 때문에 우리는 여기서 활성화라는 용어를 사용하지 않습니다. 실험 용어에서 우리의 실험은 _진행 중_이며 피처 플래그는 conditional입니다.

피처 플래그가 활성화(상태가 on인 경우)되었을 때 모든 대상이 항상 할당됩니다.

용어를 일관성 있게 사용해야 하며, 그래서 실험에서는 피처 플래그를 conditional로 설정하기 전까지는 비활성화_된 실험이며, 그 후에는 _진행 중인 것으로 간주해야 합니다. 피처 플래그를 “활성화”로 선택한다면 모든 사람이 실험에 참여하거나 실험을 선택에서 제외할 수 있기 때문에 실험을 완료된 것으로 간주해야 합니다.